from develep
[jalview.git] / src / jalview / ws / SequenceFetcher.java
index 2b3b1ee..a16a66c 100644 (file)
@@ -20,7 +20,8 @@
  */
 package jalview.ws;
 
-import jalview.bin.Instance;
+import jalview.bin.ApplicationSingletonProvider;
+import jalview.bin.ApplicationSingletonProvider.ApplicationSingletonI;
 import jalview.datamodel.DBRefSource;
 import jalview.ext.ensembl.EnsemblGene;
 import jalview.ws.dbsources.Uniprot;
@@ -39,33 +40,24 @@ import java.util.List;
  * instantiated by reflection and queried for their DbRefSource and version
  * association.
  */
-public class SequenceFetcher extends ASequenceFetcher
+public class SequenceFetcher extends ASequenceFetcher implements ApplicationSingletonI
 {
+  /*
+   * set a mock fetcher here for testing only - reset to null afterwards
+   */
+  private static SequenceFetcher mockFetcher;
 
   /**
    * Returns a new SequenceFetcher singleton, or a mock object if one has been
-   * set. Used by CrossRef and java.gui.SequenceFetcher.
+   * set.
    * 
    * @return
    */
   public static SequenceFetcher getInstance()
   {
-    Instance j = Instance.getInstance();
-    return (j.sequenceFetcher == null
-            ? j.sequenceFetcher = new SequenceFetcher()
-            : j.sequenceFetcher);
-  }
-
-  /**
-   * 
-   * This public constructor is only is for use by testng to anonymously
-   * subclass SequenceFetcher.
-   * 
-   * 
-   */
-  public SequenceFetcher()
-  {
-    addAllDatabases();
+    return mockFetcher != null ? mockFetcher
+            : (SequenceFetcher) ApplicationSingletonProvider
+                    .getInstance(SequenceFetcher.class);
   }
 
   /**
@@ -78,10 +70,17 @@ public class SequenceFetcher extends ASequenceFetcher
    */
   public static void setSequenceFetcher(SequenceFetcher sf)
   {
-    Instance.getInstance().sequenceFetcher = sf;
+    mockFetcher = sf;
   }
 
-  public void addAllDatabases()
+  /**
+   * 
+   * This public constructor is only is for use by testng to anonymously
+   * subclass SequenceFetcher.
+   * 
+   * 
+   */
+  public SequenceFetcher()
   {
     addDBRefSourceImpl(EnsemblGene.class); // includes EnsemblGenomes.class
     addDBRefSourceImpl(Uniprot.class); // includes UniprotName.class