2004-03-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
[mono.git] / mcs / class / System.Web / System.Web.UI / PersistChildrenAttribute.cs
1 //
2 // System.Web.UI.PersistChildrenAttribute.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.Class)]
14         public sealed class PersistChildrenAttribute : Attribute
15         {
16                 bool persist;
17                 
18                 public PersistChildrenAttribute (bool persist)
19                 {
20                         this.persist = persist;
21                 }
22
23                 public static readonly PersistChildrenAttribute Default = new PersistChildrenAttribute (true);
24                 public static readonly PersistChildrenAttribute Yes = new PersistChildrenAttribute (true);
25                 public static readonly PersistChildrenAttribute No = new PersistChildrenAttribute (false);
26
27                 public bool Persist {
28                         get { return persist; }
29                 }
30
31                 public override bool Equals (object obj)
32                 {
33                         if (!(obj is PersistChildrenAttribute))
34                                 return false;
35
36                         return (((PersistChildrenAttribute) obj).persist == persist);
37                 }
38
39                 public override int GetHashCode ()
40                 {
41                         return persist ? 1 : 0;
42                 }
43
44                 public override bool IsDefaultAttribute ()
45                 {
46                         return (persist == true);
47                 }
48         }
49 }
50