Clover icon

Coverage Report

  1. Project Clover database Thu Dec 4 2025 16:11:35 GMT
  2. Package jalview.api

File AlignCalcManagerI2.java

 

Coverage histogram

../../img/srcFileCovDistChart0.png
60% of files have more coverage

Code metrics

0
1
1
1
127
27
1
1
1
1
1

Classes

Class Line # Actions
AlignCalcManagerI2 15 1 1
0.00%
 

Contributing tests

No tests hitting this source file were found.

Source view

1    package jalview.api;
2   
3    import java.util.List;
4   
5    import jalview.datamodel.AlignmentAnnotation;
6   
7    /**
8    * An abstract manager which controls the execution of interactive jobs.
9    * There is always one instance of AlignCancManager per AlignmenViewport
10    * which runs the jobs, notifies observers and ensures no race conditions.
11    *
12    * @author mmwarowny
13    *
14    */
 
15    public interface AlignCalcManagerI2
16    {
17    /**
18    * Registers the worker with the manager and immediately schedules it
19    * for execution.
20    */
21    void registerWorker(AlignCalcWorkerI worker);
22   
23    /**
24    * Returns the list of all registered workers or an empty list if
25    * there are none
26    */
27    List<AlignCalcWorkerI> getWorkers();
28   
29    /**
30    * Returns the list of all workers of a given class or an empty list
31    * if there are none. The classes are compared using
32    * {@ink Class#equals(Object)} rather than {@code instanceof}.
33    */
34    List<AlignCalcWorkerI> getWorkersOfClass(Class<? extends AlignCalcWorkerI> cls);
35   
36    /**
37    * Removes the worker from the scheduler. It does not cancel workers
38    * already scheduled for execution.
39    */
40    void removeWorker(AlignCalcWorkerI worker);
41   
42    /**
43    * Removes all workers which are involved with the given annotation.
44    */
45    void removeWorkerForAnnotation(AlignmentAnnotation annot);
46   
47    /**
48    * Alias of removeWorkerForAnnotation
49    */
 
50  0 toggle default void removeWorkersForAnnotation(AlignmentAnnotation annot) {
51  0 removeWorkerForAnnotation(annot);
52    }
53   
54    /**
55    * Removes all workers of a given class. The classes are compared using
56    * {@link Class#equals(Object)}.
57    */
58    void removeWorkersOfClass(Class<? extends AlignCalcWorkerI> cls);
59   
60    /**
61    * Disables a worker so it won't be run during the following restarts.
62    */
63    void disableWorker(AlignCalcWorkerI worker);
64   
65    /**
66    * Restores the previously disabled worker back to operation.
67    */
68    void enableWorker(AlignCalcWorkerI worker);
69   
70    /**
71    * Checks whether the worker is disabled either due to failure or
72    * disabling it manually.
73    */
74    boolean isDisabled(AlignCalcWorkerI worker);
75   
76    /**
77    * Checks whether the given worker is currently running.
78    */
79    boolean isWorking(AlignCalcWorkerI worker);
80   
81    /**
82    * Checks whether the currently running worker (if any) is processing
83    * the given annotation.
84    */
85    boolean isWorkingWithAnnotation(AlignmentAnnotation annot);
86   
87    /**
88    * Checks whether this manager is running a worker.
89    */
90    boolean isWorking();
91   
92    /**
93    * Scheduler the worker for one-time execution. The worker does not need
94    * to be registered with this manager and will be scheduler regardless
95    * of being disabled. If the worker has already been scheduled, the
96    * previous one will be cancelled.
97    */
98    void startWorker(AlignCalcWorkerI worker);
99   
100    /**
101    * Schedules all registered and not-disabled workers for next execution.
102    */
103    void restartWorkers();
104   
105    /**
106    * Cancels the execution of the worker. Note, if the worker is already
107    * running, this method may, but doesn't have to, interrupt it in
108    * the middle of the work.
109    */
110    void cancelWorker(AlignCalcWorkerI worker);
111   
112    /**
113    * Connect the listener of the worker state changes.
114    */
115    void addAlignCalcListener(AlignCalcListener listener);
116   
117    /**
118    * Remove previously registered worker listener.
119    */
120    void removeAlignCalcListener(AlignCalcListener listener);
121   
122    /**
123    * Stops the manager from running new jobs and cleans-up all
124    * resources such as threads and thread pools.
125    */
126    void shutdown();
127    }