1 package org.apache.fulcrum.security.model.dynamic.entity.impl;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 import java.util.Set;
23
24 import org.apache.fulcrum.security.entity.Group;
25 import org.apache.fulcrum.security.entity.Permission;
26 import org.apache.fulcrum.security.entity.impl.SecurityEntityImpl;
27 import org.apache.fulcrum.security.model.dynamic.entity.DynamicRole;
28 import org.apache.fulcrum.security.util.GroupSet;
29 import org.apache.fulcrum.security.util.PermissionSet;
30
31
32
33
34
35
36
37
38
39 public class DynamicRoleImpl extends SecurityEntityImpl implements DynamicRole
40 {
41 private Set<? extends Permission> permissionSet = new PermissionSet();
42
43 private Set<? extends Group> groupSet = new GroupSet();
44
45
46
47
48
49
50 public PermissionSet getPermissions()
51 {
52 if (permissionSet instanceof PermissionSet)
53 {
54 return (PermissionSet) permissionSet;
55 }
56 else
57 {
58 permissionSet = new PermissionSet(permissionSet);
59 return (PermissionSet) permissionSet;
60 }
61 }
62
63
64
65
66
67
68 @SuppressWarnings("unchecked")
69 public <T extends Permission> Set<T> getPermissionsAsSet()
70 {
71 return (Set<T>) permissionSet;
72 }
73
74
75
76
77
78
79
80 public void setPermissions(PermissionSet permissionSet)
81 {
82 if (permissionSet != null)
83 {
84 this.permissionSet = permissionSet;
85 }
86 else
87 {
88 this.permissionSet = new PermissionSet();
89 }
90 }
91
92
93
94
95
96
97
98 public <T extends Permission> void setPermissionsAsSet(Set<T> permissions)
99 {
100 this.permissionSet = permissions;
101 }
102
103
104
105
106
107
108 public void addPermission(Permission permission)
109 {
110 getPermissions().add(permission);
111 }
112
113
114
115
116
117
118 public void removePermission(Permission permission)
119 {
120 getPermissions().remove(permission);
121 }
122
123
124
125
126
127
128 public GroupSet getGroups()
129 {
130 if (groupSet instanceof GroupSet)
131 {
132 return (GroupSet) groupSet;
133 }
134 else
135 {
136 groupSet = new GroupSet(groupSet);
137 return (GroupSet) groupSet;
138 }
139 }
140
141
142
143
144
145
146
147 public void setGroups(GroupSet groupSet)
148 {
149 if (groupSet != null)
150 {
151 this.groupSet = groupSet;
152 }
153 else
154 {
155 this.groupSet = new GroupSet();
156 }
157 }
158
159
160
161
162
163
164 public void removeGroup(Group group)
165 {
166 getGroups().remove(group);
167 }
168
169
170
171
172
173
174 public void addGroup(Group group)
175 {
176 getGroups().add(group);
177 }
178
179
180
181
182
183
184
185 public <T extends Group> void setGroupsAsSet(Set<T> groups)
186 {
187 this.groupSet = groups;
188 }
189
190
191
192
193
194
195 @SuppressWarnings("unchecked")
196 public <T extends Group> Set<T> getGroupsAsSet()
197 {
198 return (Set<T>) groupSet;
199 }
200 }