+ /**\r
+ * DOCUMENT ME!\r
+ */\r
+ public void parse() throws IOException\r
+ {\r
+ boolean idsFound = false;\r
+ StringBuffer[] seqstrings;\r
+\r
+ String line = null;\r
+\r
+ do\r
+ {\r
+ line = nextLine();\r
+\r
+ // seek end of ids\r
+ if (line.indexOf("*") > -1)\r
+ {\r
+ idsFound = true;\r
+\r
+ break;\r
+ }\r
+\r
+ int abracket = line.indexOf(">");\r
+\r
+ if (abracket > -1)\r
+ {\r
+ line = line.substring(abracket+1);\r
+\r
+ Sequence seq = parseId(line);\r
+ seqs.addElement(seq);\r
+ }\r
+ }\r
+ while (!idsFound);\r
+\r
+ int starCol = line.indexOf("*");\r
+ seqstrings = new StringBuffer[seqs.size()];\r
+\r
+ for (int i = 0; i < seqs.size(); i++)\r
+ {\r
+ if (seqstrings[i] == null)\r
+ {\r
+ seqstrings[i] = new StringBuffer();\r
+ }\r
+ }\r
+\r
+ while ((line = nextLine()).indexOf("*") == -1)\r
+ {\r
+ for (int i = 0; i < seqs.size(); i++)\r
+ {\r
+ if (line.length() > (i + starCol))\r
+ {\r
+ seqstrings[i].append(line.charAt(i + starCol));\r
+ }\r
+ }\r
+ }\r
+\r
+ for (int i = 0; i < seqs.size(); i++)\r
+ {\r
+ Sequence newSeq = (Sequence) seqs.elementAt(i);\r
+\r
+ if (!isValidProteinSequence(newSeq.getSequence()))\r
+ {\r
+ throw new IOException(AppletFormatAdapter.INVALID_CHARACTERS\r
+ +" : "+ newSeq.getName()\r
+ +" : "+invalidCharacter);\r
+ }\r
+\r
+ newSeq.setSequence(seqstrings[i].toString());\r
+ }\r