1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.kuali.rice.kew.api.rule;
17
18 import org.kuali.rice.core.api.CoreConstants;
19 import org.kuali.rice.core.api.mo.AbstractDataTransferObject;
20 import org.kuali.rice.core.api.mo.ModelBuilder;
21 import org.kuali.rice.core.api.util.jaxb.MapStringStringAdapter;
22 import org.w3c.dom.Element;
23
24 import javax.xml.bind.annotation.XmlAccessType;
25 import javax.xml.bind.annotation.XmlAccessorType;
26 import javax.xml.bind.annotation.XmlAnyElement;
27 import javax.xml.bind.annotation.XmlElement;
28 import javax.xml.bind.annotation.XmlElementWrapper;
29 import javax.xml.bind.annotation.XmlRootElement;
30 import javax.xml.bind.annotation.XmlType;
31 import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
32 import java.io.Serializable;
33 import java.util.Collection;
34 import java.util.Collections;
35 import java.util.List;
36 import java.util.Map;
37
38 @XmlRootElement(name = RuleReportCriteria.Constants.ROOT_ELEMENT_NAME)
39 @XmlAccessorType(XmlAccessType.NONE)
40 @XmlType(name = RuleReportCriteria.Constants.TYPE_NAME, propOrder = {
41 RuleReportCriteria.Elements.RULE_DESCRIPTION,
42 RuleReportCriteria.Elements.DOCUMENT_TYPE_NAME,
43 RuleReportCriteria.Elements.RULE_TEMPLATE_NAME,
44 RuleReportCriteria.Elements.ACTION_REQUEST_CODES,
45 RuleReportCriteria.Elements.RESPONSIBLE_PRINCIPAL_ID,
46 RuleReportCriteria.Elements.RESPONSIBLE_GROUP_ID,
47 RuleReportCriteria.Elements.RESPONSIBLE_ROLE_NAME,
48 RuleReportCriteria.Elements.RULE_EXTENSIONS,
49 RuleReportCriteria.Elements.ACTIVE,
50 RuleReportCriteria.Elements.CONSIDER_GROUP_MEMBERSHIP,
51 RuleReportCriteria.Elements.INCLUDE_DELEGATIONS,
52 CoreConstants.CommonElements.FUTURE_ELEMENTS
53 })
54 public final class RuleReportCriteria
55 extends AbstractDataTransferObject
56 implements RuleReportCriteriaContract
57 {
58
59 @XmlElement(name = Elements.RULE_DESCRIPTION, required = false)
60 private final String ruleDescription;
61
62 @XmlElement(name = Elements.DOCUMENT_TYPE_NAME, required = false)
63 private final String documentTypeName;
64
65 @XmlElement(name = Elements.RULE_TEMPLATE_NAME, required = false)
66 private final String ruleTemplateName;
67
68 @XmlElementWrapper(name = Elements.ACTION_REQUEST_CODES, required = false)
69 @XmlElement(name = Elements.ACTION_REQUEST_CODE, required = false)
70 private final List<String> actionRequestCodes;
71
72 @XmlElement(name = Elements.RESPONSIBLE_PRINCIPAL_ID, required = false)
73 private final String responsiblePrincipalId;
74
75 @XmlElement(name = Elements.RESPONSIBLE_GROUP_ID, required = false)
76 private final String responsibleGroupId;
77
78 @XmlElement(name = Elements.RESPONSIBLE_ROLE_NAME, required = false)
79 private final String responsibleRoleName;
80
81 @XmlElement(name = Elements.RULE_EXTENSIONS, required = false)
82 @XmlJavaTypeAdapter(value = MapStringStringAdapter.class)
83 private final Map<String, String> ruleExtensions;
84
85 @XmlElement(name = Elements.ACTIVE, required = false)
86 private final boolean active;
87
88 @XmlElement(name = Elements.CONSIDER_GROUP_MEMBERSHIP, required = false)
89 private final boolean considerGroupMembership;
90
91 @XmlElement(name = Elements.INCLUDE_DELEGATIONS, required = false)
92 private final boolean includeDelegations;
93
94 @SuppressWarnings("unused")
95 @XmlAnyElement
96 private final Collection<Element> _futureElements = null;
97
98
99
100
101
102 private RuleReportCriteria() {
103 this.ruleDescription = null;
104 this.documentTypeName = null;
105 this.ruleTemplateName = null;
106 this.actionRequestCodes = null;
107 this.responsiblePrincipalId = null;
108 this.responsibleGroupId = null;
109 this.responsibleRoleName = null;
110 this.ruleExtensions = null;
111 this.active = false;
112 this.considerGroupMembership = false;
113 this.includeDelegations = false;
114 }
115
116 private RuleReportCriteria(Builder builder) {
117 this.ruleDescription = builder.getRuleDescription();
118 this.documentTypeName = builder.getDocumentTypeName();
119 this.ruleTemplateName = builder.getRuleTemplateName();
120 this.actionRequestCodes = builder.getActionRequestCodes();
121 this.responsiblePrincipalId = builder.getResponsiblePrincipalId();
122 this.responsibleGroupId = builder.getResponsibleGroupId();
123 this.responsibleRoleName = builder.getResponsibleRoleName();
124 this.ruleExtensions = builder.getRuleExtensions();
125 this.active = builder.isActive();
126 this.considerGroupMembership = builder.isConsiderGroupMembership();
127 this.includeDelegations = builder.isIncludeDelegations();
128 }
129
130 @Override
131 public String getRuleDescription() {
132 return this.ruleDescription;
133 }
134
135 @Override
136 public String getDocumentTypeName() {
137 return this.documentTypeName;
138 }
139
140 @Override
141 public String getRuleTemplateName() {
142 return this.ruleTemplateName;
143 }
144
145 @Override
146 public List<String> getActionRequestCodes() {
147 return this.actionRequestCodes;
148 }
149
150 @Override
151 public String getResponsiblePrincipalId() {
152 return this.responsiblePrincipalId;
153 }
154
155 @Override
156 public String getResponsibleGroupId() {
157 return this.responsibleGroupId;
158 }
159
160 @Override
161 public String getResponsibleRoleName() {
162 return this.responsibleRoleName;
163 }
164
165 @Override
166 public Map<String, String> getRuleExtensions() {
167 return this.ruleExtensions;
168 }
169
170 @Override
171 public boolean isActive() {
172 return this.active;
173 }
174
175 @Override
176 public boolean isConsiderGroupMembership() {
177 return this.considerGroupMembership;
178 }
179
180 @Override
181 public boolean isIncludeDelegations() {
182 return this.includeDelegations;
183 }
184
185
186
187
188
189
190 public final static class Builder
191 implements Serializable, ModelBuilder, RuleReportCriteriaContract
192 {
193
194 private String ruleDescription;
195 private String documentTypeName;
196 private String ruleTemplateName;
197 private List<String> actionRequestCodes;
198 private String responsiblePrincipalId;
199 private String responsibleGroupId;
200 private String responsibleRoleName;
201 private Map<String, String> ruleExtensions;
202 private boolean active;
203 private boolean considerGroupMembership;
204 private boolean includeDelegations;
205
206 private Builder() {
207 setActive(true);
208 setConsiderGroupMembership(true);
209 }
210
211 public static Builder create() {
212 return new Builder();
213 }
214
215 public static Builder create(RuleReportCriteriaContract contract) {
216 if (contract == null) {
217 throw new IllegalArgumentException("contract was null");
218 }
219 Builder builder = create();
220 builder.setRuleDescription(contract.getRuleDescription());
221 builder.setDocumentTypeName(contract.getDocumentTypeName());
222 builder.setRuleTemplateName(contract.getRuleTemplateName());
223 builder.setActionRequestCodes(contract.getActionRequestCodes());
224 builder.setResponsiblePrincipalId(contract.getResponsiblePrincipalId());
225 builder.setResponsibleGroupId(contract.getResponsibleGroupId());
226 builder.setResponsibleRoleName(contract.getResponsibleRoleName());
227 builder.setRuleExtensions(contract.getRuleExtensions());
228 builder.setActive(contract.isActive());
229 builder.setConsiderGroupMembership(contract.isConsiderGroupMembership());
230 builder.setIncludeDelegations(contract.isIncludeDelegations());
231 return builder;
232 }
233
234 public RuleReportCriteria build() {
235 return new RuleReportCriteria(this);
236 }
237
238 @Override
239 public String getRuleDescription() {
240 return this.ruleDescription;
241 }
242
243 @Override
244 public String getDocumentTypeName() {
245 return this.documentTypeName;
246 }
247
248 @Override
249 public String getRuleTemplateName() {
250 return this.ruleTemplateName;
251 }
252
253 @Override
254 public List<String> getActionRequestCodes() {
255 return this.actionRequestCodes;
256 }
257
258 @Override
259 public String getResponsiblePrincipalId() {
260 return this.responsiblePrincipalId;
261 }
262
263 @Override
264 public String getResponsibleGroupId() {
265 return this.responsibleGroupId;
266 }
267
268 @Override
269 public String getResponsibleRoleName() {
270 return this.responsibleRoleName;
271 }
272
273 @Override
274 public Map<String, String> getRuleExtensions() {
275 return this.ruleExtensions;
276 }
277
278 @Override
279 public boolean isActive() {
280 return this.active;
281 }
282
283 @Override
284 public boolean isConsiderGroupMembership() {
285 return this.considerGroupMembership;
286 }
287
288 @Override
289 public boolean isIncludeDelegations() {
290 return this.includeDelegations;
291 }
292
293 public void setRuleDescription(String ruleDescription) {
294
295 this.ruleDescription = ruleDescription;
296 }
297
298 public void setDocumentTypeName(String documentTypeName) {
299
300 this.documentTypeName = documentTypeName;
301 }
302
303 public void setRuleTemplateName(String ruleTemplateName) {
304
305 this.ruleTemplateName = ruleTemplateName;
306 }
307
308 public void setActionRequestCodes(List<String> actionRequestCodes) {
309
310 this.actionRequestCodes = actionRequestCodes;
311 }
312
313 public void setResponsiblePrincipalId(String responsiblePrincipalId) {
314
315 this.responsiblePrincipalId = responsiblePrincipalId;
316 }
317
318 public void setResponsibleGroupId(String responsibleGroupId) {
319
320 this.responsibleGroupId = responsibleGroupId;
321 }
322
323 public void setResponsibleRoleName(String responsibleRoleName) {
324
325 this.responsibleRoleName = responsibleRoleName;
326 }
327
328 public void setRuleExtensions(Map<String, String> ruleExtensions) {
329
330 this.ruleExtensions = Collections.unmodifiableMap(ruleExtensions);
331 }
332
333 public void setActive(boolean active) {
334
335 this.active = active;
336 }
337
338 public void setConsiderGroupMembership(boolean considerGroupMembership) {
339
340 this.considerGroupMembership = considerGroupMembership;
341 }
342
343 public void setIncludeDelegations(boolean includeDelegations) {
344
345 this.includeDelegations = includeDelegations;
346 }
347
348 }
349
350
351
352
353
354
355 static class Constants {
356
357 final static String ROOT_ELEMENT_NAME = "ruleReportCriteria";
358 final static String TYPE_NAME = "RuleReportCriteriaType";
359
360 }
361
362
363
364
365
366
367 static class Elements {
368
369 final static String RULE_DESCRIPTION = "ruleDescription";
370 final static String DOCUMENT_TYPE_NAME = "documentTypeName";
371 final static String RULE_TEMPLATE_NAME = "ruleTemplateName";
372 final static String ACTION_REQUEST_CODES = "actionRequestCodes";
373 final static String ACTION_REQUEST_CODE = "actionRequestCode";
374 final static String RESPONSIBLE_PRINCIPAL_ID = "responsiblePrincipalId";
375 final static String RESPONSIBLE_GROUP_ID = "responsibleGroupId";
376 final static String RESPONSIBLE_ROLE_NAME = "responsibleRoleName";
377 final static String RULE_EXTENSIONS = "ruleExtensions";
378 final static String ACTIVE = "active";
379 final static String CONSIDER_GROUP_MEMBERSHIP = "considerGroupMembership";
380 final static String INCLUDE_DELEGATIONS = "includeDelegations";
381
382 }
383
384 }