JAL-1641 updated json schema to make it more generic in order to accomodate more...
[jalview.git] / src / jalview / json / binding / v1 / AlignmentPojo.java
1 package jalview.json.binding.v1;
2
3 import jalview.schemes.Blosum62ColourScheme;
4 import jalview.schemes.BuriedColourScheme;
5 import jalview.schemes.ColourSchemeI;
6 import jalview.schemes.HelixColourScheme;
7 import jalview.schemes.HydrophobicColourScheme;
8 import jalview.schemes.NucleotideColourScheme;
9 import jalview.schemes.PIDColourScheme;
10 import jalview.schemes.PurinePyrimidineColourScheme;
11 import jalview.schemes.RNAInteractionColourScheme;
12 import jalview.schemes.StrandColourScheme;
13 import jalview.schemes.TaylorColourScheme;
14 import jalview.schemes.TurnColourScheme;
15 import jalview.schemes.ZappoColourScheme;
16
17 import java.util.ArrayList;
18 import java.util.HashMap;
19 import java.util.List;
20
21 public class AlignmentPojo
22 {
23   private String svid = "1.0";
24
25   private List<SequencePojo> seqs = new ArrayList<SequencePojo>();
26
27   private List<AlignmentAnnotationPojo> alignAnnotation = new ArrayList<AlignmentAnnotationPojo>();
28
29   private List<SequenceGrpPojo> seqGroups = new ArrayList<SequenceGrpPojo>();
30
31   private List<SequenceFeaturesPojo> seqFeatures = new ArrayList<SequenceFeaturesPojo>();
32
33   HashMap<String, String> appSettings = new HashMap<String, String>();
34
35   public AlignmentPojo()
36   {
37   }
38
39   public List<SequencePojo> getSeqs()
40   {
41     return seqs;
42   }
43
44   public void setSeqs(ArrayList<SequencePojo> seqs)
45   {
46     this.seqs = seqs;
47   }
48
49   public HashMap<String, String> getAppSettings()
50   {
51     return appSettings;
52   }
53
54   public void setAppSettings(HashMap<String, String> appSettings)
55   {
56     this.appSettings = appSettings;
57   }
58
59   public List<AlignmentAnnotationPojo> getAlignAnnotation()
60   {
61     return alignAnnotation;
62   }
63
64   public void setAlignAnnotation(
65           List<AlignmentAnnotationPojo> alignAnnotation)
66   {
67     this.alignAnnotation = alignAnnotation;
68   }
69
70   public List<SequenceGrpPojo> getSeqGroups()
71   {
72     return seqGroups;
73   }
74
75   public void setSeqGroups(List<SequenceGrpPojo> seqGroups)
76   {
77     this.seqGroups = seqGroups;
78   }
79
80   public List<SequenceFeaturesPojo> getSeqFeatures()
81   {
82     return seqFeatures;
83   }
84
85   public void setSeqFeatures(List<SequenceFeaturesPojo> seqFeatures)
86   {
87     this.seqFeatures = seqFeatures;
88   }
89
90   public String getSvid()
91   {
92     return svid;
93   }
94
95   public void setGlobalColorScheme(String globalColorScheme)
96   {
97     for (JalviewBioJsColorSchemeMapper cs : JalviewBioJsColorSchemeMapper
98             .values())
99     {
100       if (cs.getJalviewName().equals(globalColorScheme))
101       {
102         // this.globalColorScheme = cs.getBioJsName();
103         this.appSettings.put("globalColorScheme", cs.getBioJsName());
104         break;
105       }
106     }
107   }
108
109   public enum JalviewBioJsColorSchemeMapper
110   {
111     USER_DEFINED("User Defined", "user defined", null), NONE("None", "foo",
112             null), CLUSTAL("Clustal", "clustal", null), ZAPPO("Zappo",
113             "zappo", new ZappoColourScheme()), TAYLOR("Taylor", "taylor",
114             new TaylorColourScheme()), NUCLEOTIDE("Nucleotide",
115             "nucleotide", new NucleotideColourScheme()), PURINE_PYRIMIDINE(
116             "Purine/Pyrimidine", "purine",
117             new PurinePyrimidineColourScheme()), HELIX_PROPENCITY(
118             "Helix Propensity", "helix", new HelixColourScheme()), TURN_PROPENSITY(
119             "Turn Propensity", "turn", new TurnColourScheme()), STRAND_PROPENSITY(
120             "Strand Propensity", "strand", new StrandColourScheme()), BURIED_INDEX(
121             "Buried Index", "buried", new BuriedColourScheme()), HYDROPHOBIC(
122             "Hydrophobic", "hydro", new HydrophobicColourScheme()),
123
124     // The color types below are not yet supported by BioJs MSA viewer
125     T_COFFE_SCORES("T-Coffee Scores", "T-Coffee Scores", null), RNA_INT_TYPE(
126             "RNA Interaction type", "RNA Interaction type",
127             new RNAInteractionColourScheme()), BLOSUM62("Blosum62",
128             "Blosum62", new Blosum62ColourScheme()), RNA_HELICES(
129             "RNA Helices", "RNA Helices", null), PERCENTAGE_IDENTITY(
130             "% Identity", "pid", new PIDColourScheme());
131
132     private String jalviewName;
133
134     private String bioJsName;
135
136     private ColourSchemeI jvColourScheme;
137
138     private JalviewBioJsColorSchemeMapper(String jalviewName,
139             String bioJsName, ColourSchemeI jvColourScheme)
140     {
141       this.jalviewName = jalviewName;
142       this.bioJsName = bioJsName;
143       this.setJvColourScheme(jvColourScheme);
144     }
145
146     public String getJalviewName()
147     {
148       return jalviewName;
149     }
150
151     public String getBioJsName()
152     {
153       return bioJsName;
154     }
155
156     public ColourSchemeI getJvColourScheme()
157     {
158       return jvColourScheme;
159     }
160
161     public void setJvColourScheme(ColourSchemeI jvColourScheme)
162     {
163       this.jvColourScheme = jvColourScheme;
164     }
165
166   }
167
168 }