X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Futil%2FShiftList.java;h=1dd18ec2f75987f6944cb012561aea4a8f0398ca;hb=d5bc056b7dff2e83166c0a25df7d52082954297a;hp=54a5218643ff3b63f40408b30d237c138c73f453;hpb=865a855a4ca87eadb3e5ff284ed32ed307d9c34b;p=jalview.git
diff --git a/src/jalview/util/ShiftList.java b/src/jalview/util/ShiftList.java
index 54a5218..1dd18ec 100644
--- a/src/jalview/util/ShiftList.java
+++ b/src/jalview/util/ShiftList.java
@@ -1,24 +1,27 @@
/*
- * 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 .
+ * You should have received a copy of the GNU General Public License
+ * along with Jalview. If not, see .
* The Jalview Authors are detailed in the 'AUTHORS' file.
*/
package jalview.util;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.List;
/**
* ShiftList Simple way of mapping a linear series to a new linear range with
@@ -27,11 +30,11 @@ import java.util.*;
*/
public class ShiftList
{
- public Vector shifts;
+ private List shifts;
public ShiftList()
{
- shifts = new Vector();
+ shifts = new ArrayList();
}
/**
@@ -44,21 +47,22 @@ public class ShiftList
*/
public void addShift(int pos, int shift)
{
- int sidx = 0;
- int[] rshift = null;
- while (sidx < shifts.size()
- && (rshift = (int[]) shifts.elementAt(sidx))[0] < pos)
- {
- sidx++;
- }
- if (sidx == shifts.size())
+ synchronized (shifts)
{
- shifts.insertElementAt(new int[]
- { pos, shift }, sidx);
- }
- else
- {
- rshift[1] += shift;
+ int sidx = 0;
+ int[] rshift = null;
+ while (sidx < shifts.size() && (rshift = shifts.get(sidx))[0] < pos)
+ {
+ sidx++;
+ }
+ if (sidx == shifts.size())
+ {
+ shifts.add(sidx, new int[] { pos, shift });
+ }
+ else
+ {
+ rshift[1] += shift;
+ }
}
}
@@ -79,7 +83,7 @@ public class ShiftList
int sidx = 0;
int rshift[];
while (sidx < shifts.size()
- && (rshift = ((int[]) shifts.elementAt(sidx++)))[0] <= pos)
+ && (rshift = (shifts.get(sidx++)))[0] <= pos)
{
shifted += rshift[1];
}
@@ -89,9 +93,9 @@ public class ShiftList
/**
* clear all shifts
*/
- public void clear()
+ public synchronized void clear()
{
- shifts.removeAllElements();
+ shifts.clear();
}
/**
@@ -102,15 +106,16 @@ public class ShiftList
public ShiftList getInverse()
{
ShiftList inverse = new ShiftList();
- if (shifts != null)
+ synchronized (shifts)
{
- for (int i = 0, j = shifts.size(); i < j; i++)
+ if (shifts != null)
{
- int[] sh = (int[]) shifts.elementAt(i);
- if (sh != null)
+ for (int[] sh : shifts)
{
- inverse.shifts.addElement(new int[]
- { sh[0], -sh[1] });
+ if (sh != null)
+ {
+ inverse.shifts.add(new int[] { sh[0], -sh[1] });
+ }
}
}
}
@@ -118,8 +123,8 @@ public class ShiftList
}
/**
- * parse a 1d map of position 1 getShifts()
+ {
+ return shifts;
+ }
}