Introduced DbRefEntry to DasSourceCoordinateSystem check to only call sources for...
[jalview.git] / src / jalview / util / DBRefUtils.java
index 86ab201..2f844da 100755 (executable)
@@ -1,13 +1,20 @@
 package jalview.util;
 
-import java.util.Vector;
-import java.util.Hashtable;
+import java.util.*;
+
+import jalview.datamodel.*;
 
 public class DBRefUtils
 {
     /**
      * Utilities for handling DBRef objects and their collections.
      */
+    /**
+     *
+     * @param dbrefs Vector of DBRef objects to search
+     * @param sources String[] array of source DBRef IDs to retrieve
+     * @return Vector
+     */
     public static Vector selectRefs(java.util.Vector dbrefs, String[] sources) {
       if (dbrefs==null)
         return null;
@@ -29,4 +36,30 @@ public class DBRefUtils
       // there are probable  memory leaks in the hashtable!
       return null;
     }
+
+  /**
+   * isDasCoordinateSystem
+   *
+   * @param string String
+   * @param dBRefEntry DBRefEntry
+   * @return boolean true if Source DBRefEntry is compatible with DAS CoordinateSystem name
+   */
+  public static Hashtable DasCoordinateSystemsLookup = null;
+  public static boolean isDasCoordinateSystem(String string,
+                                              DBRefEntry dBRefEntry)
+  {
+    if (DasCoordinateSystemsLookup==null)
+    { // Initialise
+      DasCoordinateSystemsLookup = new Hashtable();
+      DasCoordinateSystemsLookup.put("pdbresnum",
+                                     jalview.datamodel.DBRefSource.PDB);
+      DasCoordinateSystemsLookup.put("uniprot",
+                                     jalview.datamodel.DBRefSource.UNIPROT);
+    }
+
+    String coordsys = (String) DasCoordinateSystemsLookup.get(string.toLowerCase());
+    if (coordsys!=null)
+      return coordsys.equals(dBRefEntry.getSource());
+    return false;
   }
+}