documentation and proxy call to util.MapList.getToWord(mpos)
[jalview.git] / src / jalview / io / FormatAdapter.java
index d4179b6..3cd9345 100755 (executable)
+/*\r
+ * Jalview - A Sequence Alignment Editor and Viewer\r
+ * Copyright (C) 2007 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle\r
+ *\r
+ * This program is free software; you can redistribute it and/or\r
+ * modify it under the terms of the GNU General Public License\r
+ * as published by the Free Software Foundation; either version 2\r
+ * of the License, or (at your option) any later version.\r
+ *\r
+ * This program is distributed in the hope that it will be useful,\r
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of\r
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\r
+ * GNU General Public License for more details.\r
+ *\r
+ * You should have received a copy of the GNU General Public License\r
+ * along with this program; if not, write to the Free Software\r
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA\r
+ */\r
 package jalview.io;\r
 \r
 import jalview.datamodel.*;\r
-import java.util.*;\r
 \r
-public class FormatAdapter {\r
+/**\r
+ * DOCUMENT ME!\r
+ *\r
+ * @author $author$\r
+ * @version $Revision$\r
+ */\r
+public class FormatAdapter\r
+    extends AppletFormatAdapter\r
+{\r
 \r
-  public static String get(String format,Vector seqs) {\r
-\r
-    SequenceI [] s = new SequenceI[seqs.size()];\r
+  public String formatSequences(String format,\r
+                                SequenceI[] seqs,\r
+                                String[] omitHiddenColumns)\r
+  {\r
+    if (omitHiddenColumns != null)\r
+    {\r
+      SequenceI[] tmp = new SequenceI[seqs.length];\r
+      for (int i = 0; i < seqs.length; i++)\r
+      {\r
+        tmp[i] = new Sequence(\r
+            seqs[i].getName(), omitHiddenColumns[i],\r
+            seqs[i].getStart(), seqs[i].getEnd());\r
+        tmp[i].setDescription(seqs[i].getDescription());\r
+      }\r
+      seqs = tmp;\r
+    }\r
 \r
-    for (int i=0;i<seqs.size(); i++)\r
-      s[i] = (SequenceI)seqs.elementAt(i);\r
+    return formatSequences(format, seqs);\r
+  }\r
 \r
+  /**\r
+   * DOCUMENT ME!\r
+   *\r
+   * @param format DOCUMENT ME!\r
+   * @param seqs DOCUMENT ME!\r
+   *\r
+   * @return DOCUMENT ME!\r
+   */\r
+  public String formatSequences(String format,\r
+                                SequenceI[] seqs)\r
+  {\r
 \r
-    if (FormatProperties.contains(format))\r
+    try\r
     {\r
-      AlignFile afile = FormatFactory.get(format);\r
-      afile.setSeqs(s);\r
-      return afile.print();\r
-    }\r
-    else\r
-       return null;\r
-  }\r
+      AlignFile afile = null;\r
 \r
-  public static SequenceI[] read(String format,String inStr) {\r
-    if (FormatProperties.contains(format)) {\r
-      AlignFile afile = FormatFactory.get(format,inStr);\r
-      return afile.getSeqsAsArray();\r
-    } else {\r
-    // Should throw exception\r
-      return null;\r
-    }\r
-  }\r
+      if (format.equalsIgnoreCase("FASTA"))\r
+      {\r
+        afile = new FastaFile();\r
+        afile.addJVSuffix(\r
+            jalview.bin.Cache.getDefault("FASTA_JVSUFFIX", true));\r
+      }\r
+      else if (format.equalsIgnoreCase("MSF"))\r
+      {\r
+        afile = new MSFfile();\r
+        afile.addJVSuffix(\r
+            jalview.bin.Cache.getDefault("MSF_JVSUFFIX", true));\r
+      }\r
+      else if (format.equalsIgnoreCase("PileUp"))\r
+      {\r
+        afile = new PileUpfile();\r
+        afile.addJVSuffix(\r
+            jalview.bin.Cache.getDefault("PILEUP_JVSUFFIX", true));\r
+      }\r
+      else if (format.equalsIgnoreCase("CLUSTAL"))\r
+      {\r
+        afile = new ClustalFile();\r
+        afile.addJVSuffix(\r
+            jalview.bin.Cache.getDefault("CLUSTAL_JVSUFFIX", true));\r
+      }\r
+      else if (format.equalsIgnoreCase("BLC"))\r
+      {\r
+        afile = new BLCFile();\r
+        afile.addJVSuffix(\r
+            jalview.bin.Cache.getDefault("BLC_JVSUFFIX", true));\r
+      }\r
+      else if (format.equalsIgnoreCase("PIR"))\r
+      {\r
+        afile = new PIRFile();\r
+        afile.addJVSuffix(\r
+            jalview.bin.Cache.getDefault("PIR_JVSUFFIX", true));\r
+      }\r
+      else if (format.equalsIgnoreCase("PFAM"))\r
+      {\r
+        afile = new PfamFile();\r
+        afile.addJVSuffix(\r
+            jalview.bin.Cache.getDefault("PFAM_JVSUFFIX", true));\r
+      }\r
 \r
+      afile.setSeqs(seqs);\r
 \r
-  public static SequenceI[] read(String inFile, String type, String format) {\r
-      try {\r
-        AlignFile afile = FormatFactory.get(format,inFile,type);\r
-        return afile.getSeqsAsArray();\r
-      } catch (Exception e) {    }\r
+      return afile.print();\r
+    }\r
+    catch (Exception e)\r
+    {\r
+      System.err.println("Failed to write alignment as a '" + format +\r
+                         "' file\n");\r
+      e.printStackTrace();\r
+    }\r
 \r
     return null;\r
   }\r
-\r
 }\r