X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;ds=sidebyside;f=src%2Fjalview%2Fapi%2FAlignCalcManagerI.java;h=e2982c13b47d597a5bf85ba8dad98b0c747bfafd;hb=d64f1df4fdb6c90c7ed36624174eac8b1dd52511;hp=e9b625b79971946f161f65d3a82a0e29ab92b496;hpb=ebec7bf5754da64c85a0b1f26511a503247f158f;p=jalview.git diff --git a/src/jalview/api/AlignCalcManagerI.java b/src/jalview/api/AlignCalcManagerI.java index e9b625b..e2982c1 100644 --- a/src/jalview/api/AlignCalcManagerI.java +++ b/src/jalview/api/AlignCalcManagerI.java @@ -1,13 +1,13 @@ package jalview.api; -import java.util.List; - import jalview.datamodel.AlignmentAnnotation; +import java.util.List; + public interface AlignCalcManagerI { - + /** * tell manager that a worker is initialised and has started to run * @param worker @@ -41,7 +41,7 @@ public interface AlignCalcManagerI void workerCannotRun(AlignCalcWorkerI worker); /** - * indicate that a worker like this may be run on the platform. + * indicate that a worker like this may be run on the platform. * @param worker of class to be removed from the execution blacklist */ void workerMayRun(AlignCalcWorkerI worker); @@ -52,7 +52,7 @@ public interface AlignCalcManagerI void startWorker(AlignCalcWorkerI worker); /** - * + * * @param worker * @return */ @@ -64,7 +64,7 @@ public interface AlignCalcManagerI */ boolean isWorking(); - + /** * register a restartable worker * @param worker @@ -72,25 +72,25 @@ public interface AlignCalcManagerI void registerWorker(AlignCalcWorkerI worker); /** - * restart any registered workers + * restart any registered workers */ void restartWorkers(); /** - * + * * @param alignmentAnnotation * @return true if a currently registered and working worker indicates its involvement with the given alignmentAnnotation */ boolean workingInvolvedWith(AlignmentAnnotation alignmentAnnotation); /** - * kick any known instances of the given worker class to update their annotation + * kick any known instances of the given worker class to update their annotation * @param workerClass */ void updateAnnotationFor(Class workerClass); /** - * return any registered workers of the given class + * return any registered workers of the given class * @param workerClass * @return null or one or more workers of the given class */ @@ -105,4 +105,20 @@ public interface AlignCalcManagerI */ boolean startRegisteredWorkersOfClass(Class workerClass); + /** + * work out if there is an instance of a worker that is *waiting* to start + * calculating + * + * @param workingClass + * @return true if workingClass is already waiting to calculate. false if it + * is calculating, or not queued. + */ + boolean isPending(AlignCalcWorkerI workingClass); + + /** + * deregister and otherwise remove any registered and working instances of the given worker type + * @param typeToRemove + */ + void removeRegisteredWorkersOfClass(Class typeToRemove); + }