X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fanalysis%2Fscoremodels%2FScoreModels.java;h=fd579dcf9aa6c379e22e0cafe164d6c2f21911ea;hb=87256ba36fb105a1115067ffe2563412e9281d2d;hp=7262fb81925396f1ee4ce0dd5198a68f6de8ff53;hpb=f4766a7bbcfae845fc95923b01fa14ff83d589ff;p=jalview.git diff --git a/src/jalview/analysis/scoremodels/ScoreModels.java b/src/jalview/analysis/scoremodels/ScoreModels.java index 7262fb8..fd579dc 100644 --- a/src/jalview/analysis/scoremodels/ScoreModels.java +++ b/src/jalview/analysis/scoremodels/ScoreModels.java @@ -25,6 +25,7 @@ import jalview.api.analysis.ScoreModelI; import jalview.io.DataSourceType; import jalview.io.FileParse; import jalview.io.ScoreMatrixFile; +import jalview.util.Platform; import java.io.IOException; import java.util.LinkedHashMap; @@ -41,15 +42,47 @@ public class ScoreModels private final ScoreMatrix DNA; - private static ScoreModels instance = new ScoreModels(); - - private Map models; + private static ScoreModels instance; + /** + * Answers the singleton instance of this class, with lazy initialisation + * (built-in score models are loaded on the first call to this method) + * + * @return + */ public static ScoreModels getInstance() { - return instance; + ScoreModels m = instance; + @SuppressWarnings("unused") + ThreadGroup g = null; + if (Platform.isJS()) + { + g = Thread.currentThread().getThreadGroup(); + /** + * @j2sNative m = g._jalviewScoreModelsInstance; + * + */ + } + if (m == null) + { + m = new ScoreModels(); + if (Platform.isJS()) + { + /** + * @j2sNative g._jalviewScoreModelsInstance = m; + * + */ + } + else + { + instance = m; + } + } + return m; } + private Map models; + /** * Private constructor to enforce use of singleton. Registers Jalview's * "built-in" score models: @@ -66,11 +99,11 @@ public class ScoreModels /* * using LinkedHashMap keeps models ordered as added */ - models = new LinkedHashMap(); + models = new LinkedHashMap<>(); BLOSUM62 = loadScoreMatrix("scoreModel/blosum62.scm"); PAM250 = loadScoreMatrix("scoreModel/pam250.scm"); - registerScoreModel(new PIDModel()); DNA = loadScoreMatrix("scoreModel/dna.scm"); + registerScoreModel(new PIDModel()); registerScoreModel(new FeatureDistanceModel()); } @@ -139,6 +172,14 @@ public class ScoreModels } /** + * Resets to just the built-in score models + */ + public void reset() + { + instance = new ScoreModels(); + } + + /** * Returns the default peptide or nucleotide score model, currently BLOSUM62 * or DNA *