Fixed (C) in file header
[mono.git] / mcs / class / corlib / System.Security.Policy / ApplicationDirectory.cs
1 // System.Security.Policy.ApplicationDirectory
2 //
3 // Author:
4 //  Jackson Harper (Jackson@LatitudeGeo.com)
5 //
6 // (C) 2002 Jackson Harper, All rights reserved.
7
8 using System;
9
10 namespace System.Security.Policy {
11
12         [MonoTODO("This class should use a URLString like class instead of just a string")]
13         public sealed class ApplicationDirectory {
14                 
15                 private string directory;
16
17                 //
18                 // Public Constructors
19                 //
20                 
21                 public ApplicationDirectory(string name)
22                 {
23                         if (null == name)
24                                 throw new ArgumentNullException ();             
25                         directory = name;
26                 }
27
28                 //
29                 // Public Properties
30                 //
31                 
32                 public string Directory {
33                         get { return directory; }
34                 }
35                 
36                 //
37                 // Public Methods
38                 //
39                 
40                 public object Copy()
41                 {       
42                         return new ApplicationDirectory (Directory);
43                 }
44                 
45                 [MonoTODO("This needs to check for security subsets")]
46                 public override bool Equals(object other)
47                 {
48                         if (null != other && (other is ApplicationDirectory)) {
49                                 ApplicationDirectory compare = (ApplicationDirectory)other;
50                                 return compare.directory.Equals(directory);
51                         }
52                         return false;
53                 }
54                 
55                 /// <summary>
56                 ///   This does not return the exact same results as the MS version
57                 /// </summary>
58                 public override int GetHashCode()
59                 {
60                         return directory.GetHashCode ();
61                 }
62                 
63                 public override string ToString()
64                 {
65                         return ToXml ().ToString ();
66                 }
67
68                 private SecurityElement ToXml()
69                 {
70                         SecurityElement element = new SecurityElement (GetType().FullName);
71                         element.AddAttribute ("version", "1");
72                         element.AddAttribute ("Directory", Directory);
73
74                         return element;
75                 }
76
77         }
78 }
79