JAL-1896 revised implementation to construct a ColourSchemeI instance after creating...
[jalview.git] / src / jalview / json / binding / biojson / v1 / ColourSchemeMapper.java
index de4ba8d..aeab34c 100644 (file)
@@ -40,42 +40,60 @@ import jalview.schemes.ZappoColourScheme;
 
 public class ColourSchemeMapper
 {
+  private static ColourSchemeI csZappo, csTaylor, csNucleotide, csPurine,
+          csHelix, csTurn, csStrand, csBuried, csHydro,
+          csRNAInteractionType, csPID, csBlosum62 = null;
+  static
+  {
+    csZappo = new ZappoColourScheme();
+    csTaylor = new TaylorColourScheme();
+    csNucleotide = new NucleotideColourScheme();
+    csPurine = new PurinePyrimidineColourScheme();
+    csHelix = new HelixColourScheme();
+    csTurn = new TurnColourScheme();
+    csStrand = new StrandColourScheme();
+    csBuried = new BuriedColourScheme();
+    csHydro = new HydrophobicColourScheme();
+    csRNAInteractionType = new RNAInteractionColourScheme();
+    csPID = new PIDColourScheme();
+    csBlosum62 = new Blosum62ColourScheme();
+  }
   public static ColourSchemeI getJalviewColourScheme(
           String colourSchemeName, AnnotatedCollectionI annotCol)
   {
     switch (colourSchemeName.toUpperCase())
     {
     case "ZAPPO":
-      return new ZappoColourScheme();
+      return csZappo;
     case "TAYLOR":
-      return new TaylorColourScheme();
+      return csTaylor;
     case "NUCLEOTIDE":
-      return new NucleotideColourScheme();
+      return csNucleotide;
     case "PURINE":
     case "PURINE/PYRIMIDINE":
-      return new PurinePyrimidineColourScheme();
+      return csPurine;
     case "HELIX":
     case "HELIX PROPENSITY":
-      return new HelixColourScheme();
+      return csHelix;
     case "TURN":
     case "TURN PROPENSITY":
-      return new TurnColourScheme();
+      return csTurn;
     case "STRAND":
     case "STRAND PROPENSITY":
-      return new StrandColourScheme();
+      return csStrand;
     case "BURIED":
     case "BURIED INDEX":
-      return new BuriedColourScheme();
+      return csBuried;
     case "HYDRO":
     case "HYDROPHOBIC":
-      return new HydrophobicColourScheme();
+      return csHydro;
     case "RNA INTERACTION TYPE":
-      return new RNAInteractionColourScheme();
+      return csRNAInteractionType;
     case "PID":
     case "% IDENTITY":
-      return new PIDColourScheme();
+      return csPID;
     case "BLOSUM62":
-      return new Blosum62ColourScheme();
+      return csBlosum62;
     case "T-COFFEE SCORES":
       return (annotCol != null) ? new TCoffeeColourScheme(annotCol) : null;
     case "RNA HELICES":