2004-01-26 Sebastien Pouliot <spouliot@videotron.ca>
[mono.git] / mcs / class / corlib / System.Security.Policy / AllMembershipCondition.cs
1 //
2 // System.Security.Policy.AllMembershipCondition.cs
3 //
4 // Author:
5 //   Ajay kumar Dwivedi (adwiv@yahoo.com)
6 //
7
8 using System;
9 using System.Security;
10
11 namespace System.Security.Policy {
12
13         [Serializable]
14         public sealed class AllMembershipCondition
15                 : IMembershipCondition, IConstantMembershipCondition, ISecurityEncodable, ISecurityPolicyEncodable
16         {
17                 // Tag for Xml Data
18                 private static readonly string XmlTag = "IMembershipCondition";
19
20                 public AllMembershipCondition()
21                 {}
22
23                 //Always returns true
24                 public bool Check(Evidence evidence)
25                 {
26                         return true;
27                 }
28
29                 public IMembershipCondition Copy()
30                 {
31                         return new AllMembershipCondition();
32                 }
33
34                 public override bool Equals (object o)
35                 {
36                         return (o is System.Security.Policy.AllMembershipCondition);
37                 }
38  
39                 public void FromXml(SecurityElement e)
40                 {
41                         FromXml(e, null);
42                 }
43
44                 public void FromXml(SecurityElement e, PolicyLevel level)
45                 {
46                         if(e == null)
47                                 throw new ArgumentNullException("e");
48                         if(e.Tag != XmlTag)
49                                 throw new ArgumentException("e","The Tag of SecurityElement must be "
50                                         + AllMembershipCondition.XmlTag);
51                 }
52
53                 public override int GetHashCode()
54                 {
55                         return typeof (AllMembershipCondition).GetHashCode ();
56                 }
57
58                 public override string ToString()
59                 {
60                         return "All Code";
61                 }
62
63                 public SecurityElement ToXml()
64                 {
65                         return ToXml(null);
66                 }
67
68                 public SecurityElement ToXml(PolicyLevel level)
69                 {
70                         SecurityElement se = new SecurityElement(XmlTag);
71                         Type type = this.GetType();
72                         string classString = type.FullName + ", " + type.Assembly;
73                         se.AddAttribute("class",classString);
74                         se.AddAttribute("version","1");
75                         return se;
76                 }
77         }
78 }