Merge branch 'Jalview-BH/JAL-3026' into tasks/JAL-3033_jalviewjs_ant
[jalview.git] / src / jalview / ws / rest / params / SeqGroupIndexVector.java
index 124c789..9210414 100644 (file)
@@ -1,19 +1,21 @@
 /*
- * Jalview - A Sequence Alignment Editor and Viewer (Version 2.8.0b1)
- * Copyright (C) 2014 The Jalview Authors
+ * 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;
@@ -21,6 +23,7 @@ package jalview.ws.rest.params;
 import jalview.datamodel.AlignmentI;
 import jalview.datamodel.SequenceGroup;
 import jalview.datamodel.SequenceI;
+import jalview.util.MessageManager;
 import jalview.ws.params.OptionI;
 import jalview.ws.params.simple.IntegerParameter;
 import jalview.ws.params.simple.Option;
@@ -45,13 +48,12 @@ import org.apache.http.entity.mime.content.StringBody;
  * @author JimP
  * 
  */
-public class SeqGroupIndexVector extends InputType implements
-        AlignmentProcessor
+public class SeqGroupIndexVector extends InputType
+        implements AlignmentProcessor
 {
   public SeqGroupIndexVector()
   {
-    super(new Class[]
-    { AlignmentI.class });
+    super(new Class[] { AlignmentI.class });
   }
 
   /**
@@ -73,6 +75,7 @@ public class SeqGroupIndexVector extends InputType implements
    *          - alignment to be processed
    * @return al or a new alignment with appropriate attributes/order for input
    */
+  @Override
   public AlignmentI prepareAlignment(AlignmentI al)
   {
     jalview.analysis.AlignmentSorter.sortByGroup(al);
@@ -88,17 +91,19 @@ public class SeqGroupIndexVector extends InputType implements
     AlignmentI al = rj.getAlignmentForInput(token, type);
     // assume that alignment is properly ordered so groups form consecutive
     // blocks
-    ArrayList<int[]> gl = new ArrayList<int[]>();
-    int p = 0,lowest=al.getHeight(), highest=0;
-    List<SequenceGroup> sgs;
-    synchronized (sgs = al.getGroups())
+    ArrayList<int[]> gl = new ArrayList<>();
+    int p = 0, lowest = al.getHeight(), highest = 0;
+    List<SequenceGroup> sgs = al.getGroups();
+    synchronized (sgs)
     {
       for (SequenceGroup sg : sgs)
       {
         if (sg.getSize() < minsize)
         {
-          throw new NoValidInputDataException("Group contains less than "
-                  + minsize + " sequences.");
+          throw new NoValidInputDataException(MessageManager.formatMessage(
+                  "exception.notvaliddata_group_contains_less_than_min_seqs",
+                  new String[]
+                  { Integer.valueOf(minsize).toString() }));
         }
         // TODO: refactor to sequenceGroup for efficiency -
         // getAlignmentRowInterval(AlignmentI al)
@@ -106,25 +111,28 @@ public class SeqGroupIndexVector extends InputType implements
         for (SequenceI sq : sg.getSequencesInOrder(al))
         {
           p = al.findIndex(sq);
-          if (lowest>p)
+          if (lowest > p)
           {
-            lowest=p;
+            lowest = p;
           }
-          if (highest<p)
+          if (highest < p)
           {
-            highest=p;
+            highest = p;
           }
           if (se == null)
           {
-            se = new int[]
-            { p, p };
+            se = new int[] { p, p };
           }
           else
           {
             if (p < se[0])
+            {
               se[0] = p;
+            }
             if (p > se[1])
+            {
               se[1] = p;
+            }
           }
         }
         if (se != null)
@@ -137,20 +145,18 @@ public class SeqGroupIndexVector extends InputType implements
     // remaining group ? - these might be at the start or the end
     if (gl.size() > 0)
     {
-      if (lowest-1>minsize)
+      if (lowest - 1 > minsize)
       {
-        gl.add(0, new int[]
-          { 0, lowest-2});
+        gl.add(0, new int[] { 0, lowest - 2 });
       }
-      if ((al.getHeight()-1-highest)>minsize)
+      if ((al.getHeight() - 1 - highest) > minsize)
       {
-        gl.add(new int[] { highest+1, al.getHeight()-1});
+        gl.add(new int[] { highest + 1, al.getHeight() - 1 });
       }
     }
     else
     {
-      gl.add(new int[]
-      { 0, al.getHeight() - 1 });
+      gl.add(new int[] { 0, al.getHeight() - 1 });
     }
     if (min >= 0 && gl.size() < min)
     {
@@ -167,7 +173,9 @@ public class SeqGroupIndexVector extends InputType implements
     int[][] vals = gl.toArray(new int[gl.size()][]);
     int[] srt = new int[gl.size()];
     for (int i = 0; i < vals.length; i++)
+    {
       srt[i] = vals[i][0];
+    }
     jalview.util.QuickSort.sort(srt, vals);
     list = false;
     int last = vals[0][0] - 1;
@@ -209,7 +217,7 @@ public class SeqGroupIndexVector extends InputType implements
   @Override
   public List<String> getURLEncodedParameter()
   {
-    ArrayList<String> prms = new ArrayList<String>();
+    ArrayList<String> prms = new ArrayList<>();
     super.addBaseParams(prms);
     prms.add("minsize='" + minsize + "'");
     prms.add("sep='" + sep + "'");
@@ -242,7 +250,9 @@ public class SeqGroupIndexVector extends InputType implements
       {
         minsize = Integer.valueOf(val);
         if (minsize >= 0)
+        {
           return true;
+        }
       } catch (Exception x)
       {
 
@@ -258,8 +268,8 @@ public class SeqGroupIndexVector extends InputType implements
         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);