1 /*
2 * Copyright 2018-2022 Medical Information Systems Research Group (https://medical.zcu.cz),
3 * Department of Computer Science and Engineering, University of West Bohemia.
4 * Address: Univerzitni 8, 306 14 Plzen, Czech Republic.
5 *
6 * Author Petr Vcelak (vcelak@kiv.zcu.cz).
7 *
8 * This file is part of MRECore project.
9 *
10 * MRECore is free software: you can redistribute it and/or modify
11 * it under the terms of the GNU General Public License as published by
12 * the Free Software Foundation, either version 3 of the License.
13 *
14 * MRECore is distributed in the hope that it will be useful,
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 * GNU General Public License for more details.
18 *
19 * You should have received a copy of the GNU General Public License
20 * along with MRECore. If not, see <http://www.gnu.org/licenses/>.
21 */
22 package cz.zcu.mre.data.rdf;
23
24 import java.io.Serializable;
25 import java.util.Comparator;
26
27 /**
28 * Sort vocabulary items by it's annotation of property IBDT.ITEM_ID.
29 *
30 * @author Petr Vcelak (vcelak@kiv.zcu.cz)
31 */
32 public class ResourceWrapperComparator implements Comparator<ResourceWrapper>, Serializable {
33
34 @Override
35 public int compare(ResourceWrapper rw1, ResourceWrapper rw2) {
36
37 int compared = Integer.compare(rw1.getIntOrder(), rw2.getIntOrder());
38 if (compared != 0) {
39 return compared;
40 }
41
42 if (rw1.getStringOrder() != null) {
43
44 compared = rw1.getStringOrder().compareTo(rw2.getStringOrder());
45 if (compared != 0) {
46 return compared;
47 }
48 } else {
49 return -1;
50 }
51
52 if (rw1.getLabel() != null) {
53 compared = rw1.getLabel().compareTo(rw2.getLabel());
54 if (compared != 0) {
55 return compared;
56 }
57 } else {
58 return -1;
59 }
60
61 return rw1.getURI().compareTo(rw2.getURI());
62 }
63 }