-public class MSFfile extends AlignFile {\r
- private static com.stevesoft.pat.Regex gapre = new com.stevesoft.pat.Regex("\\~",\r
- "-");\r
- private static com.stevesoft.pat.Regex re2gap = new com.stevesoft.pat.Regex(\r
- "[" + jalview.util.Comparison.GapChars + "]", "\\~");\r
+/**\r
+ * DOCUMENT ME!\r
+ *\r
+ * @author $author$\r
+ * @version $Revision$\r
+ */\r
+public class MSFfile\r
+ extends AlignFile\r
+{\r
+\r
+ /**\r
+ * Creates a new MSFfile object.\r
+ */\r
+ public MSFfile()\r
+ {\r
+ }\r
+\r
+ /**\r
+ * Creates a new MSFfile object.\r
+ *\r
+ * @param inFile DOCUMENT ME!\r
+ * @param type DOCUMENT ME!\r
+ *\r
+ * @throws IOException DOCUMENT ME!\r
+ */\r
+ public MSFfile(String inFile, String type)\r
+ throws IOException\r
+ {\r
+ super(inFile, type);\r
+ }\r
+\r
+ /**\r
+ * DOCUMENT ME!\r
+ */\r
+ public void parse()\r
+ throws IOException\r
+ {\r
+ int i = 0;\r
+ boolean seqFlag = false;\r
+ String key = new String();\r
+ Vector headers = new Vector();\r
+ Hashtable seqhash = new Hashtable();\r
+ String line;\r
+\r
+ try\r
+ {\r
+ while ( (line = nextLine()) != null)\r
+ {\r
+ StringTokenizer str = new StringTokenizer(line);\r
+\r
+ while (str.hasMoreTokens())\r
+ {\r
+ String inStr = str.nextToken();\r
+\r
+ //If line has header information add to the headers vector\r
+ if (inStr.indexOf("Name:") != -1)\r
+ {\r
+ key = str.nextToken();\r
+ headers.addElement(key);\r
+ }\r
+\r
+ //if line has // set SeqFlag to 1 so we know sequences are coming\r
+ if (inStr.indexOf("//") != -1)\r
+ {\r
+ seqFlag = true;\r
+ }\r
+\r
+ //Process lines as sequence lines if seqFlag is set\r
+ if ( (inStr.indexOf("//") == -1) && (seqFlag == true))\r
+ {\r
+ //seqeunce id is the first field\r
+ key = inStr;\r
+\r
+ StringBuffer tempseq;\r
+\r
+ //Get sequence from hash if it exists\r
+ if (seqhash.containsKey(key))\r
+ {\r
+ tempseq = (StringBuffer) seqhash.get(key);\r
+ }\r
+ else\r
+ {\r
+ tempseq = new StringBuffer();\r
+ seqhash.put(key, tempseq);\r
+ }\r