JAL-2738 copy to spikes/mungo
[jalview.git] / src / jalview / ws / rest / InputType.java
index c9f9f19..88431a6 100644 (file)
@@ -1,20 +1,23 @@
-/*******************************************************************************
- * Jalview - A Sequence Alignment Editor and Viewer (Version 2.7)
- * Copyright (C) 2011 J Procter, AM Waterhouse, J Engelhardt, LM Lui, 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;
 
 import jalview.ws.params.ArgumentI;
@@ -23,28 +26,18 @@ import jalview.ws.params.OptionI;
 import jalview.ws.params.ParameterI;
 import jalview.ws.params.simple.IntegerParameter;
 import jalview.ws.params.simple.Option;
-import jalview.ws.rest.params.SeqGroupIndexVector;
 
-import java.io.IOException;
-import java.io.OutputStream;
-import java.io.OutputStreamWriter;
-import java.io.PrintWriter;
-import java.io.StringWriter;
 import java.io.UnsupportedEncodingException;
 import java.nio.charset.Charset;
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.List;
-import java.util.Map;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 
 import org.apache.http.entity.mime.content.ContentBody;
 import org.apache.http.entity.mime.content.StringBody;
 
-import sun.io.CharacterEncoding;
-import sun.misc.CharacterEncoder;
-
 /***
  * InputType is the abstract model of each input parameter that a rest service
  * might take. It enables the engine to validate input by providing { formatter
@@ -53,6 +46,9 @@ import sun.misc.CharacterEncoder;
  */
 public abstract class InputType
 {
+  private static final Pattern URL_PATTERN = Pattern
+          .compile("^([^=]+)=?'?([^']*)?'?");
+
   /**
    * not used yet
    */
@@ -134,13 +130,13 @@ public abstract class InputType
     {
       if (type == null)
       {
-        return new StringBody(utf8.encode(content).asCharBuffer()
-                .toString());
+        return new StringBody(
+                utf8.encode(content).asCharBuffer().toString());
       }
       else
       {
-        return new StringBody(utf8.encode(content).asCharBuffer()
-                .toString(), type, utf8);
+        return new StringBody(
+                utf8.encode(content).asCharBuffer().toString(), type, utf8);
       }
     } catch (Exception ex)
     {
@@ -216,7 +212,7 @@ public abstract class InputType
     boolean valid = true;
     for (String tok : tokenstring)
     {
-      Matcher mtch = Pattern.compile("^([^=]+)=?'?([^']*)?'?").matcher(tok);
+      Matcher mtch = URL_PATTERN.matcher(tok);
       if (mtch.find())
       {
         try
@@ -311,9 +307,10 @@ public abstract class InputType
       {
         // TODO: revise architecture - this is counter intuitive - options with
         // different values to their names are actually parameters
-        rg = (arg.getValue().length() > 0) ? (arg.getValue().equals(
-                arg.getName()) ? arg.getName() : arg.getName() + "='"
-                + arg.getValue() + "'") : arg.getName();
+        rg = (arg.getValue().length() > 0)
+                ? (arg.getValue().equals(arg.getName()) ? arg.getName()
+                        : arg.getName() + "='" + arg.getValue() + "'")
+                : arg.getName();
       }
       if (rg.length() > 0)
       {
@@ -321,7 +318,8 @@ public abstract class InputType
       }
     }
     StringBuffer warnings;
-    if (!configureFromURLtokenString(urltoks, warnings = new StringBuffer()))
+    if (!configureFromURLtokenString(urltoks,
+            warnings = new StringBuffer()))
     {
       throw new InvalidArgumentException(warnings.toString());
     }
@@ -330,9 +328,9 @@ public abstract class InputType
   protected OptionI createMolTypeOption(String name, String descr,
           boolean req, molType curType, molType defType)
   {
-    return new Option(name, descr, req, defType == null ? ""
-            : defType.toString(),
+    return new Option(name, descr, req,
+            defType == null ? "" : defType.toString(),
             curType == null ? "" : curType.toString(),
             molType.toStringValues(), null);
   }
-}
\ No newline at end of file
+}