JAL-1831 update all maxItems annotation to the max value for a 32-bit signed binary...
[jalview.git] / src / jalview / json / binding / biojson / v1 / AlignmentPojo.java
1 package jalview.json.binding.biojson.v1;
2
3
4 import java.util.ArrayList;
5 import java.util.HashMap;
6 import java.util.List;
7 import java.util.Map;
8
9 import com.github.reinert.jjschema.Attributes;
10
11 @Attributes(title="BioJSON", description="A specification for the representation and exchange of bioinformatics data")
12 public class AlignmentPojo
13 {
14   @Attributes(required = true, description = "Serial version identifier for <b>BioJSON</b> schema")
15   private String svid = "1.0";
16
17   @Attributes(
18     required = true,
19     minItems = 1,
20     maxItems = 2147483647,
21     description = "A sequence group is a bracket of alignment residues spanning <br>across multiple columns and rows. These can be treated as a <br>sub-alignments.")
22   private List<SequencePojo> seqs = new ArrayList<SequencePojo>();
23
24   @Attributes(
25     required = false,
26     minItems = 0,
27     maxItems = 2147483647,
28     exclusiveMaximum = true,
29     description = "Alignment annotations stores symbols and graphs usually rendered </br>below the alignment.")
30   private List<AlignmentAnnotationPojo> alignAnnotation = new ArrayList<AlignmentAnnotationPojo>();
31
32   @Attributes(
33     required = false,
34     minItems = 0,
35     maxItems = 2147483647,
36     description = "A sequence group is a bracket of alignment residues spanning <br>across multiple columns and rows. These can be treated as a <br>sub-alignments.")
37   private List<SequenceGrpPojo> seqGroups = new ArrayList<SequenceGrpPojo>();
38
39   @Attributes(
40     required = false,
41     minItems = 0,
42     maxItems = 2147483647,
43     description = "Sequence features are associated with sequences rather than <br>alignments. A sequence feature can span across multiple <br>sequences in an alignment. They indicate features generated <br>by the same analysis process or retrieved from the same database <br>(such as Uniprot features).")
44   private List<SequenceFeaturesPojo> seqFeatures = new ArrayList<SequenceFeaturesPojo>();
45
46   @Attributes(required = false, enums = { "None", "Custom", "Clustal",
47       "Zappo", "Taylor", "Nucleotide", "Pyrimidine", "Purine", "Turn",
48       "Strand", "Buried", "Hydro" })
49   private String colourScheme;
50   
51   @Attributes(required = true, maxItems = 1, description = "This is an array of key=value pairs for storing custom application <br>specific settings")
52   Map<String, Object> appSettings = new HashMap<String, Object>();
53
54   public AlignmentPojo()
55   {
56   }
57
58   public List<SequencePojo> getSeqs()
59   {
60     return seqs;
61   }
62
63   public void setSeqs(ArrayList<SequencePojo> seqs)
64   {
65     this.seqs = seqs;
66   }
67
68   public Map<String, Object> getAppSettings()
69   {
70     return appSettings;
71   }
72
73   public void setAppSettings(Map<String, Object> appSettings)
74   {
75     this.appSettings = appSettings;
76   }
77
78   public List<AlignmentAnnotationPojo> getAlignAnnotation()
79   {
80     return alignAnnotation;
81   }
82
83   public void setAlignAnnotation(
84           List<AlignmentAnnotationPojo> alignAnnotation)
85   {
86     this.alignAnnotation = alignAnnotation;
87   }
88
89   public List<SequenceGrpPojo> getSeqGroups()
90   {
91     return seqGroups;
92   }
93
94   public void setSeqGroups(List<SequenceGrpPojo> seqGroups)
95   {
96     this.seqGroups = seqGroups;
97   }
98
99   public List<SequenceFeaturesPojo> getSeqFeatures()
100   {
101     return seqFeatures;
102   }
103
104   public void setSeqFeatures(List<SequenceFeaturesPojo> seqFeatures)
105   {
106     this.seqFeatures = seqFeatures;
107   }
108
109   public String getSvid()
110   {
111     return svid;
112   }
113
114   public void setGlobalColorScheme(String globalColorScheme)
115   {
116     this.appSettings.put("globalColorScheme", globalColorScheme);
117   }
118
119   public String getColourScheme()
120   {
121     return colourScheme;
122   }
123
124   public void setColourScheme(String colourScheme)
125   {
126     this.colourScheme = colourScheme;
127   }
128
129 }