*/
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;
}
-
}