2003-06-29 Sebastien Pouliot <spouliot@videotron.ca>
[mono.git] / mcs / class / corlib / System.Security.Policy / NetCodeGroup.cs
1 //
2 // System.Security.Policy.NetCodeGroup
3 //
4 // Author(s):
5 //  Jackson Harper (Jackson@LatitudeGeo.com)
6 //
7 // (C) 2002 Jackson Harper, All rights reserved
8 //
9
10 using System;
11
12 namespace System.Security.Policy {
13
14         [Serializable]
15         public sealed class NetCodeGroup : CodeGroup {
16
17                 public NetCodeGroup (IMembershipCondition condition) 
18                         : base (condition,null) 
19                 {
20                 }
21         
22                 //
23                 // Public Properties
24                 //
25
26                 public override string AttributeString {
27                         get { return null; }
28                 }
29         
30                 public override string MergeLogic {
31                         get { return "Union"; }
32                 }
33
34                 public override string PermissionSetName {
35                         get { return "Same site Web"; }
36                 }
37
38
39                 //
40                 // Public Methods
41                 //
42
43                 public override CodeGroup Copy ()
44                 {
45                         NetCodeGroup copy = new NetCodeGroup (MembershipCondition);
46         
47                         copy.Name = Name;
48                         copy.Description = Description;
49                         copy.PolicyStatement = PolicyStatement;         
50
51                         foreach (CodeGroup child in Children) {
52                                 copy.AddChild (child);  
53                         }
54
55                         return copy;    
56                 }
57
58                 [MonoTODO]
59                 public override PolicyStatement Resolve (Evidence evidence)
60                 {
61                         if (evidence == null) 
62                                 throw new ArgumentNullException ();
63
64                         throw new NotImplementedException ();
65                 }
66         
67                 public override CodeGroup ResolveMatchingCodeGroups (Evidence evidence) 
68                 {
69                         if (evidence == null)
70                                 throw new ArgumentNullException ();
71                         
72                         CodeGroup return_group = null;
73                         if (MembershipCondition.Check (evidence)) {
74                                 return_group = Copy ();
75
76                                 foreach (CodeGroup child_group in Children) {
77                                         CodeGroup matching = 
78                                                 child_group.ResolveMatchingCodeGroups (evidence);
79                                         if (matching == null)
80                                                 continue;
81                                         return_group.AddChild (matching);
82                                 }
83                         }
84
85                         return return_group;
86                 }
87         }
88 }
89