4 // Copyright (C) 2004 Novell, Inc.
8 // Permission is hereby granted, free of charge, to any person obtaining a
9 // copy of this software and associated documentation files (the "Software"),
10 // to deal in the Software without restriction, including without limitation
11 // the rights to use, copy, modify, merge, publish, distribute, sublicense,
12 // and/or sell copies of the Software, and to permit persons to whom the
13 // Software is furnished to do so, subject to the following conditions:
15 // The above copyright notice and this permission notice shall be included in
16 // all copies or substantial portions of the Software.
18 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
19 // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
20 // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
21 // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
22 // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
23 // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
24 // DEALINGS IN THE SOFTWARE.
29 using BU
= Beagle
.Util
;
31 namespace Beagle
.Tile
{
33 [AttributeUsage (AttributeTargets
.Class
, AllowMultiple
=true)]
34 public class HitFlavor
: Attribute
{
39 public int Columns
= 3;
45 private string mimeType
;
46 private string source
;
50 set { uri = IsWild (value) ? null : value; }
55 set { type = IsWild (value) ? null : value; }
58 public string MimeType
{
59 get { return mimeType; }
60 set { mimeType = IsWild (value) ? null : value; }
63 public string Source
{
64 get { return source; }
65 set { source = IsWild (value) ? null : value; }
68 private bool IsWild (string str
)
74 foreach (char c
in str
)
80 public bool IsMatch (Hit hit
)
82 return (Uri
== null || BU
.StringFu
.GlobMatch (Uri
, hit
.Uri
.ToString ()))
83 && (Type
== null || BU
.StringFu
.GlobMatch (Type
, hit
.Type
))
84 && (MimeType
== null || BU
.StringFu
.GlobMatch (MimeType
, hit
.MimeType
))
85 && (Source
== null || BU
.StringFu
.GlobMatch (Source
, hit
.Source
));
105 override public string ToString ()
109 str
+= " Uri=" + Uri
;
111 str
+= " Type=" + Type
;
112 if (MimeType
!= null)
113 str
+= " MimeType=" + MimeType
;
115 str
+= " Source=" + Source
;
116 return "HitFlavor (" + str
.Trim () + ")";