New test.
[mono.git] / mcs / class / System.Web / System.Web.UI / ParseChildrenAttribute.cs
old mode 100755 (executable)
new mode 100644 (file)
index 238183d..3edd307
@@ -6,8 +6,7 @@
 //     Gonzalo Paniagua (gonzalo@ximian.com)
 //
 // (C) 2002 Ximian, Inc. (http://www.ximian.com
-//
-
+// Copyright (C) 2005 Novell, Inc (http://www.novell.com)
 //
 // Permission is hereby granted, free of charge, to any person obtaining
 // a copy of this software and associated documentation files (the
 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 //
 
-using System;
+using System.Security.Permissions;
 
 namespace System.Web.UI {
 
+       // CAS - no InheritanceDemand here as the class is sealed
+       [AspNetHostingPermission (SecurityAction.LinkDemand, Level = AspNetHostingPermissionLevel.Minimal)]
+       // attributes
        [AttributeUsage (AttributeTargets.Class)]
        public sealed class ParseChildrenAttribute : Attribute
        {
                bool childrenAsProperties;
                string defaultProperty;
                public static readonly ParseChildrenAttribute Default = new ParseChildrenAttribute ();
+               
+#if NET_2_0
+               public static readonly ParseChildrenAttribute ParseAsChildren = new ParseChildrenAttribute (false);
+               public static readonly ParseChildrenAttribute ParseAsProperties = new ParseChildrenAttribute (true);
+
+               Type childType = typeof(System.Web.UI.Control);
+#endif
 
                // LAMESPEC
                public ParseChildrenAttribute ()
@@ -60,6 +69,13 @@ namespace System.Web.UI {
                        if (childrenAsProperties)
                                this.defaultProperty = defaultProperty;
                }
+#if NET_2_0
+               public ParseChildrenAttribute (Type childControlType)
+               {
+                       childType = childControlType;
+                       defaultProperty = "";
+               }
+#endif
 
                public bool ChildrenAsProperties {
 
@@ -74,12 +90,18 @@ namespace System.Web.UI {
                        set { defaultProperty = value; }
                }
 
+#if NET_2_0
+               public Type ChildControlType {
+                       get { return childType; }
+               }
+#endif
+
                public override bool Equals (object obj)
                {
-                       if (!(obj is ParseChildrenAttribute))
+                       ParseChildrenAttribute o = (obj as ParseChildrenAttribute);
+                       if (o == null)
                                return false;
 
-                       ParseChildrenAttribute o = (ParseChildrenAttribute) obj;
                        if (childrenAsProperties == o.childrenAsProperties){
                                if (childrenAsProperties == false)
                                        return true;