X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Forg%2Fbiojava%2Fdasobert%2Fdasregistry%2FDasSourceComparator.java;h=0d52fd980a4359da901f494d19596da1dd338aa9;hb=0c0991e85ba4c0536b366abe020eaf84ca6e29a4;hp=2f9db7643ee7f848894149a264a9210b4b039b38;hpb=7bc226b58110fa26d9dbd3f0c78095d06909ffc3;p=jalview.git diff --git a/src/org/biojava/dasobert/dasregistry/DasSourceComparator.java b/src/org/biojava/dasobert/dasregistry/DasSourceComparator.java index 2f9db76..0d52fd9 100755 --- a/src/org/biojava/dasobert/dasregistry/DasSourceComparator.java +++ b/src/org/biojava/dasobert/dasregistry/DasSourceComparator.java @@ -22,26 +22,28 @@ * */ - package org.biojava.dasobert.dasregistry; import java.util.*; -/** a comparator to sort DasSources +/** + * a comparator to sort DasSources + * * @author Andreas Prlic, Thomas Down */ - -public abstract class DasSourceComparator - implements Comparator +public abstract class DasSourceComparator implements Comparator { private final String name; + private static final Map COMPS_BY_NAME; + private static final int TWODAYS = 1000 * 60 * 60 * 24 * 2; + public DasSourceComparator(String str) { - //System.out.println("new dasSourceComparator " + str); + // System.out.println("new dasSourceComparator " + str); name = str; } @@ -54,29 +56,46 @@ public abstract class DasSourceComparator }; public static final Comparator BY_NICKNAME = new DasSourceComparator( - "nickname") + "nickname") { protected Comparable getField(DasSource ds) { return ds.getNickname(); } }; + + public static final Comparator BY_STATUS = new DasSourceComparator( + "status") + { + protected Comparable getField(DasSource ds) + { + + Date now = new Date(); + + if (ds.getLeaseDate().getTime() < (now.getTime() - TWODAYS)) + return new Integer(0); + return new Integer(1); + } + }; + public static final Comparator BY_REGISTER_DATE = new DasSourceComparator( - "registerdate") + "registerdate") { protected Comparable getField(DasSource ds) { return ds.getRegisterDate(); } }; + public static final Comparator BY_LEASE_DATE = new DasSourceComparator( - "leasedate") + "leasedate") { protected Comparable getField(DasSource ds) { return ds.getLeaseDate(); } }; + public static final Comparator BY_URL = new DasSourceComparator("url") { protected Comparable getField(DasSource ds) @@ -84,24 +103,27 @@ public abstract class DasSourceComparator return ds.getUrl(); } }; + public static final Comparator BY_ADMIN_EMAIL = new DasSourceComparator( - "adminemail") + "adminemail") { protected Comparable getField(DasSource ds) { return ds.getAdminemail(); } }; + public static final Comparator BY_DESCRIPTION = new DasSourceComparator( - "description") + "description") { protected Comparable getField(DasSource ds) { return ds.getDescription(); } }; + public static final Comparator BY_CAPABILITIES = new DasSourceComparator( - "capabilities") + "capabilities") { protected Comparable getField(DasSource ds) { @@ -109,8 +131,9 @@ public abstract class DasSourceComparator return caps.length == 0 ? "" : caps[0]; } }; + public static final Comparator BY_COORDINATE_SYSTEM = new DasSourceComparator( - "coordinateSystem") + "coordinateSystem") { protected Comparable getField(DasSource ds) { @@ -130,7 +153,10 @@ public abstract class DasSourceComparator 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); + COMPS_BY_NAME + .put(BY_COORDINATE_SYSTEM.toString(), BY_COORDINATE_SYSTEM); + COMPS_BY_NAME.put(BY_STATUS.toString(), BY_STATUS); + } public static Comparator fromString(String name)