35 public IssueSorter(Criteria ... criteria) { |
35 public IssueSorter(Criteria ... criteria) { |
36 this.criteria = criteria; |
36 this.criteria = criteria; |
37 } |
37 } |
38 |
38 |
39 private int compare(Issue left, Issue right, Criteria criteria) { |
39 private int compare(Issue left, Issue right, Criteria criteria) { |
|
40 if (left.equals(right)) |
|
41 return 0; |
|
42 |
40 int result; |
43 int result; |
41 switch (criteria.field) { |
44 switch (criteria.field) { |
42 case DONE: |
45 case DONE: |
43 result = Boolean.compare( |
46 result = Boolean.compare( |
44 left.getStatus().getPhase().equals(IssueStatusPhase.Companion.getDone()), |
47 left.getStatus().getPhase().equals(IssueStatusPhase.Companion.getDone()), |
45 right.getStatus().getPhase().equals(IssueStatusPhase.Companion.getDone())); |
48 right.getStatus().getPhase().equals(IssueStatusPhase.Companion.getDone())); |
46 break; |
49 break; |
47 case ETA: |
50 case ETA: |
48 if (left.getEta() != null && right.getEta() != null) |
51 if (left.getEta() != null && right.getEta() != null) |
49 result = left.getEta().compareTo(right.getEta()); |
52 result = left.getEta().compareTo(right.getEta()); |
|
53 else if (left.getEta() == null && right.getEta() == null) |
|
54 result = 0; |
50 else |
55 else |
51 result = left.getEta() != null ? -1 : 1; |
56 result = left.getEta() != null ? -1 : 1; |
52 break; |
57 break; |
53 case UPDATED: |
58 case UPDATED: |
54 result = left.getUpdated().compareTo(right.getUpdated()); |
59 result = left.getUpdated().compareTo(right.getUpdated()); |