*/
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;
* 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);
+ return mockFetcher != null ? mockFetcher
+ : (SequenceFetcher) ApplicationSingletonProvider
+ .getInstance(SequenceFetcher.class);
}
/**
+ * Set the instance object to use (intended for unit testing with mock
+ * objects).
*
- * This public constructor is only is for use by testng to anonymously
- * subclass SequenceFetcher.
- *
+ * Be sure to reset to null in the tearDown method of any tests!
*
+ * @param sf
*/
- public SequenceFetcher()
+ public static void setSequenceFetcher(SequenceFetcher sf)
{
- addAllDatabases();
+ mockFetcher = sf;
}
/**
- * Set the instance object to use (intended for unit testing with mock
- * objects).
*
- * Be sure to reset to null in the tearDown method of any tests!
+ * This public constructor is only is for use by testng to anonymously
+ * subclass SequenceFetcher.
+ *
*
- * @param sf
*/
- public static void setSequenceFetcher(SequenceFetcher sf)
+ public SequenceFetcher()
{
- Instance.getInstance().sequenceFetcher = sf;
+ addAllDatabases();
}
public void addAllDatabases()