X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Futil%2FShiftList.java;h=38d6a32fb8dc9c6d157ae737380872539b1db70e;hb=e309b8d9bd62fb304fdd612c7385e76027d2f2d7;hp=6d3ce1f494a7bcba32dd43a9cf7a4c29aca5508f;hpb=ad15cff29620f960119f80176f1fd443da9f6763;p=jalview.git diff --git a/src/jalview/util/ShiftList.java b/src/jalview/util/ShiftList.java index 6d3ce1f..38d6a32 100644 --- a/src/jalview/util/ShiftList.java +++ b/src/jalview/util/ShiftList.java @@ -20,7 +20,8 @@ */ 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 @@ -29,11 +30,11 @@ import java.util.*; */ public class ShiftList { - public Vector shifts; + private List shifts; public ShiftList() { - shifts = new Vector(); + shifts = new ArrayList(); } /** @@ -46,21 +47,23 @@ 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; + } } } @@ -81,7 +84,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]; } @@ -91,9 +94,9 @@ public class ShiftList /** * clear all shifts */ - public void clear() + public synchronized void clear() { - shifts.removeAllElements(); + shifts.clear(); } /** @@ -104,15 +107,17 @@ 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] }); + } } } } @@ -120,8 +125,8 @@ public class ShiftList } /** - * parse a 1d map of position 1 getShifts() + { + return shifts; + } }