1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.mycore.restapi.v1.utils;
20
21 import java.util.Comparator;
22 import java.util.Locale;
23
24 import org.mycore.datamodel.common.MCRObjectIDDate;
25 import org.mycore.restapi.v1.utils.MCRRestAPISortObject.SortOrder;
26
27
28
29
30
31
32
33
34
35
36 public class MCRRestAPISortObjectComparator implements Comparator<MCRObjectIDDate> {
37 private MCRRestAPISortObject sortObj = null;
38
39 public MCRRestAPISortObjectComparator(MCRRestAPISortObject sortObj) {
40 this.sortObj = sortObj;
41 }
42
43 @Override
44 public int compare(MCRObjectIDDate o1, MCRObjectIDDate o2) {
45 if ("id".equals(sortObj.getField().toLowerCase(Locale.ROOT))) {
46 if (sortObj.getOrder() == SortOrder.ASC) {
47 return o1.getId().compareTo(o2.getId());
48 }
49 if (sortObj.getOrder() == SortOrder.DESC) {
50 return o2.getId().compareTo(o1.getId());
51 }
52 }
53 if ("lastmodified".equals(sortObj.getField().toLowerCase(Locale.ROOT))) {
54 if (sortObj.getOrder() == SortOrder.ASC) {
55 return o1.getLastModified().compareTo(o2.getLastModified());
56 }
57 if (sortObj.getOrder() == SortOrder.DESC) {
58 return o2.getLastModified().compareTo(o1.getLastModified());
59 }
60 }
61 return 0;
62 }
63 }