JAL-2418 source formatting
[jalview.git] / src / jalview / ws / rest / params / Alignment.java
index 0cd1578..4426c5f 100644 (file)
@@ -1,44 +1,44 @@
-/*******************************************************************************
- * Jalview - A Sequence Alignment Editor and Viewer (Version 2.7)
- * Copyright (C) 2011 J Procter, AM Waterhouse, G Barton, M Clamp, S Searle
- *
+/*
+ * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$)
+ * Copyright (C) $$Year-Rel$$ The Jalview Authors
+ * 
  * This file is part of Jalview.
- *
+ * 
  * Jalview is free software: you can redistribute it and/or
  * modify it under the terms of the GNU General Public License 
- * as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
- *
+ * as published by the Free Software Foundation, either version 3
+ * of the License, or (at your option) any later version.
+ *  
  * Jalview is distributed in the hope that it will be useful, but 
  * WITHOUT ANY WARRANTY; without even the implied warranty 
  * of MERCHANTABILITY or FITNESS FOR A PARTICULAR 
  * PURPOSE.  See the GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along with Jalview.  If not, see <http://www.gnu.org/licenses/>.
- *******************************************************************************/
+ * 
+ * You should have received a copy of the GNU General Public License
+ * along with Jalview.  If not, see <http://www.gnu.org/licenses/>.
+ * The Jalview Authors are detailed in the 'AUTHORS' file.
+ */
 package jalview.ws.rest.params;
 
 import jalview.datamodel.AlignmentI;
+import jalview.io.FileFormat;
+import jalview.io.FileFormatI;
+import jalview.io.FileFormats;
+import jalview.io.FormatAdapter;
 import jalview.ws.params.OptionI;
 import jalview.ws.params.simple.BooleanOption;
 import jalview.ws.params.simple.Option;
 import jalview.ws.rest.InputType;
 import jalview.ws.rest.NoValidInputDataException;
 import jalview.ws.rest.RestJob;
-import jalview.ws.rest.InputType.molType;
-import jalview.ws.rest.RestServiceDescription;
 
 import java.io.BufferedOutputStream;
-import java.io.ByteArrayOutputStream;
 import java.io.File;
 import java.io.FileOutputStream;
 import java.io.OutputStreamWriter;
 import java.io.PrintWriter;
-import java.io.StringWriter;
 import java.io.UnsupportedEncodingException;
-import java.net.URLEncoder;
-import java.nio.charset.Charset;
 import java.util.ArrayList;
-import java.util.Arrays;
 import java.util.List;
 
 import org.apache.http.entity.mime.content.ContentBody;
@@ -55,11 +55,10 @@ public class Alignment extends InputType
 {
   public Alignment()
   {
-    super(new Class[]
-    { AlignmentI.class });
+    super(new Class[] { AlignmentI.class });
   }
 
-  String format = "FASTA";
+  FileFormatI format = FileFormat.Fasta;
 
   molType type;
 
@@ -68,7 +67,7 @@ public class Alignment extends InputType
   /**
    * input data as a file upload rather than inline content
    */
-  public boolean writeAsFile=false;
+  public boolean writeAsFile = false;
 
   @Override
   public ContentBody formatForInput(RestJob rj)
@@ -80,11 +79,11 @@ public class Alignment extends InputType
       try
       {
         File fa = File.createTempFile("jvmime", ".fa");
-        PrintWriter pw = new PrintWriter(
-                new OutputStreamWriter(new BufferedOutputStream(
-                        new FileOutputStream(fa)), "UTF-8"));
-        pw.append(new jalview.io.FormatAdapter().formatSequences(format,
-                alignment, jvsuffix));
+        PrintWriter pw = new PrintWriter(new OutputStreamWriter(
+                new BufferedOutputStream(new FileOutputStream(fa)),
+                "UTF-8"));
+        pw.append(new FormatAdapter().formatSequences(format, alignment,
+                jvsuffix));
         pw.close();
         return new FileBody(fa, "text/plain");
       } catch (Exception ex)
@@ -95,7 +94,7 @@ public class Alignment extends InputType
     }
     else
     {
-      jalview.io.FormatAdapter fa = new jalview.io.FormatAdapter();
+      FormatAdapter fa = new FormatAdapter();
       fa.setNewlineString("\r\n");
       return new StringBody(
               (fa.formatSequences(format, alignment, jvsuffix)));
@@ -109,8 +108,8 @@ public class Alignment extends InputType
   @Override
   public List<String> getURLEncodedParameter()
   {
-    ArrayList<String> prms = new ArrayList<String>();
-    prms.add("format='" + format + "'");
+    List<String> prms = new ArrayList<String>();
+    prms.add("format='" + format.getName() + "'");
     if (type != null)
     {
       prms.add("type='" + type.toString() + "'");
@@ -119,12 +118,10 @@ public class Alignment extends InputType
     {
       prms.add("jvsuffix");
     }
-    ;
     if (writeAsFile)
     {
       prms.add("writeasfile");
     }
-    ;
     return prms;
   }
 
@@ -151,19 +148,19 @@ public class Alignment extends InputType
 
     if (tok.startsWith("format"))
     {
-      for (String fmt : jalview.io.FormatAdapter.WRITEABLE_FORMATS)
+      for (FileFormatI fmt : FileFormats.getInstance().getFormats())
       {
-        if (val.equalsIgnoreCase(fmt))
+        if (fmt.isWritable() && val.equalsIgnoreCase(fmt.getName()))
         {
           format = fmt;
           return true;
         }
       }
-      warnings.append("Invalid alignment format '" + val
-              + "'. Must be one of (");
-      for (String fmt : jalview.io.FormatAdapter.WRITEABLE_FORMATS)
+      warnings.append(
+              "Invalid alignment format '" + val + "'. Must be one of (");
+      for (String fmt : FileFormats.getInstance().getWritableFormats(true))
       {
-        warnings.append(" " + fmt);
+        warnings.append(" ").append(fmt);
       }
       warnings.append(")\n");
     }
@@ -175,8 +172,8 @@ public class Alignment extends InputType
         return true;
       } catch (Exception x)
       {
-        warnings.append("Invalid molecule type '" + val
-                + "'. Must be one of (");
+        warnings.append(
+                "Invalid molecule type '" + val + "'. Must be one of (");
         for (molType v : molType.values())
         {
           warnings.append(" " + v);
@@ -186,20 +183,26 @@ public class Alignment extends InputType
     }
     return false;
   }
+
   @Override
   public List<OptionI> getOptions()
   {
     List<OptionI> lst = getBaseOptions();
-    lst.add(new BooleanOption("jvsuffix","Append jalview style /start-end suffix to ID", false, false, jvsuffix, null));
-    lst.add(new BooleanOption("writeasfile","Append jalview style /start-end suffix to ID", false, false, writeAsFile, null));
-    
-    lst.add(new Option("format",
-            "Alignment upload format", true, "FASTA",
-            format, Arrays.asList(jalview.io.FormatAdapter.WRITEABLE_FORMATS), null));
+    lst.add(new BooleanOption("jvsuffix",
+            "Append jalview style /start-end suffix to ID", false, false,
+            jvsuffix, null));
+    lst.add(new BooleanOption("writeasfile",
+            "Append jalview style /start-end suffix to ID", false, false,
+            writeAsFile, null));
+
+    List<String> writable = FileFormats.getInstance()
+            .getWritableFormats(true);
+    lst.add(new Option("format", "Alignment upload format", true,
+            FileFormat.Fasta.toString(), format.getName(), writable, null));
     lst.add(createMolTypeOption("type", "Sequence type", false, type,
             null));
-    
+
     return lst;
   }
 
-}
\ No newline at end of file
+}