+ private Vector<int[]> copyHiddenRegions()
+ {
+ Vector<int[]> copy = new Vector<>(hiddenColumns.size());
+ for (int i = 0, j = hiddenColumns.size(); i < j; i++)
+ {
+ int[] rh, cp;
+ rh = hiddenColumns.elementAt(i);
+ if (rh != null)
+ {
+ cp = new int[rh.length];
+ System.arraycopy(rh, 0, cp, 0, rh.length);
+ copy.addElement(cp);
+ }
+ }
+ return copy;
+ }
+
+ private ArrayList<int[]> copyHiddenRegionsToArrayList()
+ {
+ ArrayList<int[]> copy = new ArrayList<>(hiddenColumns.size());
+ for (int i = 0, j = hiddenColumns.size(); i < j; i++)
+ {
+ int[] rh, cp;
+ rh = hiddenColumns.elementAt(i);
+ if (rh != null)
+ {
+ cp = new int[rh.length];
+ System.arraycopy(rh, 0, cp, 0, rh.length);
+ copy.add(cp);
+ }
+ }
+ return copy;
+ }
+
+ public void getHiddenColumnsCopy(Vector<int[]> copy)
+ {
+ try
+ {
+ lock.readLock().lock();
+ copy = copyHiddenRegions();
+ } finally
+ {
+ lock.readLock().unlock();
+ }
+ }
+
+ public void getHiddenColumnsCopy(ArrayList<int[]> copy)
+ {
+ try
+ {
+ lock.readLock().lock();
+ copy = copyHiddenRegionsToArrayList();
+ } finally
+ {
+ lock.readLock().unlock();
+ }
+ }
+