1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.kuali.rice.kew.actionitem;
17
18 import java.util.Comparator;
19
20 import org.kuali.rice.kew.actionrequest.ActionRequestValue;
21 import org.kuali.rice.kew.api.action.ActionItemContract;
22 import org.kuali.rice.kew.api.action.RecipientType;
23
24
25
26
27
28
29 public class ActionItemComparator implements Comparator<ActionItemContract> {
30
31 @Override
32 public int compare(ActionItemContract actionItem1, ActionItemContract actionItem2) throws ClassCastException {
33 int actionCodeValue = ActionRequestValue.compareActionCode(actionItem1.getActionRequestCd(), actionItem2.getActionRequestCd(), true);
34 if (actionCodeValue != 0) {
35 return actionCodeValue;
36 }
37 int recipientTypeValue = ActionRequestValue.compareRecipientType(getRecipientTypeCode(actionItem1), getRecipientTypeCode(actionItem2));
38 if (recipientTypeValue != 0) {
39 return recipientTypeValue;
40 }
41 return ActionRequestValue.compareDelegationType(actionItem1.getDelegationType(), actionItem2.getDelegationType());
42 }
43
44 private String getRecipientTypeCode(Object object) {
45 ActionItemContract actionItem = (ActionItemContract)object;
46 String recipientTypeCode = RecipientType.PRINCIPAL.getCode();
47 if (actionItem.getRoleName() != null) {
48 recipientTypeCode = RecipientType.ROLE.getCode();
49 }
50 if (actionItem.getGroupId() != null) {
51 recipientTypeCode = RecipientType.GROUP.getCode();
52 }
53 return recipientTypeCode;
54 }
55
56 }