1 //
2 // System.Web.UI.PersistenceModeAttribute.cs
3 //
4 // Duncan Mak  (duncan@ximian.com)
5 //
6 // (C) Ximian, Inc.
7 // Copyright (C) 2005 Novell, Inc (http://www.novell.com)
8 //
9 // Permission is hereby granted, free of charge, to any person obtaining
10 // a copy of this software and associated documentation files (the
11 // "Software"), to deal in the Software without restriction, including
12 // without limitation the rights to use, copy, modify, merge, publish,
13 // distribute, sublicense, and/or sell copies of the Software, and to
14 // permit persons to whom the Software is furnished to do so, subject to
15 // the following conditions:
16 //
17 // The above copyright notice and this permission notice shall be
18 // included in all copies or substantial portions of the Software.
19 //
20 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
21 // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
22 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
23 // NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
24 // LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
25 // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
26 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
27 //
28 
29 using System.Security.Permissions;
30 
31 namespace System.Web.UI {
32 
33 	// CAS - no InheritanceDemand here as the class is sealed
34 	[AspNetHostingPermission (SecurityAction.LinkDemand, Level = AspNetHostingPermissionLevel.Minimal)]
35 	// attributes
36 	[AttributeUsage (AttributeTargets.All)]
37 	public sealed class PersistenceModeAttribute : Attribute
38 	{
39 		PersistenceMode mode;
40 
PersistenceModeAttribute(PersistenceMode mode)41 		public PersistenceModeAttribute (PersistenceMode mode)
42 		{
43 			this.mode = mode;
44 		}
45 
46 		public static readonly PersistenceModeAttribute Attribute =
47 						new PersistenceModeAttribute (PersistenceMode.Attribute);
48 
49 		public static readonly PersistenceModeAttribute Default =
50 						new PersistenceModeAttribute (PersistenceMode.Attribute);
51 
52 		public static readonly PersistenceModeAttribute EncodedInnerDefaultProperty =
53 						new PersistenceModeAttribute (PersistenceMode.EncodedInnerDefaultProperty);
54 
55 		public static readonly PersistenceModeAttribute InnerDefaultProperty =
56 						new PersistenceModeAttribute (PersistenceMode.InnerDefaultProperty);
57 
58 		public static readonly PersistenceModeAttribute InnerProperty =
59 						new PersistenceModeAttribute (PersistenceMode.InnerProperty);
60 
61 		public PersistenceMode Mode {
62 			get { return mode; }
63 		}
64 
Equals(object obj)65 		public override bool Equals (object obj)
66 		{
67 			PersistenceModeAttribute pma = (obj as PersistenceModeAttribute);
68 			if (pma == null)
69 				return false;
70 
71 			return (pma.mode == mode);
72 		}
73 
GetHashCode()74 		public override int GetHashCode ()
75 		{
76 			return (int) mode;
77 		}
78 
IsDefaultAttribute()79 		public override bool IsDefaultAttribute ()
80 		{
81 			return (mode == PersistenceMode.Attribute);
82 		}
83 	}
84 }
85 
86