2004-01-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
[mono.git] / mcs / class / System.Web / System.Web.UI / PersistenceModeAttribute.cs
1 //
2 // System.Web.UI.PersistenceModeAttribute.cs
3 //
4 // Duncan Mak  (duncan@ximian.com)
5 //
6 // (C) Ximian, Inc.
7 //
8
9 using System;
10
11 namespace System.Web.UI {
12
13         [AttributeUsage (AttributeTargets.All)]
14         public sealed class PersistenceModeAttribute : Attribute
15         {
16                 PersistenceMode mode;
17                 
18                 public PersistenceModeAttribute (PersistenceMode mode)
19                 {
20                         this.mode = mode;
21                 }
22
23                 public static readonly PersistenceModeAttribute Attribute =
24                                                 new PersistenceModeAttribute (PersistenceMode.Attribute);
25
26                 public static readonly PersistenceModeAttribute Default =
27                                                 new PersistenceModeAttribute (PersistenceMode.Attribute);
28
29                 public static readonly PersistenceModeAttribute EncodedInnerDefaultProperty =
30                                                 new PersistenceModeAttribute (PersistenceMode.EncodedInnerDefaultProperty);
31
32                 public static readonly PersistenceModeAttribute InnerDefaultProperty =
33                                                 new PersistenceModeAttribute (PersistenceMode.InnerDefaultProperty);
34
35                 public static readonly PersistenceModeAttribute InnerProperty =
36                                                 new PersistenceModeAttribute (PersistenceMode.InnerProperty);
37                 
38                 public PersistenceMode Mode {
39                         get { return mode; }
40                 }
41
42                 public override bool Equals (object obj)
43                 {
44                         if (!(obj is PersistenceModeAttribute))
45                                 return false;
46
47                         return ((PersistenceModeAttribute) obj).mode == mode;
48                 }
49
50                 public override int GetHashCode ()
51                 {
52                         return (int) mode;
53                 }
54
55                 public override bool IsDefaultAttribute ()
56                 {
57                         return (mode == PersistenceMode.Attribute);
58                 }
59         }
60 }
61