X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fapi%2FAlignCalcManagerI.java;fp=src%2Fjalview%2Fapi%2FAlignCalcManagerI.java;h=e9b625b79971946f161f65d3a82a0e29ab92b496;hb=ebec7bf5754da64c85a0b1f26511a503247f158f;hp=e310696523fe6c177e731bec85399b9ad2d8f7c5;hpb=285069b142906cbc1bd18b09b61ddb996aeb1617;p=jalview.git diff --git a/src/jalview/api/AlignCalcManagerI.java b/src/jalview/api/AlignCalcManagerI.java index e310696..e9b625b 100644 --- a/src/jalview/api/AlignCalcManagerI.java +++ b/src/jalview/api/AlignCalcManagerI.java @@ -1,5 +1,9 @@ package jalview.api; +import java.util.List; + +import jalview.datamodel.AlignmentAnnotation; + public interface AlignCalcManagerI { @@ -37,6 +41,11 @@ public interface AlignCalcManagerI void workerCannotRun(AlignCalcWorkerI worker); /** + * 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); + /** * launch a new worker * @param worker */ @@ -55,4 +64,45 @@ public interface AlignCalcManagerI */ boolean isWorking(); + + /** + * register a restartable worker + * @param worker + */ + void registerWorker(AlignCalcWorkerI worker); + + /** + * 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 + * @param workerClass + */ + void updateAnnotationFor(Class workerClass); + + /** + * return any registered workers of the given class + * @param workerClass + * @return null or one or more workers of the given class + */ + List getRegisteredWorkersOfClass( + Class workerClass); + + /** + * start any workers of the given class + * @param workerClass + * @return false if no workers of given class were registered + * (note - blacklisted classes cannot be restarted, so this method will return true for blacklisted workers) + */ + boolean startRegisteredWorkersOfClass(Class workerClass); + }