annotate src/main/java/de/mpiwg/itgroup/annotations/restlet/utils/JSONObjectComparator.java @ 70:2b1e6df5e21a

added lgpl_v3 license information.
author casties
date Thu, 06 Mar 2014 15:09:04 +0100
parents 9f8c9611848a
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
28
f4ed2ed33e5b Restinterface zur Anzeige von Tags hinzugefuegt-
dwinter
parents:
diff changeset
1 package de.mpiwg.itgroup.annotations.restlet.utils;
f4ed2ed33e5b Restinterface zur Anzeige von Tags hinzugefuegt-
dwinter
parents:
diff changeset
2
70
2b1e6df5e21a added lgpl_v3 license information.
casties
parents: 63
diff changeset
3 /*
2b1e6df5e21a added lgpl_v3 license information.
casties
parents: 63
diff changeset
4 * #%L
2b1e6df5e21a added lgpl_v3 license information.
casties
parents: 63
diff changeset
5 * AnnotationManager
2b1e6df5e21a added lgpl_v3 license information.
casties
parents: 63
diff changeset
6 * %%
2b1e6df5e21a added lgpl_v3 license information.
casties
parents: 63
diff changeset
7 * Copyright (C) 2012 - 2014 MPIWG Berlin
2b1e6df5e21a added lgpl_v3 license information.
casties
parents: 63
diff changeset
8 * %%
2b1e6df5e21a added lgpl_v3 license information.
casties
parents: 63
diff changeset
9 * This program is free software: you can redistribute it and/or modify
2b1e6df5e21a added lgpl_v3 license information.
casties
parents: 63
diff changeset
10 * it under the terms of the GNU Lesser General Public License as
2b1e6df5e21a added lgpl_v3 license information.
casties
parents: 63
diff changeset
11 * published by the Free Software Foundation, either version 3 of the
2b1e6df5e21a added lgpl_v3 license information.
casties
parents: 63
diff changeset
12 * License, or (at your option) any later version.
2b1e6df5e21a added lgpl_v3 license information.
casties
parents: 63
diff changeset
13 *
2b1e6df5e21a added lgpl_v3 license information.
casties
parents: 63
diff changeset
14 * This program is distributed in the hope that it will be useful,
2b1e6df5e21a added lgpl_v3 license information.
casties
parents: 63
diff changeset
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
2b1e6df5e21a added lgpl_v3 license information.
casties
parents: 63
diff changeset
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
2b1e6df5e21a added lgpl_v3 license information.
casties
parents: 63
diff changeset
17 * GNU General Lesser Public License for more details.
2b1e6df5e21a added lgpl_v3 license information.
casties
parents: 63
diff changeset
18 *
2b1e6df5e21a added lgpl_v3 license information.
casties
parents: 63
diff changeset
19 * You should have received a copy of the GNU General Lesser Public
2b1e6df5e21a added lgpl_v3 license information.
casties
parents: 63
diff changeset
20 * License along with this program. If not, see
2b1e6df5e21a added lgpl_v3 license information.
casties
parents: 63
diff changeset
21 * <http://www.gnu.org/licenses/lgpl-3.0.html>.
2b1e6df5e21a added lgpl_v3 license information.
casties
parents: 63
diff changeset
22 * #L%
2b1e6df5e21a added lgpl_v3 license information.
casties
parents: 63
diff changeset
23 * Author: Dirk Wintergruen (dwinter@mpiwg-berlin.mpg.de)
2b1e6df5e21a added lgpl_v3 license information.
casties
parents: 63
diff changeset
24 */
2b1e6df5e21a added lgpl_v3 license information.
casties
parents: 63
diff changeset
25
28
f4ed2ed33e5b Restinterface zur Anzeige von Tags hinzugefuegt-
dwinter
parents:
diff changeset
26 import java.util.Comparator;
31
9f653697437e annotationbrowser
dwinter
parents: 28
diff changeset
27 import java.util.List;
28
f4ed2ed33e5b Restinterface zur Anzeige von Tags hinzugefuegt-
dwinter
parents:
diff changeset
28
f4ed2ed33e5b Restinterface zur Anzeige von Tags hinzugefuegt-
dwinter
parents:
diff changeset
29 import org.json.JSONException;
f4ed2ed33e5b Restinterface zur Anzeige von Tags hinzugefuegt-
dwinter
parents:
diff changeset
30 import org.json.JSONObject;
f4ed2ed33e5b Restinterface zur Anzeige von Tags hinzugefuegt-
dwinter
parents:
diff changeset
31
f4ed2ed33e5b Restinterface zur Anzeige von Tags hinzugefuegt-
dwinter
parents:
diff changeset
32 public class JSONObjectComparator implements Comparator<JSONObject>{
f4ed2ed33e5b Restinterface zur Anzeige von Tags hinzugefuegt-
dwinter
parents:
diff changeset
33
f4ed2ed33e5b Restinterface zur Anzeige von Tags hinzugefuegt-
dwinter
parents:
diff changeset
34 private String attributeToSort;
f4ed2ed33e5b Restinterface zur Anzeige von Tags hinzugefuegt-
dwinter
parents:
diff changeset
35 public JSONObjectComparator(String attribute){
f4ed2ed33e5b Restinterface zur Anzeige von Tags hinzugefuegt-
dwinter
parents:
diff changeset
36 this.attributeToSort=attribute;
f4ed2ed33e5b Restinterface zur Anzeige von Tags hinzugefuegt-
dwinter
parents:
diff changeset
37 }
f4ed2ed33e5b Restinterface zur Anzeige von Tags hinzugefuegt-
dwinter
parents:
diff changeset
38
f4ed2ed33e5b Restinterface zur Anzeige von Tags hinzugefuegt-
dwinter
parents:
diff changeset
39 public int compare( JSONObject a, JSONObject b ) {
f4ed2ed33e5b Restinterface zur Anzeige von Tags hinzugefuegt-
dwinter
parents:
diff changeset
40 // je quadratischer, desto grösser
f4ed2ed33e5b Restinterface zur Anzeige von Tags hinzugefuegt-
dwinter
parents:
diff changeset
41 String sortA;
f4ed2ed33e5b Restinterface zur Anzeige von Tags hinzugefuegt-
dwinter
parents:
diff changeset
42 try {
f4ed2ed33e5b Restinterface zur Anzeige von Tags hinzugefuegt-
dwinter
parents:
diff changeset
43 sortA = a.getString(attributeToSort);
f4ed2ed33e5b Restinterface zur Anzeige von Tags hinzugefuegt-
dwinter
parents:
diff changeset
44 } catch (JSONException e) {
f4ed2ed33e5b Restinterface zur Anzeige von Tags hinzugefuegt-
dwinter
parents:
diff changeset
45 sortA ="";
f4ed2ed33e5b Restinterface zur Anzeige von Tags hinzugefuegt-
dwinter
parents:
diff changeset
46 }
f4ed2ed33e5b Restinterface zur Anzeige von Tags hinzugefuegt-
dwinter
parents:
diff changeset
47 String sortB;
f4ed2ed33e5b Restinterface zur Anzeige von Tags hinzugefuegt-
dwinter
parents:
diff changeset
48 try {
f4ed2ed33e5b Restinterface zur Anzeige von Tags hinzugefuegt-
dwinter
parents:
diff changeset
49 sortB = b.getString(attributeToSort);
f4ed2ed33e5b Restinterface zur Anzeige von Tags hinzugefuegt-
dwinter
parents:
diff changeset
50 } catch (JSONException e) {
f4ed2ed33e5b Restinterface zur Anzeige von Tags hinzugefuegt-
dwinter
parents:
diff changeset
51 sortB="";
f4ed2ed33e5b Restinterface zur Anzeige von Tags hinzugefuegt-
dwinter
parents:
diff changeset
52 }
f4ed2ed33e5b Restinterface zur Anzeige von Tags hinzugefuegt-
dwinter
parents:
diff changeset
53
f4ed2ed33e5b Restinterface zur Anzeige von Tags hinzugefuegt-
dwinter
parents:
diff changeset
54
f4ed2ed33e5b Restinterface zur Anzeige von Tags hinzugefuegt-
dwinter
parents:
diff changeset
55 return sortA.compareToIgnoreCase(sortB);
f4ed2ed33e5b Restinterface zur Anzeige von Tags hinzugefuegt-
dwinter
parents:
diff changeset
56 }
f4ed2ed33e5b Restinterface zur Anzeige von Tags hinzugefuegt-
dwinter
parents:
diff changeset
57
31
9f653697437e annotationbrowser
dwinter
parents: 28
diff changeset
58 /**
9f653697437e annotationbrowser
dwinter
parents: 28
diff changeset
59 * Sortiere array nach einem Parameter in den Annotationen
9f653697437e annotationbrowser
dwinter
parents: 28
diff changeset
60 * @param results
9f653697437e annotationbrowser
dwinter
parents: 28
diff changeset
61 * @return
9f653697437e annotationbrowser
dwinter
parents: 28
diff changeset
62 */
9f653697437e annotationbrowser
dwinter
parents: 28
diff changeset
63 public static void sortAnnotations(List<JSONObject> results,String attribute) {
9f653697437e annotationbrowser
dwinter
parents: 28
diff changeset
64 JSONObjectComparator comp = new JSONObjectComparator(attribute);
9f653697437e annotationbrowser
dwinter
parents: 28
diff changeset
65
9f653697437e annotationbrowser
dwinter
parents: 28
diff changeset
66
9f653697437e annotationbrowser
dwinter
parents: 28
diff changeset
67
9f653697437e annotationbrowser
dwinter
parents: 28
diff changeset
68 java.util.Collections.sort( results, comp);
9f653697437e annotationbrowser
dwinter
parents: 28
diff changeset
69
9f653697437e annotationbrowser
dwinter
parents: 28
diff changeset
70
9f653697437e annotationbrowser
dwinter
parents: 28
diff changeset
71
9f653697437e annotationbrowser
dwinter
parents: 28
diff changeset
72 }
28
f4ed2ed33e5b Restinterface zur Anzeige von Tags hinzugefuegt-
dwinter
parents:
diff changeset
73
f4ed2ed33e5b Restinterface zur Anzeige von Tags hinzugefuegt-
dwinter
parents:
diff changeset
74 }