AnnotationId is hashcode of object
[jalview.git] / src / jalview / io / FormatAdapter.java
1 /*\r
2 * Jalview - A Sequence Alignment Editor and Viewer\r
3 * Copyright (C) 2006 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle\r
4 *\r
5 * This program is free software; you can redistribute it and/or\r
6 * modify it under the terms of the GNU General Public License\r
7 * as published by the Free Software Foundation; either version 2\r
8 * of the License, or (at your option) any later version.\r
9 *\r
10 * This program is distributed in the hope that it will be useful,\r
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of\r
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\r
13 * GNU General Public License for more details.\r
14 *\r
15 * You should have received a copy of the GNU General Public License\r
16 * along with this program; if not, write to the Free Software\r
17 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA\r
18 */\r
19 package jalview.io;\r
20 \r
21 import jalview.datamodel.*;\r
22 \r
23 \r
24 /**\r
25  * DOCUMENT ME!\r
26  *\r
27  * @author $author$\r
28  * @version $Revision$\r
29  */\r
30 public class FormatAdapter extends AppletFormatAdapter\r
31 {\r
32 \r
33     public String formatSequences(String format,\r
34                                   SequenceI [] seqs,\r
35                                   String [] omitHiddenColumns)\r
36     {\r
37       if(omitHiddenColumns!=null)\r
38       {\r
39         SequenceI [] tmp = new SequenceI[seqs.length];\r
40         for(int i=0; i<seqs.length; i++)\r
41         {\r
42           tmp[i] = new Sequence(\r
43               seqs[i].getName(), omitHiddenColumns[i],\r
44               seqs[i].getStart(), seqs[i].getEnd());\r
45           tmp[i].setDescription(seqs[i].getDescription());\r
46         }\r
47         seqs = tmp;\r
48       }\r
49 \r
50       return formatSequences(format, seqs);\r
51     }\r
52 \r
53 \r
54     /**\r
55      * DOCUMENT ME!\r
56      *\r
57      * @param format DOCUMENT ME!\r
58      * @param seqs DOCUMENT ME!\r
59      *\r
60      * @return DOCUMENT ME!\r
61      */\r
62     public String formatSequences(String format,\r
63                                   SequenceI [] seqs)\r
64     {\r
65 \r
66         try\r
67         {\r
68             AlignFile afile = null;\r
69 \r
70             if (format.equalsIgnoreCase("FASTA"))\r
71             {\r
72                 afile = new FastaFile();\r
73                 afile.addJVSuffix(\r
74                     jalview.bin.Cache.getDefault("FASTA_JVSUFFIX", true));\r
75             }\r
76             else if (format.equalsIgnoreCase("MSF"))\r
77             {\r
78               afile = new MSFfile();\r
79               afile.addJVSuffix(\r
80                   jalview.bin.Cache.getDefault("MSF_JVSUFFIX", true));\r
81             }\r
82             else if (format.equalsIgnoreCase("PileUp"))\r
83             {\r
84                 afile = new PileUpfile();\r
85                 afile.addJVSuffix(\r
86                     jalview.bin.Cache.getDefault("PILEUP_JVSUFFIX", true));\r
87             }\r
88             else if (format.equalsIgnoreCase("CLUSTAL"))\r
89             {\r
90                 afile = new ClustalFile();\r
91                 afile.addJVSuffix(\r
92                     jalview.bin.Cache.getDefault("CLUSTAL_JVSUFFIX", true));\r
93             }\r
94             else if (format.equalsIgnoreCase("BLC"))\r
95             {\r
96                 afile = new BLCFile();\r
97                 afile.addJVSuffix(\r
98                     jalview.bin.Cache.getDefault("BLC_JVSUFFIX", true));\r
99             }\r
100             else if (format.equalsIgnoreCase("PIR"))\r
101             {\r
102                 afile = new PIRFile();\r
103                 afile.addJVSuffix(\r
104                     jalview.bin.Cache.getDefault("PIR_JVSUFFIX", true));\r
105             }\r
106             else if (format.equalsIgnoreCase("PFAM"))\r
107             {\r
108                 afile = new PfamFile();\r
109                 afile.addJVSuffix(\r
110                     jalview.bin.Cache.getDefault("PFAM_JVSUFFIX", true));\r
111             }\r
112 \r
113             afile.setSeqs(seqs);\r
114 \r
115             return afile.print();\r
116         }\r
117         catch (Exception e)\r
118         {\r
119             System.err.println("Failed to write alignment as a '" + format +\r
120                 "' file\n");\r
121             e.printStackTrace();\r
122         }\r
123 \r
124         return null;\r
125     }\r
126 }\r