*/
-package org.biojava.dasobert.dasregistry ;
+package org.biojava.dasobert.dasregistry;
-import java.util.Comparator ;
-import java.util.Map ;
-import java.util.HashMap ;
+import java.util.*;
-
-/** a comparator to sort DasSources
+/** a comparator to sort DasSources
* @author Andreas Prlic, Thomas Down
*/
public abstract class DasSourceComparator
implements Comparator
-{
-
- private final String name ;
- private static final Map COMPS_BY_NAME;
-
-
- public DasSourceComparator(String str) {
- //System.out.println("new dasSourceComparator " + str);
- name = str ;
+{
+
+ private final String name;
+ private static final Map COMPS_BY_NAME;
+
+ public DasSourceComparator(String str)
+ {
+ //System.out.println("new dasSourceComparator " + str);
+ name = str;
+ }
+
+ public static final Comparator BY_ID = new DasSourceComparator("id")
+ {
+ protected Comparable getField(DasSource ds)
+ {
+ return ds.getId();
}
-
- public static final Comparator BY_ID = new DasSourceComparator("id") {
- protected Comparable getField(DasSource ds) {
- return ds.getId();
- }
- };
-
- public static final Comparator BY_NICKNAME = new DasSourceComparator("nickname") {
- protected Comparable getField(DasSource ds) {
- return ds.getNickname();
- }
- };
- public static final Comparator BY_REGISTER_DATE = new DasSourceComparator("registerdate") {
- protected Comparable getField(DasSource ds) {
- return ds.getRegisterDate();
- }
- };
- public static final Comparator BY_LEASE_DATE = new DasSourceComparator("leasedate") {
- protected Comparable getField(DasSource ds) {
- return ds.getLeaseDate();
- }
- };
- public static final Comparator BY_URL = new DasSourceComparator("url") {
- protected Comparable getField(DasSource ds) {
- return ds.getUrl();
- }
- };
- public static final Comparator BY_ADMIN_EMAIL = new DasSourceComparator("adminemail") {
- protected Comparable getField(DasSource ds) {
- return ds.getAdminemail();
- }
- };
- public static final Comparator BY_DESCRIPTION = new DasSourceComparator("description") {
- protected Comparable getField(DasSource ds) {
- return ds.getDescription();
- }
- };
- public static final Comparator BY_CAPABILITIES = new DasSourceComparator("capabilities") {
- protected Comparable getField(DasSource ds) {
- String[] caps = ds.getCapabilities();
- return caps.length == 0 ? "" : caps[0];
- }
- };
- public static final Comparator BY_COORDINATE_SYSTEM = new DasSourceComparator("coordinateSystem") {
- protected Comparable getField(DasSource ds) {
- DasCoordinateSystem[] dcss = ds.getCoordinateSystem();
- return dcss.length == 0 ? "" : dcss[0].toString();
- }
- };
-
- static {
- COMPS_BY_NAME = new HashMap();
- COMPS_BY_NAME.put(BY_ID.toString(), BY_ID);
- COMPS_BY_NAME.put(BY_NICKNAME.toString(), BY_NICKNAME);
- COMPS_BY_NAME.put(BY_REGISTER_DATE.toString(), BY_REGISTER_DATE);
- COMPS_BY_NAME.put(BY_LEASE_DATE.toString(), BY_LEASE_DATE);
- COMPS_BY_NAME.put(BY_URL.toString(), BY_URL);
- COMPS_BY_NAME.put(BY_ADMIN_EMAIL.toString(), BY_ADMIN_EMAIL);
- COMPS_BY_NAME.put(BY_DESCRIPTION.toString(), BY_DESCRIPTION);
- COMPS_BY_NAME.put(BY_CAPABILITIES.toString(), BY_CAPABILITIES);
- COMPS_BY_NAME.put(BY_COORDINATE_SYSTEM.toString(), BY_COORDINATE_SYSTEM);
+ };
+
+ public static final Comparator BY_NICKNAME = new DasSourceComparator(
+ "nickname")
+ {
+ protected Comparable getField(DasSource ds)
+ {
+ return ds.getNickname();
}
-
-
-
- public static Comparator fromString(String name) {
- if (COMPS_BY_NAME.containsKey(name)) {
- return (Comparator) COMPS_BY_NAME.get(name);
- } else {
- throw new IllegalArgumentException("Can't compare by key " + name);
- }
+ };
+ public static final Comparator BY_REGISTER_DATE = new DasSourceComparator(
+ "registerdate")
+ {
+ protected Comparable getField(DasSource ds)
+ {
+ return ds.getRegisterDate();
}
-
- protected abstract Comparable getField(DasSource ds);
-
- /** compare two DasSource objects */
- public int compare( Object a, Object b) {
-
- DasSource x = (DasSource) a ;
- DasSource y = (DasSource) b ;
- return getField(x).compareTo(getField(y));
+ };
+ public static final Comparator BY_LEASE_DATE = new DasSourceComparator(
+ "leasedate")
+ {
+ protected Comparable getField(DasSource ds)
+ {
+ return ds.getLeaseDate();
}
-
- public String toString() {
- return name;
+ };
+ public static final Comparator BY_URL = new DasSourceComparator("url")
+ {
+ protected Comparable getField(DasSource ds)
+ {
+ return ds.getUrl();
}
+ };
+ public static final Comparator BY_ADMIN_EMAIL = new DasSourceComparator(
+ "adminemail")
+ {
+ protected Comparable getField(DasSource ds)
+ {
+ return ds.getAdminemail();
+ }
+ };
+ public static final Comparator BY_DESCRIPTION = new DasSourceComparator(
+ "description")
+ {
+ protected Comparable getField(DasSource ds)
+ {
+ return ds.getDescription();
+ }
+ };
+ public static final Comparator BY_CAPABILITIES = new DasSourceComparator(
+ "capabilities")
+ {
+ protected Comparable getField(DasSource ds)
+ {
+ String[] caps = ds.getCapabilities();
+ return caps.length == 0 ? "" : caps[0];
+ }
+ };
+ public static final Comparator BY_COORDINATE_SYSTEM = new DasSourceComparator(
+ "coordinateSystem")
+ {
+ protected Comparable getField(DasSource ds)
+ {
+ DasCoordinateSystem[] dcss = ds.getCoordinateSystem();
+ return dcss.length == 0 ? "" : dcss[0].toString();
+ }
+ };
+
+ static
+ {
+ COMPS_BY_NAME = new HashMap();
+ COMPS_BY_NAME.put(BY_ID.toString(), BY_ID);
+ COMPS_BY_NAME.put(BY_NICKNAME.toString(), BY_NICKNAME);
+ COMPS_BY_NAME.put(BY_REGISTER_DATE.toString(), BY_REGISTER_DATE);
+ COMPS_BY_NAME.put(BY_LEASE_DATE.toString(), BY_LEASE_DATE);
+ COMPS_BY_NAME.put(BY_URL.toString(), BY_URL);
+ COMPS_BY_NAME.put(BY_ADMIN_EMAIL.toString(), BY_ADMIN_EMAIL);
+ COMPS_BY_NAME.put(BY_DESCRIPTION.toString(), BY_DESCRIPTION);
+ COMPS_BY_NAME.put(BY_CAPABILITIES.toString(), BY_CAPABILITIES);
+ COMPS_BY_NAME.put(BY_COORDINATE_SYSTEM.toString(), BY_COORDINATE_SYSTEM);
+ }
+
+ public static Comparator fromString(String name)
+ {
+ if (COMPS_BY_NAME.containsKey(name))
+ {
+ return (Comparator) COMPS_BY_NAME.get(name);
+ }
+ else
+ {
+ throw new IllegalArgumentException("Can't compare by key " + name);
+ }
+ }
+ protected abstract Comparable getField(DasSource ds);
-}
+ /** compare two DasSource objects */
+ public int compare(Object a, Object b)
+ {
+ DasSource x = (DasSource) a;
+ DasSource y = (DasSource) b;
+ return getField(x).compareTo(getField(y));
+ }
+ public String toString()
+ {
+ return name;
+ }
+
+}