O
- the type of the operation that are processed by this navigator processorpublic interface AsynchronousNavigationProcessor<O extends AbstractOperation> extends NavigationProcessor<O>
NavigationProcessor
that supports asynchronous execution
of the processing steps via Callable
s. If this interface is implemented,
each step of the processor must be independent and thread-safe so that
any parallelization can be used to process the steps. Synchronization can be used
when implementing by blocking the processStepAsynchronously()
method.
Implementation of this interface must ensure equivalency of the thread processing
by calling processStepAsynchronously()
and sequential processing by calling
NavigationProcessor.processStep()
.
Modifier and Type | Method and Description |
---|---|
java.util.concurrent.Callable<O> |
processStepAsynchronously()
Returns a
Callable that allows to execute the next processing step asynchronously. |
close, getOperation, getProcessedCount, getRemainingCount, isFinished, processStep
java.util.concurrent.Callable<O> processStepAsynchronously() throws java.lang.InterruptedException
Callable
that allows to execute the next processing step asynchronously.
Note that this method may block if necessary.Callable
for next step or null if there are no more stepsjava.lang.InterruptedException
- if the processing thread was interrupted