JAL-2418 source formatting
[jalview.git] / src / jalview / datamodel / AlignmentOrder.java
index 28ec445..6d09145 100755 (executable)
@@ -1,45 +1,29 @@
 /*
- * Jalview - A Sequence Alignment Editor and Viewer (Development Version 2.4.1)
- * Copyright (C) 2009 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle
+ * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$)
+ * Copyright (C) $$Year-Rel$$ The Jalview Authors
  * 
- * This program 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 2
- * of the License, or (at your option) any later version.
+ * This file is part of Jalview.
  * 
- * This program 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.
+ * 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.
+ *  
+ * 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 this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA
+ * along with Jalview.  If not, see <http://www.gnu.org/licenses/>.
+ * The Jalview Authors are detailed in the 'AUTHORS' file.
  */
 package jalview.datamodel;
 
-import java.util.*;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
 
-/**
- * <p>
- * Title:
- * </p>
- * 
- * <p>
- * Description:
- * </p>
- * 
- * <p>
- * Copyright: Copyright (c) 2004
- * </p>
- * 
- * <p>
- * Company: Dundee University
- * </p>
- * 
- * @author not attributable
- * @version 1.0
- */
 public class AlignmentOrder
 {
   // JBPNote : this method would return a vector containing all sequences in
@@ -69,7 +53,7 @@ public class AlignmentOrder
 
   private String Name;
 
-  private Vector Order = null;
+  private List<SequenceI> Order = null;
 
   /**
    * Creates a new AlignmentOrder object.
@@ -82,9 +66,8 @@ public class AlignmentOrder
    * AlignmentOrder
    * 
    * @param anOrder
-   *                Vector
    */
-  public AlignmentOrder(Vector anOrder)
+  public AlignmentOrder(List<SequenceI> anOrder)
   {
     Order = anOrder;
   }
@@ -93,15 +76,15 @@ public class AlignmentOrder
    * AlignmentOrder
    * 
    * @param orderFrom
-   *                AlignmentI
+   *          AlignmentI
    */
   public AlignmentOrder(AlignmentI orderFrom)
   {
-    Order = new Vector();
+    Order = new ArrayList<SequenceI>();
 
-    for (int i = 0, ns = orderFrom.getHeight(); i < ns; i++)
+    for (SequenceI seq : orderFrom.getSequences())
     {
-      Order.addElement(orderFrom.getSequenceAt(i));
+      Order.add(seq);
     }
   }
 
@@ -109,23 +92,18 @@ public class AlignmentOrder
    * Creates a new AlignmentOrder object.
    * 
    * @param orderFrom
-   *                DOCUMENT ME!
+   *          DOCUMENT ME!
    */
   public AlignmentOrder(SequenceI[] orderFrom)
   {
-    Order = new Vector();
-
-    for (int i = 0, ns = orderFrom.length; i < ns; i++)
-    {
-      Order.addElement(orderFrom[i]);
-    }
+    Order = new ArrayList<SequenceI>(Arrays.asList(orderFrom));
   }
 
   /**
    * DOCUMENT ME!
    * 
    * @param Type
-   *                DOCUMENT ME!
+   *          DOCUMENT ME!
    */
   public void setType(int Type)
   {
@@ -146,7 +124,7 @@ public class AlignmentOrder
    * DOCUMENT ME!
    * 
    * @param Name
-   *                DOCUMENT ME!
+   *          DOCUMENT ME!
    */
   public void setName(String Name)
   {
@@ -167,9 +145,9 @@ public class AlignmentOrder
    * DOCUMENT ME!
    * 
    * @param Order
-   *                DOCUMENT ME!
+   *          DOCUMENT ME!
    */
-  public void setOrder(Vector Order)
+  public void setOrder(List<SequenceI> Order)
   {
     this.Order = Order;
   }
@@ -179,7 +157,7 @@ public class AlignmentOrder
    * 
    * @return DOCUMENT ME!
    */
-  public Vector getOrder()
+  public List<SequenceI> getOrder()
   {
     return Order;
   }
@@ -196,7 +174,7 @@ public class AlignmentOrder
     int found = Order.indexOf(oldref);
     if (found > -1)
     {
-      Order.setElementAt(newref, found);
+      Order.set(found, newref);
     }
     return found > -1;
   }
@@ -207,9 +185,14 @@ public class AlignmentOrder
    * @param o
    * @return true if o orders the same sequenceI objects in the same way
    */
-  public boolean equals(AlignmentOrder o)
+  @Override
+  public boolean equals(Object o)
   {
-    return equals(o, true);
+    if (o == null || !(o instanceof AlignmentOrder))
+    {
+      return false;
+    }
+    return equals((AlignmentOrder) o, true);
   }
 
   /**
@@ -217,9 +200,9 @@ public class AlignmentOrder
    * equivalence - will throw Error at moment
    * 
    * @param o
-   * @param identity -
-   *                false - use weak equivalence (refers to same or different
-   *                parts of same sequence)
+   * @param identity
+   *          - false - use weak equivalence (refers to same or different parts
+   *          of same sequence)
    * @return true if o orders equivalent sequenceI objects in the same way
    */
   public boolean equals(AlignmentOrder o, boolean identity)
@@ -235,13 +218,14 @@ public class AlignmentOrder
       {
         if (!identity)
         {
-          throw new Error("Weak sequenceI equivalence not yet implemented.");
+          throw new Error(
+                  "Weak sequenceI equivalence not yet implemented.");
         }
         else
         {
           for (int i = 0, j = o.Order.size(); i < j; i++)
           {
-            if (Order.elementAt(i) != o.Order.elementAt(i))
+            if (Order.get(i) != o.Order.get(i))
             {
               return false;
             }
@@ -271,12 +255,11 @@ public class AlignmentOrder
   /**
    * Consistency test for alignmentOrders
    * 
-   * @param o //
-   *                TODO: Weak SequenceI equivalence - will throw Error at
-   *                moment
-   * @param identity -
-   *                false - use weak equivalence (refers to same or different
-   *                parts of same sequence)
+   * @param o
+   *          // TODO: Weak SequenceI equivalence - will throw Error at moment
+   * @param identity
+   *          - false - use weak equivalence (refers to same or different parts
+   *          of same sequence)
    * @return true if o contains or is contained by this and the common SequenceI
    *         objects are ordered in the same way
    */
@@ -290,7 +273,7 @@ public class AlignmentOrder
       }
       if (Order != null && o.Order != null)
       {
-        Vector c, s;
+        List<SequenceI> c, s;
         if (o.Order.size() > Order.size())
         {
           c = o.Order;
@@ -303,7 +286,8 @@ public class AlignmentOrder
         }
         if (!identity)
         {
-          throw new Error("Weak sequenceI equivalence not yet implemented.");
+          throw new Error(
+                  "Weak sequenceI equivalence not yet implemented.");
         }
         else
         {
@@ -311,8 +295,8 @@ public class AlignmentOrder
           int last = -1;
           for (int i = 0, j = s.size(); i < j; i++)
           {
-            int pos = c.indexOf(s.elementAt(i)); // JBPNote - optimize by
-                                                  // incremental position search
+            int pos = c.indexOf(s.get(i)); // JBPNote - optimize by
+            // incremental position search
             if (pos > last)
             {
               last = pos;
@@ -335,15 +319,14 @@ public class AlignmentOrder
    * AlignmentOrder
    * 
    * @param orderThis
-   *                AlignmentI
+   *          AlignmentI
    * @param byThat
-   *                AlignmentI
+   *          AlignmentI
    */
 
   /*
    * public AlignmentOrder(AlignmentI orderThis, AlignmentI byThat) { // Vector
    * is an ordering of this alignment using the order of sequence objects in
-   * byThat, // where ids and unaligned sequences must match
-   *  }
+   * byThat, // where ids and unaligned sequences must match }
    */
 }