{\r
SequenceI datasetSequence;\r
String name;\r
+ String shortName;\r
String sequence;\r
String description;\r
int start;\r
int end;\r
- String displayId;\r
Color color = Color.white;\r
- String pdbId;\r
+ Vector pdbIds;\r
String vamsasId;\r
Vector dbrefs;\r
\r
public Sequence(String name, String sequence, int start, int end)\r
{\r
this.name = name;\r
+ parseId();\r
+\r
this.sequence = sequence;\r
this.start = start;\r
this.end = end;\r
checkValidRange();\r
}\r
\r
+ void parseId()\r
+ {\r
+ // Read in any DB refs first\r
+ StringTokenizer st = new StringTokenizer(name, "|");\r
+ if(st.countTokens()<1)\r
+ {\r
+ shortName = name;\r
+ return;\r
+ }\r
+\r
+ while (st.countTokens() > 1)\r
+ {\r
+ String a = st.nextToken();\r
+ String b = st.nextToken();\r
+ addDBRef(new DBRefEntry(a, "0", b));\r
+ }\r
+\r
+ if (st.hasMoreTokens())\r
+ shortName = st.nextToken();\r
+\r
+ // Remove /start-end from sequence\r
+ if (shortName.indexOf("/") > 0)\r
+ {\r
+ st = new StringTokenizer(shortName, "/");\r
+ String limits = null;\r
+ try\r
+ {\r
+ if (st.countTokens() == 2)\r
+ {\r
+\r
+ shortName = st.nextToken();\r
+\r
+ limits = st.nextToken();\r
+\r
+ st = new StringTokenizer(limits, "-");\r
+\r
+ if (st.countTokens() == 2)\r
+ {\r
+ setStart(Integer.valueOf(st.nextToken()).intValue());\r
+ setEnd(Integer.valueOf(st.nextToken()).intValue());\r
+ }\r
+ }\r
+\r
+ // If we're still in this loop, parsing of start and end was ok\r
+ // Therefore remove it from the sequence name\r
+ name = name.substring(0, name.indexOf("/"));\r
+ }\r
+ catch (NumberFormatException ex)\r
+ {\r
+ // Problem parsing sequence limits. Just add it back to the\r
+ // Id so we dont lose this info\r
+ shortName += "/" + limits;\r
+ }\r
+ }\r
+\r
+ }\r
+\r
void checkValidRange()\r
{\r
if (end < 1)\r
*/\r
public Sequence(String name, String sequence)\r
{\r
- this(name, sequence, 1, sequence.length());\r
+ this(name, sequence, 1, -1);\r
}\r
\r
/**\r
*\r
* @param id DOCUMENT ME!\r
*/\r
- public void setPDBId(String id)\r
+ public void setPDBId(Vector id)\r
{\r
- pdbId = id;\r
+ pdbIds = id;\r
}\r
\r
/**\r
*\r
* @return DOCUMENT ME!\r
*/\r
- public String getPDBId()\r
+ public Vector getPDBId()\r
{\r
- return pdbId;\r
+ return pdbIds;\r
}\r
\r
/**\r
}\r
}\r
\r
- result.append(name);\r
+ result.append(shortName);\r
\r
if (jvsuffix)\r
{\r
*/\r
public void setName(String name)\r
{\r
- this.name = name;\r
+ this.name = name;\r
+ this.parseId();\r
}\r
\r
/**\r
*/\r
public String getName()\r
{\r
- return this.name;\r
+ return this.name;\r
}\r
\r
/**\r