* XPathException.cs
[mono.git] / mcs / class / corlib / System.Security.Policy / Url.cs
1 //
2 // System.Security.Policy.Url.cs
3 //
4 // Author
5 //      Duncan Mak (duncan@ximian.com)
6 //
7 // (C) 2003 Ximian, Inc (http://www.ximian.com)
8 //
9
10 using System;
11 using System.Globalization;
12 using System.Security.Permissions;
13 using System.Security.Policy;
14
15 namespace System.Security.Policy {
16
17         [Serializable]
18         public sealed class Url: IIdentityPermissionFactory
19         {
20                 string origin_url;
21                 SecurityElement element;
22                 
23                 public Url (string name)
24                 {
25                         if (name == null)
26                                 throw new ArgumentNullException (Locale.GetText ("name is null"));
27
28                         origin_url = name;
29                         element = new SecurityElement (
30                                 typeof (System.Security.Policy.Url).FullName);
31
32                         element.AddAttribute ("version", "1");
33                         element.AddChild (new SecurityElement ("Url", name));
34                 }
35
36                 private Url (string name, SecurityElement security_element)
37                 {
38                         origin_url = name;
39                         element = security_element;
40                 }
41
42                 public object Copy ()
43                 {
44                         return new Url (origin_url, element);
45                 }
46
47                 [MonoTODO]
48                 public IPermission CreateIdentityPermission (Evidence evidence)
49                 {
50                         return null;
51                 }
52
53                 public override bool Equals (object o)
54                 {
55                         return (o is System.Security.Policy.Url && ((Url) o).Value == Value);
56                 }
57
58                 public override int GetHashCode ()
59                 {
60                         return origin_url.GetHashCode ();
61                 }
62
63                 public override string ToString ()
64                 {
65                         return element.ToString ();
66                 }
67
68                 public string Value {
69                         get {
70                                 return origin_url;
71                         }
72                 }
73         }
74 }