JAL-3210 Barebones gradle/buildship/eclipse. See README
[jalview.git] / src / jalview / io / gff / SequenceOntologyFactory.java
index 2ba41da..90cae7a 100644 (file)
  */
 package jalview.io.gff;
 
-import jalview.bin.ApplicationSingletonProvider;
-import jalview.bin.ApplicationSingletonProvider.ApplicationSingletonI;
-
 /**
  * A factory class that returns a model of the Sequence Ontology. By default a
- * hard-coded subset is used (for the applet, or testing), or
- * setSequenceOntology() can be used to set full Ontology data.
+ * hard-coded subset is used (for the applet, or testing), or setInstance() can
+ * be used to set full Ontology data.
  * 
  * @author gmcarstairs
  *
  */
-public class SequenceOntologyFactory implements ApplicationSingletonI
+public class SequenceOntologyFactory
 {
-  /**
-   * Answers an instance of this class for the current application context. Note
-   * that this supports running two JS 'applets' on the same page, one with the
-   * full Sequence Ontology (USE_FULL_SO = true) and one with a hard-coded
-   * subset (USE_FULL_SO = false). If this is overkill, could change this method
-   * to just return a common static instance.
-   * 
-   * @return
-   */
-  private static synchronized SequenceOntologyFactory getInstance()
-  {
-    return (SequenceOntologyFactory) ApplicationSingletonProvider
-            .getInstance(SequenceOntologyFactory.class);
-  }
-
-  /**
-   * Answers the configured model of the Sequence Ontology.
-   * 
-   * @return
-   */
-  public static synchronized SequenceOntologyI getSequenceOntology()
-  {
-    SequenceOntologyFactory f = getInstance();
-    return (f.sequenceOntology == null
-            ? f.sequenceOntology = new SequenceOntologyLite()
-            : f.sequenceOntology);
-  }
+  private static SequenceOntologyI instance;
 
-  /**
-   * For testng only
-   * 
-   * @param so
-   */
-  public static void setSequenceOntology(SequenceOntologyI so)
+  public static synchronized SequenceOntologyI getInstance()
   {
-    getInstance().sequenceOntology = so;
+    if (instance == null)
+    {
+      instance = new SequenceOntologyLite();
+    }
+    return instance;
   }
 
-  private SequenceOntologyI sequenceOntology;
-
-  private SequenceOntologyFactory()
+  public static void setInstance(SequenceOntologyI so)
   {
-    // private singleton
+    instance = so;
   }
-
 }