JAL-3210 Improvements to eclipse detection. New src tree and SwingJS updated from...
[jalview.git] / src / jalview / analysis / scoremodels / ScoreModels.java
index ebc9a26..8700ec0 100644 (file)
@@ -22,6 +22,8 @@ package jalview.analysis.scoremodels;
 
 import jalview.api.AlignmentViewPanel;
 import jalview.api.analysis.ScoreModelI;
+import jalview.bin.ApplicationSingletonProvider;
+import jalview.bin.ApplicationSingletonProvider.ApplicationSingletonI;
 import jalview.io.DataSourceType;
 import jalview.io.FileParse;
 import jalview.io.ScoreMatrixFile;
@@ -33,18 +35,8 @@ import java.util.Map;
 /**
  * A class that can register and serve instances of ScoreModelI
  */
-public class ScoreModels
+public class ScoreModels implements ApplicationSingletonI
 {
-  private final ScoreMatrix BLOSUM62;
-
-  private final ScoreMatrix PAM250;
-
-  private final ScoreMatrix DNA;
-
-  private static ScoreModels instance;
-
-  private Map<String, ScoreModelI> models;
-
   /**
    * Answers the singleton instance of this class, with lazy initialisation
    * (built-in score models are loaded on the first call to this method)
@@ -53,11 +45,7 @@ public class ScoreModels
    */
   public static ScoreModels getInstance()
   {
-    if (instance == null)
-    {
-      instance = new ScoreModels();
-    }
-    return instance;
+    return (ScoreModels) ApplicationSingletonProvider.getInstance(ScoreModels.class);
   }
 
   /**
@@ -84,6 +72,14 @@ public class ScoreModels
     registerScoreModel(new FeatureDistanceModel());
   }
 
+  private final ScoreMatrix BLOSUM62;
+
+  private final ScoreMatrix PAM250;
+
+  private final ScoreMatrix DNA;
+
+  private Map<String, ScoreModelI> models;
+
   /**
    * Tries to load a score matrix from the given resource file, and if
    * successful, registers it.
@@ -153,7 +149,7 @@ public class ScoreModels
    */
   public void reset()
   {
-    instance = new ScoreModels();
+    ApplicationSingletonProvider.removeInstance(this.getClass());
   }
 
   /**