2004-01-26 Sebastien Pouliot <spouliot@videotron.ca>
[mono.git] / mcs / class / corlib / System.Security.Policy / ApplicationDirectoryMembershipCondition.cs
1 // System.Security.Policy.ApplicationDirectoryMembershipCondition\r
2 //\r
3 // Author(s):\r
4 //   Nick Drochak (ndrochak@gol.com)\r
5 //   Jackson Harper (Jackson@LatitudeGeo.com)\r
6 //\r
7 // (C) 2002 Nick Drochak, All rights reserved.\r
8 \r
9 using System.Security;\r
10 \r
11 namespace System.Security.Policy\r
12 {\r
13 \r
14         [Serializable]\r
15         public sealed class ApplicationDirectoryMembershipCondition :\r
16                 IConstantMembershipCondition,\r
17                 IMembershipCondition, \r
18                 ISecurityEncodable, \r
19                 ISecurityPolicyEncodable\r
20         {\r
21                 // Tag for Xml Data\r
22                 private static readonly string XmlTag = "IMembershipCondition";\r
23 \r
24                 // Methods\r
25                 [MonoTODO]\r
26                 public bool Check(Evidence evidence) { \r
27                         throw new NotImplementedException (); \r
28                 }\r
29 \r
30                 public IMembershipCondition Copy() { \r
31                         return new ApplicationDirectoryMembershipCondition ();\r
32                 }\r
33                 \r
34                 public override bool Equals(object o) { \r
35                         return o is ApplicationDirectoryMembershipCondition; \r
36                 }\r
37                 \r
38                 public void FromXml(SecurityElement e) { \r
39                         FromXml (e, null);\r
40                 }\r
41                 \r
42                 public void FromXml(SecurityElement e, PolicyLevel level) { \r
43                         \r
44                         if (null == e)\r
45                                 throw new ArgumentNullException ();\r
46                         if (XmlTag != e.Tag)\r
47                                 throw new ArgumentException("e","The Tag of SecurityElement must be "\r
48                                         + ApplicationDirectoryMembershipCondition.XmlTag);\r
49                 }\r
50                 \r
51                 /// <summary>\r
52                 ///   All instances of ApplicationDirectoryMembershipCondition are equal so they should\r
53                 ///   have the same hashcode\r
54                 /// </summary>\r
55                 public override int GetHashCode() \r
56                 { \r
57                         return typeof (ApplicationDirectoryMembershipCondition).GetHashCode ();\r
58                 }\r
59                 \r
60                 public override string ToString() \r
61                 { \r
62                         return "ApplicationDirectory";\r
63                 }\r
64                 \r
65                 public SecurityElement ToXml() \r
66                 { \r
67                         return ToXml (null);\r
68                 }\r
69                 \r
70                 public SecurityElement ToXml(PolicyLevel level) \r
71                 {\r
72                         SecurityElement element = new SecurityElement (XmlTag);\r
73                         Type type = GetType ();\r
74                         string classString = type.FullName + ", " + type.Assembly;\r
75                         element.AddAttribute ("class", classString);\r
76                         element.AddAttribute ("version", "1");\r
77 \r
78                         return element;\r
79                 }\r
80         }\r
81 }\r