X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fworkers%2FAlignCalcManager.java;h=10637063e3217a8448315cde0a4b2b9be2773bdb;hb=d616b0e1ac213a82591cece50ea25c5bfbfa865f;hp=544c2c821220ad6a53ab76f79c558e4bf80258ea;hpb=42ec35a792d480c73027da6e7fc617146850ce44;p=jalview.git diff --git a/src/jalview/workers/AlignCalcManager.java b/src/jalview/workers/AlignCalcManager.java index 544c2c8..1063706 100644 --- a/src/jalview/workers/AlignCalcManager.java +++ b/src/jalview/workers/AlignCalcManager.java @@ -1,5 +1,29 @@ +/* + * 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. + * + * 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 . + * The Jalview Authors are detailed in the 'AUTHORS' file. + */ package jalview.workers; +import jalview.api.AlignCalcManagerI; +import jalview.api.AlignCalcWorkerI; +import jalview.datamodel.AlignmentAnnotation; + import java.util.ArrayList; import java.util.Collections; import java.util.HashSet; @@ -8,10 +32,6 @@ import java.util.List; import java.util.Map; import java.util.Set; -import jalview.api.AlignCalcManagerI; -import jalview.api.AlignCalcWorkerI; -import jalview.datamodel.AlignmentAnnotation; - public class AlignCalcManager implements AlignCalcManagerI { private volatile List restartable = Collections @@ -63,7 +83,7 @@ public class AlignCalcManager implements AlignCalcManagerI /* * (non-Javadoc) - * + * * @see jalview.api.AlignCalcManagerI#isPending(jalview.api.AlignCalcWorkerI) */ @Override @@ -132,7 +152,7 @@ public class AlignCalcManager implements AlignCalcManagerI { synchronized (inProgress) { -// System.err.println("Worker "+worker.getClass()+" marked as complete."); + // System.err.println("Worker "+worker.getClass()+" marked as complete."); inProgress.remove(worker.getClass()); List upd = updating.get(worker.getClass()); if (upd != null) @@ -166,8 +186,8 @@ public class AlignCalcManager implements AlignCalcManagerI @Override public void startWorker(AlignCalcWorkerI worker) { -// System.err.println("Starting "+worker.getClass()); -// new Exception("").printStackTrace(); + // System.err.println("Starting "+worker.getClass()); + // new Exception("").printStackTrace(); Thread tw = new Thread(worker); tw.setName(worker.getClass().toString()); tw.start(); @@ -236,10 +256,12 @@ public class AlignCalcManager implements AlignCalcManagerI for (List workers : updating.values()) { for (AlignCalcWorkerI worker : workers) + { if (worker.involves(alignmentAnnotation)) { return true; } + } } } return false; @@ -271,7 +293,7 @@ public class AlignCalcManager implements AlignCalcManagerI AlignCalcWorkerI[] workers; synchronized (canUpdate) { - workers = canUpdate.toArray(new AlignCalcWorkerI[0]); + workers = canUpdate.toArray(new AlignCalcWorkerI[canUpdate.size()]); } for (AlignCalcWorkerI worker : workers) { @@ -322,11 +344,13 @@ public class AlignCalcManager implements AlignCalcManagerI { List workers = getRegisteredWorkersOfClass(typeToRemove); List removable = new ArrayList(); - Set toremovannot=new HashSet(); + Set toremovannot = new HashSet(); synchronized (restartable) { - for (AlignCalcWorkerI worker:restartable) { - if (typeToRemove.equals(worker.getClass())) { + for (AlignCalcWorkerI worker : restartable) + { + if (typeToRemove.equals(worker.getClass())) + { removable.add(worker); toremovannot.add(worker); } @@ -335,8 +359,10 @@ public class AlignCalcManager implements AlignCalcManagerI } synchronized (canUpdate) { - for (AlignCalcWorkerI worker:canUpdate) { - if (typeToRemove.equals(worker.getClass())) { + for (AlignCalcWorkerI worker : canUpdate) + { + if (typeToRemove.equals(worker.getClass())) + { removable.add(worker); toremovannot.add(worker); } @@ -345,28 +371,15 @@ public class AlignCalcManager implements AlignCalcManagerI } // TODO: finish testing this extension -/* synchronized (inProgress) - { - // need to kill or mark as dead any running threads... - (inProgress.get(typeToRemove)); - } - - if (workers == null) - { - return; - } - for (AlignCalcWorkerI worker : workers) - { - - if (isPending(worker)) - { - worker.abortAndDestroy(); - startWorker(worker); - } - else - { - System.err.println("Pending exists for " + workerClass); - } - }*/ + /* + * synchronized (inProgress) { // need to kill or mark as dead any running + * threads... (inProgress.get(typeToRemove)); } + * + * if (workers == null) { return; } for (AlignCalcWorkerI worker : workers) + * { + * + * if (isPending(worker)) { worker.abortAndDestroy(); startWorker(worker); } + * else { System.err.println("Pending exists for " + workerClass); } } + */ } }