1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.syncope.common.lib.to;
20
21 import com.fasterxml.jackson.annotation.JsonIgnore;
22 import java.util.ArrayList;
23 import java.util.EnumSet;
24 import java.util.List;
25 import java.util.Optional;
26 import java.util.Set;
27 import javax.ws.rs.PathParam;
28 import org.apache.commons.lang3.builder.EqualsBuilder;
29 import org.apache.commons.lang3.builder.HashCodeBuilder;
30 import org.apache.syncope.common.lib.types.ConnConfProperty;
31 import org.apache.syncope.common.lib.types.ConnectorCapability;
32 import org.apache.syncope.common.lib.types.TraceLevel;
33
34 public class ResourceTO implements EntityTO {
35
36 private static final long serialVersionUID = -9193551354041698963L;
37
38 private String key;
39
40
41
42
43 private String connector;
44
45
46
47
48 private String connectorDisplayName;
49
50 private final List<Provision> provisions = new ArrayList<>();
51
52 private OrgUnit orgUnit;
53
54 private Integer propagationPriority;
55
56 private boolean enforceMandatoryCondition;
57
58 private TraceLevel createTraceLevel = TraceLevel.ALL;
59
60 private TraceLevel updateTraceLevel = TraceLevel.ALL;
61
62 private TraceLevel deleteTraceLevel = TraceLevel.ALL;
63
64 private TraceLevel provisioningTraceLevel = TraceLevel.ALL;
65
66 private String passwordPolicy;
67
68 private String accountPolicy;
69
70 private String propagationPolicy;
71
72 private String pullPolicy;
73
74 private String pushPolicy;
75
76 private String provisionSorter;
77
78 private String authPolicy;
79
80 private String accessPolicy;
81
82 private final List<ConnConfProperty> confOverride = new ArrayList<>();
83
84 private boolean overrideCapabilities = false;
85
86 private final Set<ConnectorCapability> capabilitiesOverride = EnumSet.noneOf(ConnectorCapability.class);
87
88 private final List<String> propagationActions = new ArrayList<>();
89
90 @Override
91 public String getKey() {
92 return key;
93 }
94
95 @PathParam("key")
96 @Override
97 public void setKey(final String key) {
98 this.key = key;
99 }
100
101 public boolean isEnforceMandatoryCondition() {
102 return enforceMandatoryCondition;
103 }
104
105 public void setEnforceMandatoryCondition(final boolean enforceMandatoryCondition) {
106 this.enforceMandatoryCondition = enforceMandatoryCondition;
107 }
108
109 public String getConnector() {
110 return connector;
111 }
112
113 public void setConnector(final String connector) {
114 this.connector = connector;
115 }
116
117 public String getConnectorDisplayName() {
118 return connectorDisplayName;
119 }
120
121 public void setConnectorDisplayName(final String connectorDisplayName) {
122 this.connectorDisplayName = connectorDisplayName;
123 }
124
125 public Integer getPropagationPriority() {
126 return propagationPriority;
127 }
128
129 public void setPropagationPriority(final Integer propagationPriority) {
130 this.propagationPriority = propagationPriority;
131 }
132
133 public TraceLevel getCreateTraceLevel() {
134 return createTraceLevel;
135 }
136
137 public void setCreateTraceLevel(final TraceLevel createTraceLevel) {
138 this.createTraceLevel = createTraceLevel;
139 }
140
141 public TraceLevel getDeleteTraceLevel() {
142 return deleteTraceLevel;
143 }
144
145 public void setDeleteTraceLevel(final TraceLevel deleteTraceLevel) {
146 this.deleteTraceLevel = deleteTraceLevel;
147 }
148
149 public TraceLevel getUpdateTraceLevel() {
150 return updateTraceLevel;
151 }
152
153 public void setUpdateTraceLevel(final TraceLevel updateTraceLevel) {
154 this.updateTraceLevel = updateTraceLevel;
155 }
156
157 public String getPasswordPolicy() {
158 return passwordPolicy;
159 }
160
161 public void setPasswordPolicy(final String passwordPolicy) {
162 this.passwordPolicy = passwordPolicy;
163 }
164
165 public String getAccountPolicy() {
166 return accountPolicy;
167 }
168
169 public void setAccountPolicy(final String accountPolicy) {
170 this.accountPolicy = accountPolicy;
171 }
172
173 public String getPropagationPolicy() {
174 return propagationPolicy;
175 }
176
177 public void setPropagationPolicy(final String propagationPolicy) {
178 this.propagationPolicy = propagationPolicy;
179 }
180
181 public String getPullPolicy() {
182 return pullPolicy;
183 }
184
185 public void setPullPolicy(final String pullPolicy) {
186 this.pullPolicy = pullPolicy;
187 }
188
189 public String getPushPolicy() {
190 return pushPolicy;
191 }
192
193 public void setPushPolicy(final String pushPolicy) {
194 this.pushPolicy = pushPolicy;
195 }
196
197 public String getProvisionSorter() {
198 return provisionSorter;
199 }
200
201 public void setProvisionSorter(final String provisionSorter) {
202 this.provisionSorter = provisionSorter;
203 }
204
205 public String getAuthPolicy() {
206 return authPolicy;
207 }
208
209 public void setAuthPolicy(final String authPolicy) {
210 this.authPolicy = authPolicy;
211 }
212
213 public String getAccessPolicy() {
214 return accessPolicy;
215 }
216
217 public void setAccessPolicy(final String accessPolicy) {
218 this.accessPolicy = accessPolicy;
219 }
220
221 @JsonIgnore
222 public Optional<Provision> getProvision(final String anyType) {
223 return provisions.stream().filter(
224 provision -> anyType != null && anyType.equals(provision.getAnyType())).
225 findFirst();
226 }
227
228 public List<Provision> getProvisions() {
229 return provisions;
230 }
231
232 public OrgUnit getOrgUnit() {
233 return orgUnit;
234 }
235
236 public void setOrgUnit(final OrgUnit orgUnit) {
237 this.orgUnit = orgUnit;
238 }
239
240 public List<ConnConfProperty> getConfOverride() {
241 return confOverride;
242 }
243
244 public boolean isOverrideCapabilities() {
245 return overrideCapabilities;
246 }
247
248 public void setOverrideCapabilities(final boolean overrideCapabilities) {
249 this.overrideCapabilities = overrideCapabilities;
250 }
251
252 public Set<ConnectorCapability> getCapabilitiesOverride() {
253 return capabilitiesOverride;
254 }
255
256 public TraceLevel getProvisioningTraceLevel() {
257 return provisioningTraceLevel;
258 }
259
260 public void setProvisioningTraceLevel(final TraceLevel provisioningTraceLevel) {
261 this.provisioningTraceLevel = provisioningTraceLevel;
262 }
263
264 public List<String> getPropagationActions() {
265 return propagationActions;
266 }
267
268 @Override
269 public boolean equals(final Object obj) {
270 if (this == obj) {
271 return true;
272 }
273 if (obj == null) {
274 return false;
275 }
276 if (getClass() != obj.getClass()) {
277 return false;
278 }
279 ResourceTO other = (ResourceTO) obj;
280 return new EqualsBuilder().
281 append(enforceMandatoryCondition, other.enforceMandatoryCondition).
282 append(overrideCapabilities, other.overrideCapabilities).
283 append(key, other.key).
284 append(connector, other.connector).
285 append(connectorDisplayName, other.connectorDisplayName).
286 append(provisions, other.provisions).
287 append(orgUnit, other.orgUnit).
288 append(propagationPriority, other.propagationPriority).
289 append(createTraceLevel, other.createTraceLevel).
290 append(updateTraceLevel, other.updateTraceLevel).
291 append(deleteTraceLevel, other.deleteTraceLevel).
292 append(provisioningTraceLevel, other.provisioningTraceLevel).
293 append(passwordPolicy, other.passwordPolicy).
294 append(accountPolicy, other.accountPolicy).
295 append(propagationPolicy, other.propagationPolicy).
296 append(pullPolicy, other.pullPolicy).
297 append(pushPolicy, other.pushPolicy).
298 append(authPolicy, other.authPolicy).
299 append(accessPolicy, other.accessPolicy).
300 append(confOverride, other.confOverride).
301 append(capabilitiesOverride, other.capabilitiesOverride).
302 append(propagationActions, other.propagationActions).
303 append(provisionSorter, other.provisionSorter).
304 build();
305 }
306
307 @Override
308 public int hashCode() {
309 return new HashCodeBuilder().
310 append(key).
311 append(connector).
312 append(connectorDisplayName).
313 append(provisions).
314 append(orgUnit).
315 append(propagationPriority).
316 append(enforceMandatoryCondition).
317 append(createTraceLevel).
318 append(updateTraceLevel).
319 append(deleteTraceLevel).
320 append(provisioningTraceLevel).
321 append(passwordPolicy).
322 append(accountPolicy).
323 append(propagationPolicy).
324 append(pullPolicy).
325 append(pushPolicy).
326 append(authPolicy).
327 append(accessPolicy).
328 append(confOverride).
329 append(overrideCapabilities).
330 append(capabilitiesOverride).
331 append(propagationActions).
332 append(provisionSorter).
333 build();
334 }
335 }