1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.kuali.rice.kew.api.preferences;
17
18 import java.io.Serializable;
19 import java.util.Collection;
20 import java.util.HashMap;
21 import java.util.Map;
22
23 import javax.xml.bind.annotation.XmlAccessType;
24 import javax.xml.bind.annotation.XmlAccessorType;
25 import javax.xml.bind.annotation.XmlAnyElement;
26 import javax.xml.bind.annotation.XmlElement;
27 import javax.xml.bind.annotation.XmlRootElement;
28 import javax.xml.bind.annotation.XmlType;
29 import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
30
31 import org.apache.commons.lang.StringUtils;
32 import org.kuali.rice.core.api.mo.AbstractDataTransferObject;
33 import org.kuali.rice.core.api.mo.ModelBuilder;
34 import org.kuali.rice.core.api.util.jaxb.MultiValuedStringMapAdapter;
35 import org.kuali.rice.kew.api.KewApiConstants;
36 import org.w3c.dom.Element;
37
38
39
40
41
42
43
44
45
46
47
48 @XmlRootElement(name = Preferences.Constants.ROOT_ELEMENT_NAME)
49 @XmlAccessorType(XmlAccessType.NONE)
50 @XmlType(name = Preferences.Constants.TYPE_NAME)
51 public final class Preferences extends AbstractDataTransferObject implements PreferencesContract {
52
53 private static final long serialVersionUID = 642820621349964439L;
54
55 @XmlElement(name = Elements.REQUIRES_SAVE)
56 private final boolean requiresSave;
57 @XmlElement(name = Elements.EMAIL_NOTIFICATION)
58 private final String emailNotification;
59 @XmlElement(name = Elements.NOTIFY_PRIMARY_DELEGATION)
60 private final String notifyPrimaryDelegation;
61 @XmlElement(name = Elements.NOTIFY_SECONDARY_DELEGATION)
62 private final String notifySecondaryDelegation;
63 @XmlElement(name = Elements.OPEN_NEW_WINDOW)
64 private final String openNewWindow;
65 @XmlElement(name = Elements.SHOW_ACTION_REQUESTED)
66 private final String showActionRequested;
67 @XmlElement(name = Elements.SHOW_DATE_CREATED)
68 private final String showDateCreated;
69 @XmlElement(name = Elements.SHOW_DOCUMENT_STATUS)
70 private final String showDocumentStatus;
71 @XmlElement(name = Elements.SHOW_APP_DOC_STATUS)
72 private final String showAppDocStatus;
73 @XmlElement(name = Elements.SHOW_DOC_TYPE)
74 private final String showDocType;
75 @XmlElement(name = Elements.SHOW_INITIATOR)
76 private final String showInitiator;
77 @XmlElement(name = Elements.SHOW_DOC_TITLE)
78 private final String showDocTitle;
79 @XmlElement(name = Elements.SHOW_WORKGROUP_REQUEST)
80 private final String showWorkgroupRequest;
81 @XmlElement(name = Elements.SHOW_DELEGATOR)
82 private final String showDelegator;
83 @XmlElement(name = Elements.SHOW_CLEAR_FYI)
84 private final String showClearFyi;
85 @XmlElement(name = Elements.PAGE_SIZE)
86 private final String pageSize;
87 @XmlElement(name = Elements.REFRESH_RATE)
88 private final String refreshRate;
89 @XmlElement(name = Elements.COLOR_SAVED)
90 private final String colorSaved;
91 @XmlElement(name = Elements.COLOR_INITIATED)
92 private final String colorInitiated;
93 @XmlElement(name = Elements.COLOR_DISAPPROVED)
94 private final String colorDisapproved;
95 @XmlElement(name = Elements.COLOR_ENROUTE)
96 private final String colorEnroute;
97 @XmlElement(name = Elements.COLOR_APPROVED)
98 private final String colorApproved;
99 @XmlElement(name = Elements.COLOR_FINAL)
100 private final String colorFinal;
101 @XmlElement(name = Elements.COLOR_DISAPPROVE_CANCEL)
102 private final String colorDisapproveCancel;
103 @XmlElement(name = Elements.COLOR_PROCESSED)
104 private final String colorProcessed;
105 @XmlElement(name = Elements.COLOR_EXCEPTION)
106 private final String colorException;
107 @XmlElement(name = Elements.COLOR_CANCELED)
108 private final String colorCanceled;
109 @XmlElement(name = Elements.DELEGATOR_FILTER)
110 private final String delegatorFilter;
111 @XmlElement(name = Elements.USE_OUTBOX)
112 private final String useOutbox;
113 @XmlElement(name = Elements.SHOW_DATE_APPROVED)
114 private final String showDateApproved;
115 @XmlElement(name = Elements.SHOW_CURRENT_NODE)
116 private final String showCurrentNode;
117 @XmlElement(name = Elements.PRIMARY_DELEGATE_FILTER)
118 private final String primaryDelegateFilter;
119 @XmlElement(name = Elements.NOTIFY_ACKNOWLEDGE)
120 private final String notifyAcknowledge;
121 @XmlElement(name = Elements.NOTIFY_APPROVE)
122 private final String notifyApprove;
123 @XmlElement(name = Elements.NOTIFY_COMPLETE)
124 private final String notifyComplete;
125 @XmlElement(name = Elements.NOTIFY_FYI)
126 private final String notifyFYI;
127 @XmlElement(name = Elements.DOCUMENT_TYPE_NOTIFICATION_PREFERENCES)
128 @XmlJavaTypeAdapter(MultiValuedStringMapAdapter.class)
129 private Map<String, String> documentTypeNotificationPreferences;
130
131 @SuppressWarnings("unused")
132 @XmlAnyElement
133 private final Collection<Element> _futureElements = null;
134
135 private Preferences() {
136 this.emailNotification = null;
137 this.notifyPrimaryDelegation = null;
138 this.notifySecondaryDelegation = null;
139 this.openNewWindow = null;
140 this.showActionRequested = null;
141 this.showDateCreated = null;
142 this.showDocumentStatus = null;
143 this.showAppDocStatus = null;
144 this.showDocType = null;
145 this.showInitiator = null;
146 this.showDocTitle = null;
147 this.showWorkgroupRequest = null;
148 this.showDelegator = null;
149 this.showClearFyi = null;
150 this.pageSize = null;
151 this.refreshRate = null;
152 this.colorSaved = null;
153 this.colorInitiated = null;
154 this.colorDisapproved = null;
155 this.colorEnroute = null;
156 this.colorApproved = null;
157 this.colorFinal = null;
158 this.colorDisapproveCancel = null;
159 this.colorProcessed = null;
160 this.colorException = null;
161 this.colorCanceled = null;
162 this.delegatorFilter = null;
163 this.useOutbox = null;
164 this.showDateApproved = null;
165 this.showCurrentNode = null;
166 this.primaryDelegateFilter = null;
167 this.notifyAcknowledge = null;
168 this.notifyApprove = null;
169 this.notifyComplete = null;
170 this.notifyFYI = null;
171 this.documentTypeNotificationPreferences = new HashMap<String, String>();
172
173 this.requiresSave = false;
174 }
175
176 public Preferences(Builder builder) {
177 this.emailNotification = builder.getEmailNotification();
178 this.notifyPrimaryDelegation = builder.getNotifyPrimaryDelegation();
179 this.notifySecondaryDelegation = builder.getNotifySecondaryDelegation();
180 this.openNewWindow = builder.getOpenNewWindow();
181 this.showActionRequested = builder.getShowActionRequested();
182 this.showDateCreated = builder.getShowDateCreated();
183 this.showDocumentStatus = builder.getShowDocumentStatus();
184 this.showAppDocStatus = builder.getShowAppDocStatus();
185 this.showDocType = builder.getShowDocType();
186 this.showInitiator = builder.getShowInitiator();
187 this.showDocTitle = builder.getShowDocTitle();
188 this.showWorkgroupRequest = builder.getShowWorkgroupRequest();
189 this.showDelegator = builder.getShowDelegator();
190 this.showClearFyi = builder.getShowClearFyi();
191 this.pageSize = builder.getPageSize();
192 this.refreshRate = builder.getRefreshRate();
193 this.colorSaved = builder.getColorSaved();
194 this.colorInitiated = builder.getColorInitiated();
195 this.colorDisapproved = builder.getColorDisapproved();
196 this.colorEnroute = builder.getColorEnroute();
197 this.colorApproved = builder.getColorApproved();
198 this.colorFinal = builder.getColorFinal();
199 this.colorDisapproveCancel = builder.getColorDisapproveCancel();
200 this.colorProcessed = builder.getColorProcessed();
201 this.colorException = builder.getColorException();
202 this.colorCanceled = builder.getColorCanceled();
203 this.delegatorFilter = builder.getDelegatorFilter();
204 this.useOutbox = builder.getUseOutbox();
205 this.showDateApproved = builder.getShowDateApproved();
206 this.showCurrentNode = builder.getShowCurrentNode();
207 this.primaryDelegateFilter = builder.getPrimaryDelegateFilter();
208 this.requiresSave = builder.isRequiresSave();
209 this.notifyAcknowledge = builder.getNotifyAcknowledge();
210 this.notifyApprove = builder.getNotifyApprove();
211 this.notifyComplete = builder.getNotifyComplete();
212 this.notifyFYI = builder.getNotifyFYI();
213 this.documentTypeNotificationPreferences = builder.getDocumentTypeNotificationPreferences();
214 }
215
216 public boolean isRequiresSave() {
217 return requiresSave;
218 }
219
220 public String getEmailNotification() {
221 return emailNotification;
222 }
223
224 public String getNotifyPrimaryDelegation() {
225 return notifyPrimaryDelegation;
226 }
227
228 public String getNotifySecondaryDelegation() {
229 return notifySecondaryDelegation;
230 }
231
232 public String getOpenNewWindow() {
233 return openNewWindow;
234 }
235
236 public String getShowActionRequested() {
237 return showActionRequested;
238 }
239
240 public String getShowDateCreated() {
241 return showDateCreated;
242 }
243
244 public String getShowDocumentStatus() {
245 return showDocumentStatus;
246 }
247
248 public String getShowAppDocStatus() {
249 return showAppDocStatus;
250 }
251
252 public String getShowDocType() {
253 return showDocType;
254 }
255
256 public String getShowInitiator() {
257 return showInitiator;
258 }
259
260 public String getShowDocTitle() {
261 return showDocTitle;
262 }
263
264 public String getShowWorkgroupRequest() {
265 return showWorkgroupRequest;
266 }
267
268 public String getShowDelegator() {
269 return showDelegator;
270 }
271
272 public String getShowClearFyi() {
273 return showClearFyi;
274 }
275
276 public String getPageSize() {
277 return pageSize;
278 }
279
280 public String getRefreshRate() {
281 return refreshRate;
282 }
283
284 public String getColorSaved() {
285 return colorSaved;
286 }
287
288 public String getColorInitiated() {
289 return colorInitiated;
290 }
291
292 public String getColorDisapproved() {
293 return colorDisapproved;
294 }
295
296 public String getColorEnroute() {
297 return colorEnroute;
298 }
299
300 public String getColorApproved() {
301 return colorApproved;
302 }
303
304 public String getColorFinal() {
305 return colorFinal;
306 }
307
308 public String getColorDisapproveCancel() {
309 return colorDisapproveCancel;
310 }
311
312 public String getColorProcessed() {
313 return colorProcessed;
314 }
315
316 public String getColorException() {
317 return colorException;
318 }
319
320 public String getColorCanceled() {
321 return colorCanceled;
322 }
323
324 public String getDelegatorFilter() {
325 return delegatorFilter;
326 }
327
328 public String getUseOutbox() {
329 return useOutbox;
330 }
331
332 public String getShowDateApproved() {
333 return showDateApproved;
334 }
335
336 public String getShowCurrentNode() {
337 return showCurrentNode;
338 }
339
340 public String getPrimaryDelegateFilter() {
341 return primaryDelegateFilter;
342 }
343
344 public String getNotifyComplete() {
345 return this.notifyComplete;
346 }
347
348 public String getNotifyApprove() {
349 return this.notifyApprove;
350 }
351
352 public String getNotifyAcknowledge() {
353 return this.notifyAcknowledge;
354 }
355
356 public String getNotifyFYI() {
357 return this.notifyFYI;
358 }
359
360 public String getDocumentTypeNotificationPreference(String documentType) {
361 String preferenceName = documentType.replace(KewApiConstants.DOCUMENT_TYPE_NOTIFICATION_DELIMITER, ".");
362 String preferenceValue = this.documentTypeNotificationPreferences.get(preferenceName);
363 if(StringUtils.isNotBlank(preferenceValue)) {
364 return preferenceValue;
365 }
366 return null;
367 }
368
369 public Map<String, String> getDocumentTypeNotificationPreferences() {
370 return this.documentTypeNotificationPreferences;
371 }
372
373 public boolean isUsingOutbox() {
374 if (this.getUseOutbox() != null && this.getUseOutbox().equals(Constants.PREFERENCES_YES_VAL)) {
375 return true;
376 }
377 return false;
378 }
379
380 public final static class Builder
381 implements Serializable, ModelBuilder, PreferencesContract
382 {
383
384 private boolean requiresSave = false;
385
386 private String emailNotification;
387 private String notifyPrimaryDelegation;
388 private String notifySecondaryDelegation;
389 private String openNewWindow;
390 private String showActionRequested;
391 private String showDateCreated;
392 private String showDocumentStatus;
393 private String showAppDocStatus;
394 private String showDocType;
395 private String showInitiator;
396 private String showDocTitle;
397 private String showWorkgroupRequest;
398 private String showDelegator;
399 private String showClearFyi;
400 private String pageSize;
401 private String refreshRate;
402 private String colorSaved;
403 private String colorInitiated;
404 private String colorDisapproved;
405 private String colorEnroute;
406 private String colorApproved;
407 private String colorFinal;
408 private String colorDissapproveCancel;
409 private String colorProcessed;
410 private String colorException;
411 private String colorCanceled;
412 private String delegatorFilter;
413 private String useOutbox;
414 private String showDateApproved;
415 private String showCurrentNode;
416 private String primaryDelegateFilter;
417 private String notifyAcknowledge;
418 private String notifyApprove;
419 private String notifyComplete;
420 private String notifyFYI;
421 private Map<String, String> documentTypeNotificationPreferences;
422
423 private Builder() {
424 this.documentTypeNotificationPreferences = new HashMap<String, String>();
425 }
426
427 private Builder(String emailNotification, String notifyPrimaryDelegation, String notifySecondaryDelegation,
428 String openNewWindow, String showActionRequested, String showDateCreated, String showDocumentStatus,
429 String showAppDocStatus, String showDocType, String showInitiator, String showDocTitle,
430 String showWorkgroupRequest, String showDelegator, String showClearFyi, String pageSize, String refreshRate,
431 String colorSaved, String colorInitiated, String colorDisapproved, String colorEnroute,
432 String colorApproved, String colorFinal, String colorDissapproveCancel, String colorProcessed,
433 String colorException, String colorCanceled, String delegatorFilter, String useOutbox,
434 String showDateApproved, String showCurrentNode, String primaryDelegateFilter, String notifyAcknowledge,
435 String notifyApprove, String notifyComplete, String notifyFYI, Map<String, String> documentTypeNotificationPreferences,
436 boolean requiresSave) {
437 this.emailNotification = emailNotification;
438 this.notifyPrimaryDelegation = notifyPrimaryDelegation;
439 this.notifySecondaryDelegation = notifySecondaryDelegation;
440 this.openNewWindow = openNewWindow;
441 this.showActionRequested = showActionRequested;
442 this.showDateCreated = showDateCreated;
443 this.showDocumentStatus = showDocumentStatus;
444 this.showAppDocStatus = showAppDocStatus;
445 this.showDocType = showDocType;
446 this.showInitiator = showInitiator;
447 this.showDocTitle = showDocTitle;
448 this.showWorkgroupRequest = showWorkgroupRequest;
449 this.showDelegator = showDelegator;
450 this.showClearFyi = showClearFyi;
451 this.pageSize = pageSize;
452 this.refreshRate = refreshRate;
453 this.colorSaved = colorSaved;
454 this.colorInitiated = colorInitiated;
455 this.colorDisapproved = colorDisapproved;
456 this.colorEnroute = colorEnroute;
457 this.colorApproved = colorApproved;
458 this.colorFinal = colorFinal;
459 this.colorDissapproveCancel = colorDissapproveCancel;
460 this.colorProcessed = colorProcessed;
461 this.colorException = colorException;
462 this.colorCanceled = colorCanceled;
463 this.delegatorFilter = delegatorFilter;
464 this.useOutbox = useOutbox;
465 this.showDateApproved = showDateApproved;
466 this.showCurrentNode = showCurrentNode;
467 this.primaryDelegateFilter = primaryDelegateFilter;
468 this.requiresSave = requiresSave;
469 this.notifyAcknowledge = notifyAcknowledge;
470 this.notifyApprove = notifyApprove;
471 this.notifyComplete = notifyComplete;
472 this.notifyFYI = notifyFYI;
473 this.documentTypeNotificationPreferences = documentTypeNotificationPreferences;
474 }
475
476 public Preferences build() {
477 return new Preferences(this);
478 }
479
480 public static Builder create() {
481 return new Builder();
482 }
483
484 public static Builder create(String emailNotification, String notifyPrimaryDelegation, String notifySecondaryDelegation,
485 String openNewWindow, String showActionRequested, String showDateCreated, String showDocumentStatus,
486 String showAppDocStatus, String showDocType, String showInitiator, String showDocTitle,
487 String showWorkgroupRequest, String showDelegator, String showClearFyi, String pageSize, String refreshRate,
488 String colorSaved, String colorInitiated, String colorDisapproved, String colorEnroute,
489 String colorApproved, String colorFinal, String colorDissapproveCancel, String colorProcessed,
490 String colorException, String colorCanceled, String delegatorFilter, String useOutbox,
491 String showDateApproved, String showCurrentNode, String primaryDelegateFilter, String notifyAcknowledge,
492 String notifyApprove, String notifyComplete, String notifyFYI, Map<String, String> documentTypeNotificationPreferences,
493 boolean requiresSave) {
494 return new Builder(emailNotification, notifyPrimaryDelegation, notifySecondaryDelegation, openNewWindow, showActionRequested, showDateCreated,
495 showDocumentStatus, showAppDocStatus, showDocType, showInitiator, showDocTitle, showWorkgroupRequest, showDelegator, showClearFyi,
496 pageSize, refreshRate, colorSaved, colorInitiated, colorDisapproved, colorEnroute, colorApproved, colorFinal, colorDissapproveCancel,
497 colorProcessed, colorException, colorCanceled, delegatorFilter, useOutbox, showDateApproved, showCurrentNode, primaryDelegateFilter,
498 notifyAcknowledge, notifyApprove, notifyComplete, notifyFYI, documentTypeNotificationPreferences, requiresSave);
499 }
500
501 public static Builder create(PreferencesContract contract) {
502 if (contract == null) {
503 throw new IllegalArgumentException("contract was null");
504 }
505 Builder builder = create(contract.getEmailNotification(), contract.getNotifyPrimaryDelegation(), contract.getNotifySecondaryDelegation(), contract.getOpenNewWindow(),
506 contract.getShowActionRequested(), contract.getShowDateCreated(), contract.getShowDocumentStatus(), contract.getShowAppDocStatus(), contract.getShowDocType(),
507 contract.getShowInitiator(), contract.getShowDocTitle(), contract.getShowWorkgroupRequest(), contract.getShowDelegator(), contract.getShowClearFyi(),
508 contract.getPageSize(), contract.getRefreshRate(), contract.getColorSaved(), contract.getColorInitiated(), contract.getColorDisapproved(),
509 contract.getColorEnroute(), contract.getColorApproved(), contract.getColorFinal(), contract.getColorDisapproveCancel(), contract.getColorProcessed(),
510 contract.getColorException(), contract.getColorCanceled(), contract.getDelegatorFilter(), contract.getUseOutbox(), contract.getShowDateApproved(),
511 contract.getShowCurrentNode(), contract.getPrimaryDelegateFilter(), contract.getNotifyAcknowledge(), contract.getNotifyApprove(), contract.getNotifyComplete(),
512 contract.getNotifyFYI(), contract.getDocumentTypeNotificationPreferences(), contract.isRequiresSave());
513 return builder;
514 }
515
516 public static Builder create(Map<String, String> map, Map<String, String> documentTypeNotificationPreferences, boolean requiresSave) {
517 Builder builder = create(map.get(KEYS.EMAIL_NOTIFICATION), map.get(KEYS.NOTIFY_PRIMARY_DELEGATION), map.get(KEYS.NOTIFY_SECONDARY_DELEGATION), map.get(KEYS.OPEN_NEW_WINDOW),
518 map.get(KEYS.SHOW_ACTION_REQUESTED), map.get(KEYS.SHOW_DATE_CREATED), map.get(KEYS.SHOW_DOCUMENT_STATUS), map.get(KEYS.SHOW_APP_DOC_STATUS), map.get(KEYS.SHOW_DOC_TYPE),
519 map.get(KEYS.SHOW_INITIATOR), map.get(KEYS.SHOW_DOC_TITLE), map.get(KEYS.SHOW_GROUP_REQUEST), map.get(KEYS.SHOW_DELEGATOR), map.get(KEYS.SHOW_CLEAR_FYI),
520 map.get(KEYS.PAGE_SIZE), map.get(KEYS.REFRESH_RATE), map.get(KEYS.COLOR_SAVED), map.get(KEYS.COLOR_INITIATED), map.get(KEYS.COLOR_DISAPPROVED),
521 map.get(KEYS.COLOR_ENROUTE), map.get(KEYS.COLOR_APPROVED), map.get(KEYS.COLOR_FINAL), map.get(KEYS.COLOR_DISAPPROVE_CANCEL), map.get(KEYS.COLOR_PROCESSED),
522 map.get(KEYS.COLOR_EXCEPTION), map.get(KEYS.COLOR_CANCELED), map.get(KEYS.DELEGATOR_FILTER), map.get(KEYS.USE_OUT_BOX), map.get(KEYS.SHOW_DATE_APPROVED),
523 map.get(KEYS.SHOW_CURRENT_NODE), map.get(KEYS.PRIMARY_DELEGATE_FILTER), map.get(KEYS.NOTIFY_ACKNOWLEDGE), map.get(KEYS.NOTIFY_APPROVE), map.get(KEYS.NOTIFY_COMPLETE),
524 map.get(KEYS.NOTIFY_FYI), documentTypeNotificationPreferences, requiresSave);
525 return builder;
526 }
527
528 public synchronized boolean isRequiresSave() {
529 return requiresSave;
530 }
531
532 public synchronized void setRequiresSave(boolean requiresSave) {
533 this.requiresSave = requiresSave;
534 }
535
536 public synchronized String getEmailNotification() {
537 return emailNotification;
538 }
539
540 public synchronized void setEmailNotification(String emailNotification) {
541 this.emailNotification = emailNotification;
542 }
543
544 public synchronized String getNotifyPrimaryDelegation() {
545 return notifyPrimaryDelegation;
546 }
547
548 public synchronized void setNotifyPrimaryDelegation(String notifyPrimaryDelegation) {
549 this.notifyPrimaryDelegation = notifyPrimaryDelegation;
550 }
551
552 public synchronized String getNotifySecondaryDelegation() {
553 return notifySecondaryDelegation;
554 }
555
556 public synchronized void setNotifySecondaryDelegation(String notifySecondaryDelegation) {
557 this.notifySecondaryDelegation = notifySecondaryDelegation;
558 }
559
560 public synchronized String getOpenNewWindow() {
561 return openNewWindow;
562 }
563
564 public synchronized void setOpenNewWindow(String openNewWindow) {
565 this.openNewWindow = openNewWindow;
566 }
567
568 public synchronized String getShowActionRequested() {
569 return showActionRequested;
570 }
571
572 public synchronized void setShowActionRequested(String showActionRequested) {
573 this.showActionRequested = showActionRequested;
574 }
575
576 public synchronized String getShowDateCreated() {
577 return showDateCreated;
578 }
579
580 public synchronized void setShowDateCreated(String showDateCreated) {
581 this.showDateCreated = showDateCreated;
582 }
583
584 public synchronized String getShowDocumentStatus() {
585 return showDocumentStatus;
586 }
587
588 public synchronized void setShowDocumentStatus(String showDocumentStatus) {
589 this.showDocumentStatus = showDocumentStatus;
590 }
591
592 public synchronized String getShowAppDocStatus() {
593 return showAppDocStatus;
594 }
595
596 public synchronized void setShowAppDocStatus(String showAppDocStatus) {
597 this.showAppDocStatus = showAppDocStatus;
598 }
599
600 public synchronized String getShowDocType() {
601 return showDocType;
602 }
603
604 public synchronized void setShowDocType(String showDocType) {
605 this.showDocType = showDocType;
606 }
607
608 public synchronized String getShowInitiator() {
609 return showInitiator;
610 }
611
612 public synchronized void setShowInitiator(String showInitiator) {
613 this.showInitiator = showInitiator;
614 }
615
616 public synchronized String getShowDocTitle() {
617 return showDocTitle;
618 }
619
620 public synchronized void setShowDocTitle(String showDocTitle) {
621 this.showDocTitle = showDocTitle;
622 }
623
624 public synchronized String getShowWorkgroupRequest() {
625 return showWorkgroupRequest;
626 }
627
628 public synchronized void setShowWorkgroupRequest(String showWorkgroupRequest) {
629 this.showWorkgroupRequest = showWorkgroupRequest;
630 }
631
632 public synchronized String getShowDelegator() {
633 return showDelegator;
634 }
635
636 public synchronized void setShowDelegator(String showDelegator) {
637 this.showDelegator = showDelegator;
638 }
639
640 public synchronized String getShowClearFyi() {
641 return showClearFyi;
642 }
643
644 public synchronized void setShowClearFyi(String showClearFyi) {
645 this.showClearFyi = showClearFyi;
646 }
647
648 public synchronized String getPageSize() {
649 return pageSize;
650 }
651
652 public synchronized void setPageSize(String pageSize) {
653 this.pageSize = pageSize;
654 }
655
656 public synchronized String getRefreshRate() {
657 return refreshRate;
658 }
659
660 public synchronized void setRefreshRate(String refreshRate) {
661 this.refreshRate = refreshRate;
662 }
663
664 public synchronized String getColorSaved() {
665 return colorSaved;
666 }
667
668 public synchronized void setColorSaved(String colorSaved) {
669 this.colorSaved = colorSaved;
670 }
671
672 public synchronized String getColorInitiated() {
673 return colorInitiated;
674 }
675
676 public synchronized void setColorInitiated(String colorInitiated) {
677 this.colorInitiated = colorInitiated;
678 }
679
680 public synchronized String getColorDisapproved() {
681 return colorDisapproved;
682 }
683
684 public synchronized void setColorDisapproved(String colorDisapproved) {
685 this.colorDisapproved = colorDisapproved;
686 }
687
688 public synchronized String getColorEnroute() {
689 return colorEnroute;
690 }
691
692 public synchronized void setColorEnroute(String colorEnroute) {
693 this.colorEnroute = colorEnroute;
694 }
695
696 public synchronized String getColorApproved() {
697 return colorApproved;
698 }
699
700 public synchronized void setColorApproved(String colorApproved) {
701 this.colorApproved = colorApproved;
702 }
703
704 public synchronized String getColorFinal() {
705 return colorFinal;
706 }
707
708 public synchronized void setColorFinal(String colorFinal) {
709 this.colorFinal = colorFinal;
710 }
711
712 public synchronized String getColorDisapproveCancel() {
713 return colorDissapproveCancel;
714 }
715
716 public synchronized void setColorDissapproveCancel(String colorDissapproveCancel) {
717 this.colorDissapproveCancel = colorDissapproveCancel;
718 }
719
720 public synchronized String getColorProcessed() {
721 return colorProcessed;
722 }
723
724 public synchronized void setColorProcessed(String colorProcessed) {
725 this.colorProcessed = colorProcessed;
726 }
727
728 public synchronized String getColorException() {
729 return colorException;
730 }
731
732 public synchronized void setColorException(String colorException) {
733 this.colorException = colorException;
734 }
735
736 public synchronized String getColorCanceled() {
737 return colorCanceled;
738 }
739
740 public synchronized void setColorCanceled(String colorCanceled) {
741 this.colorCanceled = colorCanceled;
742 }
743
744 public synchronized String getDelegatorFilter() {
745 return delegatorFilter;
746 }
747
748 public synchronized void setDelegatorFilter(String delegatorFilter) {
749 this.delegatorFilter = delegatorFilter;
750 }
751
752 public synchronized String getUseOutbox() {
753 return useOutbox;
754 }
755
756 public synchronized void setUseOutbox(String useOutbox) {
757 this.useOutbox = useOutbox;
758 }
759
760 public synchronized String getShowDateApproved() {
761 return showDateApproved;
762 }
763
764 public synchronized void setShowDateApproved(String showDateApproved) {
765 this.showDateApproved = showDateApproved;
766 }
767
768 public synchronized String getShowCurrentNode() {
769 return showCurrentNode;
770 }
771
772 public synchronized void setShowCurrentNode(String showCurrentNode) {
773 this.showCurrentNode = showCurrentNode;
774 }
775
776 public synchronized String getPrimaryDelegateFilter() {
777 return primaryDelegateFilter;
778 }
779
780 public synchronized void setPrimaryDelegateFilter(String primaryDelegateFilter) {
781 this.primaryDelegateFilter = primaryDelegateFilter;
782 }
783
784 public synchronized String getNotifyAcknowledge() {
785 return this.notifyAcknowledge;
786 }
787
788 public synchronized void setNotifyAcknowledge(String notifyAcknowledge) {
789 this.notifyAcknowledge = notifyAcknowledge;
790 }
791
792 public synchronized String getNotifyApprove() {
793 return this.notifyApprove;
794 }
795
796 public synchronized void setNotifyApprove(String notifyApprove) {
797 this.notifyApprove = notifyApprove;
798 }
799
800 public synchronized String getNotifyComplete() {
801 return this.notifyComplete;
802 }
803
804 public synchronized void setNotifyComplete(String notifyComplete) {
805 this.notifyComplete = notifyComplete;
806 }
807
808 public synchronized String getNotifyFYI() {
809 return this.notifyFYI;
810 }
811
812 public synchronized void setNotifyFYI(String notifyFYI) {
813 this.notifyFYI = notifyFYI;
814 }
815
816 public synchronized String getDocumentTypeNotificationPreference(String documentType) {
817 String preferenceName = documentType.replace(KewApiConstants.DOCUMENT_TYPE_NOTIFICATION_DELIMITER, ".");
818 String preferenceValue = this.documentTypeNotificationPreferences.get(preferenceName);
819 if(StringUtils.isNotBlank(preferenceValue)) {
820 return preferenceValue;
821 }
822 return null;
823 }
824
825 public synchronized void setDocumentTypeNotificationPreference(String documentType, String preference) {
826 documentType = documentType.replace(KewApiConstants.DOCUMENT_TYPE_NOTIFICATION_DELIMITER, ".");
827 this.documentTypeNotificationPreferences.put(documentType, preference);
828 }
829
830 public synchronized Map<String, String> getDocumentTypeNotificationPreferences() {
831 if(this.documentTypeNotificationPreferences == null) {
832 this.documentTypeNotificationPreferences = new HashMap<String, String>();
833 }
834 return this.documentTypeNotificationPreferences;
835 }
836
837 public synchronized void setDocumentTypeNotificationPreferences(Map<String, String> documentTypeNotificationPreferences) {
838 this.documentTypeNotificationPreferences = documentTypeNotificationPreferences;
839 }
840
841 public synchronized void addDocumentTypeNotificationPreference(String documentType, String preference) {
842 this.getDocumentTypeNotificationPreferences().put(documentType, preference);
843 }
844
845 public synchronized void removeDocumentTypeNotificationPreference(String documentType) {
846 this.getDocumentTypeNotificationPreferences().remove(documentType);
847 }
848 }
849
850 static class Constants {
851 static final String ROOT_ELEMENT_NAME = "preferences";
852 static final String TYPE_NAME = "PreferencesType";
853 static final String PREFERENCES_YES_VAL = "yes";
854 }
855
856
857
858
859
860 static class Elements {
861
862 static final String REQUIRES_SAVE = "requiresSave";
863 static final String EMAIL_NOTIFICATION = "emailNotification";
864 static final String NOTIFY_PRIMARY_DELEGATION = "notifyPrimaryDelegation";
865 static final String NOTIFY_SECONDARY_DELEGATION = "notifySecondaryDelegation";
866 static final String OPEN_NEW_WINDOW = "openNewWindow";
867 static final String SHOW_ACTION_REQUESTED = "showActionRequested";
868 static final String SHOW_DATE_CREATED = "showDateCreated";
869 static final String SHOW_DOCUMENT_STATUS = "showDocumentStatus";
870 static final String SHOW_APP_DOC_STATUS = "showAppDocStatus";
871 static final String SHOW_DOC_TYPE = "showDocType";
872 static final String SHOW_INITIATOR = "showInitiator";
873 static final String SHOW_DOC_TITLE = "showDocTitle";
874 static final String SHOW_WORKGROUP_REQUEST = "showWorkgroupRequest";
875 static final String SHOW_DELEGATOR = "showDelegator";
876 static final String SHOW_CLEAR_FYI = "showClearFyi";
877 static final String PAGE_SIZE = "pageSize";
878 static final String REFRESH_RATE = "refreshRate";
879 static final String COLOR_SAVED = "colorSaved";
880 static final String COLOR_INITIATED = "colorInitiated";
881 static final String COLOR_DISAPPROVED = "colorDisapproved";
882 static final String COLOR_ENROUTE = "colorEnroute";
883 static final String COLOR_APPROVED = "colorApproved";
884 static final String COLOR_FINAL = "colorFinal";
885 static final String COLOR_DISAPPROVE_CANCEL = "colorDisapproveCancel";
886 static final String COLOR_PROCESSED = "colorProcessed";
887 static final String COLOR_EXCEPTION = "colorException";
888 static final String COLOR_CANCELED = "colorCanceled";
889 static final String DELEGATOR_FILTER = "delegatorFilter";
890 static final String USE_OUTBOX = "useOutbox";
891 static final String SHOW_DATE_APPROVED = "showDateApproved";
892 static final String SHOW_CURRENT_NODE = "showCurrentNode";
893 static final String PRIMARY_DELEGATE_FILTER = "primaryDelegateFilter";
894 static final String NOTIFY_ACKNOWLEDGE = "notifyAcknowledge";
895 static final String NOTIFY_APPROVE = "notifyApprove";
896 static final String NOTIFY_COMPLETE = "notifyCompelte";
897 static final String NOTIFY_FYI = "notifyFYI";
898 static final String DOCUMENT_TYPE_NOTIFICATION_PREFERENCES = "documentTypeNotificationPreferences";
899 }
900
901 public static class KEYS {
902 public static final String COLOR_DISAPPROVED = "DOCUMENT_STATUS_COLOR_D";
903 public static final String COLOR_DISAPPROVE_CANCEL = "DOCUMENT_STATUS_COLOR_C";
904 public static final String COLOR_APPROVED = "DOCUMENT_STATUS_COLOR_A";
905 public static final String COLOR_CANCELED = "DOCUMENT_STATUS_COLOR_X";
906 public static final String COLOR_SAVED = "DOCUMENT_STATUS_COLOR_S";
907 public static final String COLOR_ENROUTE = "DOCUMENT_STATUS_COLOR_R";
908 public static final String COLOR_PROCESSED = "DOCUMENT_STATUS_COLOR_P";
909 public static final String COLOR_INITIATED = "DOCUMENT_STATUS_COLOR_I";
910 public static final String COLOR_FINAL = "DOCUMENT_STATUS_COLOR_F";
911 public static final String COLOR_EXCEPTION = "DOCUMENT_STATUS_COLOR_E";
912 public static final String REFRESH_RATE = "REFRESH_RATE";
913 public static final String OPEN_NEW_WINDOW = "OPEN_ITEMS_NEW_WINDOW";
914 public static final String SHOW_DOC_TYPE = "DOC_TYPE_COL_SHOW_NEW";
915 public static final String SHOW_DOC_TITLE = "TITLE_COL_SHOW_NEW";
916 public static final String SHOW_ACTION_REQUESTED = "ACTION_REQUESTED_COL_SHOW_NEW";
917 public static final String SHOW_INITIATOR = "INITIATOR_COL_SHOW_NEW";
918 public static final String SHOW_DELEGATOR = "DELEGATOR_COL_SHOW_NEW";
919 public static final String SHOW_DATE_CREATED = "DATE_CREATED_COL_SHOW_NEW";
920 public static final String SHOW_DOCUMENT_STATUS = "DOCUMENT_STATUS_COL_SHOW_NEW";
921 public static final String SHOW_APP_DOC_STATUS = "APP_DOC_STATUS_COL_SHOW_NEW";
922 public static final String SHOW_GROUP_REQUEST = "WORKGROUP_REQUEST_COL_SHOW_NEW";
923 public static final String SHOW_CLEAR_FYI = "CLEAR_FYI_COL_SHOW_NEW";
924 public static final String PAGE_SIZE = "ACTION_LIST_SIZE_NEW";
925 public static final String EMAIL_NOTIFICATION = "EMAIL_NOTIFICATION";
926 public static final String NOTIFY_PRIMARY_DELEGATION = "EMAIL_NOTIFY_PRIMARY";
927 public static final String NOTIFY_SECONDARY_DELEGATION = "EMAIL_NOTIFY_SECONDARY";
928 public static final String DEFAULT_COLOR = "white";
929 public static final String DEFAULT_ACTION_LIST_SIZE = "10";
930 public static final String DEFAULT_REFRESH_RATE = "15";
931 public static final String ERR_KEY_REFRESH_RATE_WHOLE_NUM = "preferences.refreshRate";
932 public static final String ERR_KEY_ACTION_LIST_PAGE_SIZE_WHOLE_NUM = "preferences.pageSize";
933 public static final String DELEGATOR_FILTER = "DELEGATOR_FILTER";
934 public static final String PRIMARY_DELEGATE_FILTER = "PRIMARY_DELEGATE_FILTER";
935 public static final String USE_OUT_BOX = "USE_OUT_BOX";
936 public static final String SHOW_DATE_APPROVED = "LAST_APPROVED_DATE_COL_SHOW_NEW";
937 public static final String SHOW_CURRENT_NODE = "CURRENT_NODE_COL_SHOW_NEW";
938 public static final String NOTIFY_ACKNOWLEDGE = "NOTIFY_ACKNOWLEDGE";
939 public static final String NOTIFY_APPROVE = "NOTIFY_APPROVE";
940 public static final String NOTIFY_COMPLETE = "NOTIFY_COMPLETE";
941 public static final String NOTIFY_FYI = "NOTIFY_FYI";
942 public static final String DOCUMENT_TYPE_NOTIFICATION_PREFERENCES = "DOCUMENT_TYPE_NOTIFICATION_PREFERENCES";
943 }
944
945 public static class Cache {
946 public static final String NAME = KewApiConstants.Namespaces.KEW_NAMESPACE_2_0 + "/" + Preferences.Constants.TYPE_NAME;
947 }
948
949 }