Merge branch 'develop' into features/JAL-1705_ensembl
[jalview.git] / src / jalview / json / binding / biojson / v1 / SequenceFeaturesPojo.java
diff --git a/src/jalview/json/binding/biojson/v1/SequenceFeaturesPojo.java b/src/jalview/json/binding/biojson/v1/SequenceFeaturesPojo.java
new file mode 100644 (file)
index 0000000..893d683
--- /dev/null
@@ -0,0 +1,183 @@
+/*
+ * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$)
+ * Copyright (C) $$Year-Rel$$ The Jalview Authors
+ * 
+ * This file is part of Jalview.
+ * 
+ * Jalview is free software: you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License 
+ * as published by the Free Software Foundation, either version 3
+ * of the License, or (at your option) any later version.
+ *  
+ * Jalview is distributed in the hope that it will be useful, but 
+ * WITHOUT ANY WARRANTY; without even the implied warranty 
+ * of MERCHANTABILITY or FITNESS FOR A PARTICULAR 
+ * PURPOSE.  See the GNU General Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public License
+ * along with Jalview.  If not, see <http://www.gnu.org/licenses/>.
+ * The Jalview Authors are detailed in the 'AUTHORS' file.
+ */
+package jalview.json.binding.biojson.v1;
+
+import java.util.Map;
+import java.util.Vector;
+
+import com.github.reinert.jjschema.Attributes;
+
+public class SequenceFeaturesPojo
+{
+  @Attributes(
+    required = true,
+    description = "Start residue position for the sequence feature")
+  private int xStart;
+
+  @Attributes(
+    required = true,
+    description = "End residue position for the sequence feature")
+  private int xEnd;
+
+  @Attributes(
+    required = true,
+    minItems = 1,
+    maxItems = 2147483647,
+    description = "Reference to the sequence in the alignment<br> (more like a foreign key)")
+  private String sequenceRef;
+
+  @Attributes(
+    required = true,
+    description = "The name or type of the SequenceFeature")
+  private String type;
+
+  @Attributes(required = false, description = "Score")
+  private Float score;
+
+  @Attributes(required = false, description = "Description for the feature")
+  private String description;
+
+  @Attributes(
+    required = false,
+    description = "Additional metadata for the feature")
+  private Map<String, Object> otherDetails;
+
+  @Attributes(required = false, description = "Fill colour")
+  private String fillColor;
+
+  @Attributes(required = true, description = "Feature group")
+  private String featureGroup;
+
+  @Attributes(
+    required = false,
+    description = "URL links associated to the feature")
+  private Vector<String> links;
+
+  public SequenceFeaturesPojo()
+  {
+  }
+
+  public SequenceFeaturesPojo(String sequenceRef)
+  {
+    this.sequenceRef = sequenceRef;
+  }
+
+  public String getFillColor()
+  {
+    return "#" + fillColor;
+  }
+
+  public void setFillColor(String fillColor)
+  {
+    this.fillColor = fillColor;
+  }
+
+  public int getXstart()
+  {
+    return xStart;
+  }
+
+  public void setXstart(int xStart)
+  {
+    this.xStart = xStart;
+  }
+
+  public int getXend()
+  {
+    return xEnd;
+  }
+
+  public void setXend(int xend)
+  {
+    this.xEnd = xend;
+  }
+
+  public String getType()
+  {
+    return type;
+  }
+
+  public void setType(String type)
+  {
+    this.type = type;
+  }
+
+  public Float getScore()
+  {
+    return score;
+  }
+
+  public void setScore(Float score)
+  {
+    this.score = score;
+  }
+
+  public String getDescription()
+  {
+    return description;
+  }
+
+  public void setDescription(String description)
+  {
+    this.description = description;
+  }
+
+  public Map<String, Object> getOtherDetails()
+  {
+    return otherDetails;
+  }
+
+  public void setOtherDetails(Map<String, Object> otherDetails)
+  {
+    this.otherDetails = otherDetails;
+  }
+
+  public Vector<String> getLinks()
+  {
+    return links;
+  }
+
+  public void setLinks(Vector<String> links)
+  {
+    this.links = links;
+  }
+
+  public String getFeatureGroup()
+  {
+    return featureGroup;
+  }
+
+  public void setFeatureGroup(String featureGroup)
+  {
+    this.featureGroup = featureGroup;
+  }
+
+  public String getSequenceRef()
+  {
+    return sequenceRef;
+  }
+
+  public void setSequenceRef(String sequenceRef)
+  {
+    this.sequenceRef = sequenceRef;
+  }
+
+}