Report invalid chars
[jalview.git] / src / jalview / io / PfamFile.java
index 9a6ca54..8056f38 100755 (executable)
@@ -27,7 +27,6 @@ import jalview.util.*;
 public class PfamFile\r
     extends AlignFile\r
 {\r
-  Vector ids;\r
 \r
   public PfamFile()\r
   {\r
@@ -47,11 +46,9 @@ public class PfamFile
   public void initData()\r
   {\r
     super.initData();\r
-    ids = new Vector();\r
   }\r
 \r
-  public void parse()\r
-      throws IOException\r
+  public void parse() throws IOException\r
   {\r
     int i = 0;\r
     String line;\r
@@ -113,49 +110,16 @@ public class PfamFile
               .length();\r
         }\r
 \r
-        String head = headers.elementAt(i).toString();\r
-        int start = 1;\r
-        int end = -1;\r
-\r
-        if (head.indexOf("/") > 0)\r
-        {\r
-          StringTokenizer st = new StringTokenizer(head, "/");\r
-\r
-          if (st.countTokens() == 2)\r
-          {\r
-            ids.addElement(st.nextToken());\r
 \r
-            String tmp = st.nextToken();\r
-            st = new StringTokenizer(tmp, "-");\r
-\r
-            if (st.countTokens() == 2)\r
-            {\r
-              start = Integer.valueOf(st.nextToken()).intValue();\r
-              end = Integer.valueOf(st.nextToken()).intValue();\r
-            }\r
-          }\r
-          else\r
-          {\r
-            ids.addElement(headers.elementAt(i));\r
-          }\r
-        }\r
-        else\r
-        {\r
-          ids.addElement(headers.elementAt(i));\r
-        }\r
-\r
-        Sequence newSeq = null;\r
-\r
-        newSeq = new Sequence(ids.elementAt(i).toString(),\r
-                              seqhash.get(headers.elementAt(i).toString())\r
-                              .toString(), start, end);\r
+        Sequence newSeq = parseId(headers.elementAt(i).toString());\r
+        newSeq.setSequence( seqhash.get(headers.elementAt(i).toString()).toString());\r
         seqs.addElement(newSeq);\r
 \r
-\r
         if (!isValidProteinSequence(newSeq.getSequence()))\r
         {\r
-          throw new IOException(\r
-              "Not a valid protein sequence - (PFAM input)");\r
+          throw new IOException(AppletFormatAdapter.INVALID_CHARACTERS\r
+                                +" : "+ newSeq.getName()\r
+                                +" : "+invalidCharacter);\r
         }\r
       }\r
       else\r
@@ -166,7 +130,7 @@ public class PfamFile
     }\r
   }\r
 \r
-  public static String print(SequenceI[] s)\r
+  public String print(SequenceI[] s)\r
   {\r
     StringBuffer out = new StringBuffer("");\r
 \r
@@ -177,8 +141,7 @@ public class PfamFile
 \r
     while ( (i < s.length) && (s[i] != null))\r
     {\r
-      String tmp = s[i].getName() + "/" + s[i].getStart() + "-" +\r
-          s[i].getEnd();\r
+      String tmp = printId(s[i]);\r
 \r
       if (s[i].getSequence().length() > max)\r
       {\r
@@ -202,8 +165,7 @@ public class PfamFile
 \r
     while ( (j < s.length) && (s[j] != null))\r
     {\r
-      out.append(new Format("%-" + maxid + "s").form(s[j].getName() +\r
-          "/" + s[j].getStart() + "-" + s[j].getEnd()) + " ");\r
+      out.append(new Format("%-" + maxid + "s").form( printId(s[j])+" "));\r
 \r
       out.append(s[j].getSequence() + "\n");\r
       j++;\r