2009-06-30 Zoltan Varga <vargaz@gmail.com>
[mono.git] / mcs / class / corlib / System.Security.Policy / CodeGroup.cs
index 9dc1fc39010c7d076d21dd687a8ba9831155a915..2e8d833974d99f065461ab1411ae49015124b30d 100644 (file)
@@ -6,7 +6,7 @@
 //     Sebastien Pouliot  <sebastien@ximian.com>
 //
 // (C) 2001 Nick Drochak, All rights reserved.
-// Copyright (C) 2004 Novell, Inc (http://www.novell.com)
+// Copyright (C) 2004-2006 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
 using System.Collections;
 using System.Globalization;
 using System.Reflection;
+using System.Runtime.InteropServices;
 using System.Security.Permissions;
 
 namespace System.Security.Policy {
 
        [Serializable]
+#if NET_2_0
+       [ComVisible (true)]
+#endif
        public abstract class CodeGroup {
                PolicyStatement m_policy;
                IMembershipCondition m_membershipCondition;
                string m_description;
                string m_name;
                ArrayList m_children = new ArrayList();
-               PolicyLevel m_level;
+//             PolicyLevel m_level;
 
+#if NET_2_0
+               protected CodeGroup (IMembershipCondition membershipCondition, PolicyStatement policy)
+#else
                public CodeGroup (IMembershipCondition membershipCondition, PolicyStatement policy)
+#endif
                {
                        if (null == membershipCondition)
                                throw new ArgumentNullException ("membershipCondition");
@@ -133,10 +141,11 @@ namespace System.Security.Policy {
 
                public override bool Equals (object o)
                {
-                       if (!(o is CodeGroup))
+                       CodeGroup cg = (o as CodeGroup);
+                       if (cg == null)
                                return false;
 
-                       return Equals ((CodeGroup)o, false);
+                       return Equals (cg, false);
                }
 
                public bool Equals (CodeGroup cg, bool compareChildren)
@@ -147,10 +156,7 @@ namespace System.Security.Policy {
                        if (cg.Description != this.Description)
                                return false;
 
-// FIXME: this compiles with CSC. Didn't succeed at creating a smaller/different test case :(
-//                     if (!cg.MembershipCondition.Equals (m_membershipCondition))
-                       if (((object) cg.MembershipCondition).ToString () !=
-                           ((object) m_membershipCondition).ToString ())
+                       if (!cg.MembershipCondition.Equals (m_membershipCondition))
                                return false;
 
                        if (compareChildren) {
@@ -233,7 +239,7 @@ namespace System.Security.Policy {
                        m_description = e.Attribute("Description");
 
                        // seems like we might need this to Resolve() in subclasses
-                       m_level = level;
+                       //m_level = level;
 
                        ParseXml (e, level);
                }