annotate src/main/java/de/mpiwg/itgroup/annotations/restlet/utils/JSONObjectComparator.java @ 31:9f653697437e

annotationbrowser
author dwinter
date Tue, 25 Sep 2012 21:47:58 +0200
parents f4ed2ed33e5b
children 9f8c9611848a
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
f4ed2ed33e5b Restinterface zur Anzeige von Tags hinzugefuegt-
dwinter
parents:
diff changeset
3 import java.util.Comparator;
31
9f653697437e annotationbrowser
dwinter
parents: 28
diff changeset
4 import java.util.List;
28
f4ed2ed33e5b Restinterface zur Anzeige von Tags hinzugefuegt-
dwinter
parents:
diff changeset
5
f4ed2ed33e5b Restinterface zur Anzeige von Tags hinzugefuegt-
dwinter
parents:
diff changeset
6 import de.mpiwg.itgroup.annotations.Annotation;
f4ed2ed33e5b Restinterface zur Anzeige von Tags hinzugefuegt-
dwinter
parents:
diff changeset
7
f4ed2ed33e5b Restinterface zur Anzeige von Tags hinzugefuegt-
dwinter
parents:
diff changeset
8 import org.json.JSONException;
f4ed2ed33e5b Restinterface zur Anzeige von Tags hinzugefuegt-
dwinter
parents:
diff changeset
9 import org.json.JSONObject;
f4ed2ed33e5b Restinterface zur Anzeige von Tags hinzugefuegt-
dwinter
parents:
diff changeset
10
f4ed2ed33e5b Restinterface zur Anzeige von Tags hinzugefuegt-
dwinter
parents:
diff changeset
11 public class JSONObjectComparator implements Comparator<JSONObject>{
f4ed2ed33e5b Restinterface zur Anzeige von Tags hinzugefuegt-
dwinter
parents:
diff changeset
12
f4ed2ed33e5b Restinterface zur Anzeige von Tags hinzugefuegt-
dwinter
parents:
diff changeset
13 private String attributeToSort;
f4ed2ed33e5b Restinterface zur Anzeige von Tags hinzugefuegt-
dwinter
parents:
diff changeset
14 public JSONObjectComparator(String attribute){
f4ed2ed33e5b Restinterface zur Anzeige von Tags hinzugefuegt-
dwinter
parents:
diff changeset
15 this.attributeToSort=attribute;
f4ed2ed33e5b Restinterface zur Anzeige von Tags hinzugefuegt-
dwinter
parents:
diff changeset
16 }
f4ed2ed33e5b Restinterface zur Anzeige von Tags hinzugefuegt-
dwinter
parents:
diff changeset
17
f4ed2ed33e5b Restinterface zur Anzeige von Tags hinzugefuegt-
dwinter
parents:
diff changeset
18 public int compare( JSONObject a, JSONObject b ) {
f4ed2ed33e5b Restinterface zur Anzeige von Tags hinzugefuegt-
dwinter
parents:
diff changeset
19 // je quadratischer, desto grösser
f4ed2ed33e5b Restinterface zur Anzeige von Tags hinzugefuegt-
dwinter
parents:
diff changeset
20 String sortA;
f4ed2ed33e5b Restinterface zur Anzeige von Tags hinzugefuegt-
dwinter
parents:
diff changeset
21 try {
f4ed2ed33e5b Restinterface zur Anzeige von Tags hinzugefuegt-
dwinter
parents:
diff changeset
22 sortA = a.getString(attributeToSort);
f4ed2ed33e5b Restinterface zur Anzeige von Tags hinzugefuegt-
dwinter
parents:
diff changeset
23 } catch (JSONException e) {
f4ed2ed33e5b Restinterface zur Anzeige von Tags hinzugefuegt-
dwinter
parents:
diff changeset
24 sortA ="";
f4ed2ed33e5b Restinterface zur Anzeige von Tags hinzugefuegt-
dwinter
parents:
diff changeset
25 }
f4ed2ed33e5b Restinterface zur Anzeige von Tags hinzugefuegt-
dwinter
parents:
diff changeset
26 String sortB;
f4ed2ed33e5b Restinterface zur Anzeige von Tags hinzugefuegt-
dwinter
parents:
diff changeset
27 try {
f4ed2ed33e5b Restinterface zur Anzeige von Tags hinzugefuegt-
dwinter
parents:
diff changeset
28 sortB = b.getString(attributeToSort);
f4ed2ed33e5b Restinterface zur Anzeige von Tags hinzugefuegt-
dwinter
parents:
diff changeset
29 } catch (JSONException e) {
f4ed2ed33e5b Restinterface zur Anzeige von Tags hinzugefuegt-
dwinter
parents:
diff changeset
30 sortB="";
f4ed2ed33e5b Restinterface zur Anzeige von Tags hinzugefuegt-
dwinter
parents:
diff changeset
31 }
f4ed2ed33e5b Restinterface zur Anzeige von Tags hinzugefuegt-
dwinter
parents:
diff changeset
32
f4ed2ed33e5b Restinterface zur Anzeige von Tags hinzugefuegt-
dwinter
parents:
diff changeset
33
f4ed2ed33e5b Restinterface zur Anzeige von Tags hinzugefuegt-
dwinter
parents:
diff changeset
34 return sortA.compareToIgnoreCase(sortB);
f4ed2ed33e5b Restinterface zur Anzeige von Tags hinzugefuegt-
dwinter
parents:
diff changeset
35 }
f4ed2ed33e5b Restinterface zur Anzeige von Tags hinzugefuegt-
dwinter
parents:
diff changeset
36
31
9f653697437e annotationbrowser
dwinter
parents: 28
diff changeset
37 /**
9f653697437e annotationbrowser
dwinter
parents: 28
diff changeset
38 * Sortiere array nach einem Parameter in den Annotationen
9f653697437e annotationbrowser
dwinter
parents: 28
diff changeset
39 * @param results
9f653697437e annotationbrowser
dwinter
parents: 28
diff changeset
40 * @return
9f653697437e annotationbrowser
dwinter
parents: 28
diff changeset
41 */
9f653697437e annotationbrowser
dwinter
parents: 28
diff changeset
42 public static void sortAnnotations(List<JSONObject> results,String attribute) {
9f653697437e annotationbrowser
dwinter
parents: 28
diff changeset
43 JSONObjectComparator comp = new JSONObjectComparator(attribute);
9f653697437e annotationbrowser
dwinter
parents: 28
diff changeset
44
9f653697437e annotationbrowser
dwinter
parents: 28
diff changeset
45
9f653697437e annotationbrowser
dwinter
parents: 28
diff changeset
46
9f653697437e annotationbrowser
dwinter
parents: 28
diff changeset
47 java.util.Collections.sort( results, comp);
9f653697437e annotationbrowser
dwinter
parents: 28
diff changeset
48
9f653697437e annotationbrowser
dwinter
parents: 28
diff changeset
49
9f653697437e annotationbrowser
dwinter
parents: 28
diff changeset
50
9f653697437e annotationbrowser
dwinter
parents: 28
diff changeset
51 }
28
f4ed2ed33e5b Restinterface zur Anzeige von Tags hinzugefuegt-
dwinter
parents:
diff changeset
52
f4ed2ed33e5b Restinterface zur Anzeige von Tags hinzugefuegt-
dwinter
parents:
diff changeset
53 }