X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Futil%2FShiftList.java;h=860a700fe1c09abfc6ea26f0da677f1f89f705d2;hb=17e77c3f2949a0729322b4a8d907f3f34b6a9914;hp=37b2c2d09f91347db2093ef6f439fb6b0a066fae;hpb=ab43013b7e357b84b4abade0dba949668dfb2a0e;p=jalview.git diff --git a/src/jalview/util/ShiftList.java b/src/jalview/util/ShiftList.java index 37b2c2d..860a700 100644 --- a/src/jalview/util/ShiftList.java +++ b/src/jalview/util/ShiftList.java @@ -1,6 +1,6 @@ /* - * Jalview - A Sequence Alignment Editor and Viewer (Version 2.8.2b1) - * Copyright (C) 2014 The Jalview Authors + * Jalview - A Sequence Alignment Editor and Viewer (Version 2.9) + * Copyright (C) 2015 The Jalview Authors * * This file is part of Jalview. * @@ -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,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; + } } } @@ -81,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]; } @@ -91,9 +93,9 @@ public class ShiftList /** * clear all shifts */ - public void clear() + public synchronized void clear() { - shifts.removeAllElements(); + shifts.clear(); } /** @@ -104,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] }); + } } } } @@ -120,8 +123,8 @@ public class ShiftList } /** - * parse a 1d map of position 1 getShifts() + { + return shifts; + } }