2004-01-01 Nick Drochak <ndrochak@gol.com>
[mono.git] / mcs / class / corlib / System.Security.Policy / PermissionRequestEvidence.cs
1 //\r
2 // System.Security.Policy.PermissionRequestEvidence.cs\r
3 //\r
4 // Authors:\r
5 //      Nick Drochak (ndrochak@gol.com)\r
6 //\r
7 // (C) 2003 Nick Drochak\r
8 //\r
9 \r
10 using System.Text;\r
11 \r
12 namespace System.Security.Policy\r
13 {\r
14         [Serializable]\r
15         public sealed class PermissionRequestEvidence {\r
16                 PermissionSet requested, optional, denied;\r
17 \r
18                 public PermissionRequestEvidence(PermissionSet requested, \r
19                                 PermissionSet optional, PermissionSet denied) {\r
20                         this.requested = requested;\r
21                         this.optional = optional;\r
22                         this.denied = denied;\r
23                 }\r
24 \r
25                 public PermissionSet DeniedPermissions {\r
26                         get {return denied;}\r
27                 }\r
28 \r
29                 public PermissionSet OptionalPermissions {\r
30                         get {return optional;}\r
31                 }\r
32 \r
33                 public PermissionSet RequestedPermissions {\r
34                         get {return requested;}\r
35                 }\r
36 \r
37                 public PermissionRequestEvidence Copy() {\r
38                         return new PermissionRequestEvidence (requested, optional, denied);\r
39                 }\r
40 \r
41                 public override string ToString() {\r
42                         // Cannot use XML classes in corlib, so do it by hand\r
43                         StringBuilder sb = new StringBuilder ();\r
44 \r
45                         sb.Append ("<System.Security.Policy.PermissionRequestEvidence version=\"1\">");\r
46                         sb.Append ("<Request>");\r
47                         sb.Append ("<PermissionSet class=\"System.Security.PermissionSet\" version=\"1\"");\r
48                         if (requested.IsUnrestricted ())\r
49                                 sb.Append (" Unrestricted=\"true\"");\r
50                         sb.Append (@"/>");  \r
51                         sb.Append (@"</Request>");\r
52 \r
53                         sb.Append ("<Optional>");\r
54                         sb.Append ("<PermissionSet class=\"System.Security.PermissionSet\" version=\"1\"");\r
55                         if (optional.IsUnrestricted ())\r
56                                 sb.Append (" Unrestricted=\"true\"");\r
57                         sb.Append (@"/>");  \r
58                         sb.Append (@"</Optional>");\r
59 \r
60                         sb.Append ("<Denied>");\r
61                         sb.Append ("<PermissionSet class=\"System.Security.PermissionSet\" version=\"1\"");\r
62                         if (denied.IsUnrestricted ())\r
63                                 sb.Append (" Unrestricted=\"true\"");\r
64                         sb.Append (@"/>");  \r
65                         sb.Append (@"</Denied>");\r
66 \r
67                         sb.Append ("</System.Security.Policy.PermissionRequestEvidence>");\r
68 \r
69                         return sb.ToString ();\r
70                 }\r
71 \r
72         }\r
73 }