-public class Sequence implements SequenceI {\r
- protected String name;\r
- protected String sequence;\r
- protected String description;\r
- protected int start;\r
- protected int end;\r
- protected String displayId;\r
- protected Color color = Color.white;\r
- String pdbId;\r
- public Vector sequenceFeatures = new Vector();\r
-\r
- public Sequence(String name, String sequence, int start, int end) {\r
- this.name = name;\r
- this.sequence = sequence;\r
- this.start = start;\r
- this.end = end;\r
+/**\r
+ * DOCUMENT ME!\r
+ *\r
+ * @author $author$\r
+ * @version $Revision$\r
+ */\r
+public class Sequence implements SequenceI\r
+{\r
+ SequenceI datasetSequence;\r
+ String name;\r
+ String sequence;\r
+ String description;\r
+ int start;\r
+ int end;\r
+ Color color = Color.white;\r
+ Vector pdbIds;\r
+ String vamsasId;\r
+ Vector dbrefs;\r
+\r
+\r
+ /** DOCUMENT ME!! */\r
+ public Vector sequenceFeatures;\r
+\r
+ /**\r
+ * Creates a new Sequence object.\r
+ *\r
+ * @param name DOCUMENT ME!\r
+ * @param sequence DOCUMENT ME!\r
+ * @param start DOCUMENT ME!\r
+ * @param end DOCUMENT ME!\r
+ */\r
+ public Sequence(String name, String sequence, int start, int end)\r
+ {\r
+ this.name = name;\r
+ this.sequence = sequence;\r
+ this.start = start;\r
+ this.end = end;\r
+\r
+ parseId();\r
+\r
+ checkValidRange();\r
+ }\r
+\r
+ static com.stevesoft.pat.Regex limitrx = new com.stevesoft.pat.Regex(\r
+ "[/][0-9]{1,}[-][0-9]{1,}$");\r
+ static com.stevesoft.pat.Regex endrx = new com.stevesoft.pat.Regex(\r
+ "[0-9]{1,}$");\r
+\r
+ void parseId()\r
+ {\r
+ // Does sequence have the /start-end signiature?\r
+ if(limitrx.search(name))\r
+ {\r
+ name = limitrx.left();\r
+ endrx.search(limitrx.stringMatched());\r
+ setStart( Integer.parseInt( limitrx.stringMatched().substring(1,endrx.matchedFrom()-1 )));\r
+ setEnd( Integer.parseInt( endrx.stringMatched() ));\r
+ }\r
+ }\r
+\r
+ void checkValidRange()\r
+ {\r
+ if (end < 1)\r
+ {\r
+ int endRes = 0;\r
+ char ch;\r
+ for (int j = 0; j < sequence.length(); j++)\r
+ {\r
+ ch = sequence.charAt(j);\r
+ if (!jalview.util.Comparison.isGap( (ch)))\r
+ {\r
+ endRes++;\r
+ }\r
+ }\r
+ if (endRes > 0)\r
+ {\r
+ endRes += start - 1;\r
+ }\r
+\r
+ this.end = endRes;\r
+ }\r