Class DelegatingCancellationPoint

java.lang.Object
com.complexible.common.cancellation.DelegatingCancellationPoint
All Implemented Interfaces:
CancelCheck, Cancellable, CancellationPoint, AutoCloseable

public class DelegatingCancellationPoint extends Object implements CancellationPoint
Since:
7.4.2
Author:
Pavel Klinov
  • Constructor Details

    • DelegatingCancellationPoint

      public DelegatingCancellationPoint(CancellationPoint thePoint)
  • Method Details

    • getProcessDescription

      public String getProcessDescription()
      Description copied from interface: CancellationPoint
      Returns the description of the process that this cancellation point represents.
      Specified by:
      getProcessDescription in interface CancellationPoint
      Returns:
      the process description.
    • check

      public void check()
      Description copied from interface: CancelCheck
      Check if cancellation point is valid; It throws an exception in case if the cancellation point has been canceled.
      Specified by:
      check in interface CancelCheck
    • isCancelled

      public boolean isCancelled()
      Specified by:
      isCancelled in interface CancelCheck
      Returns:
      true if point has been cancelled, false otherwise;
    • cancel

      public void cancel()
      Description copied from interface: CancellationPoint
      Cancel current point;
      Specified by:
      cancel in interface CancellationPoint
    • cancel

      public void cancel(String theCause)
      Description copied from interface: Cancellable
      Cancels the execution of this computation. It is up to the implementation to decide how to implement the cancellation process. If the underlying implementation is based on the iterator model, calling Iterator.next() or Iterator.hasNext() after this function is called will result in an exception being thrown. Some implementations might have a different strategy but the expectation for every implementation is to finish computation in a reasonable time. So implementations that always return few results without much computation might ignore cancel calls completely. If a computation is composed of other computations then cancel call will be typically propagated to the child computations since there could be significant amount of work performed by them before the parent computation returns a single value. This function is typically called from a different thread the thread that iterates over the results of this computation so implementations should consider this.
      Specified by:
      cancel in interface Cancellable
      Parameters:
      theCause - the cause of the cancellation or null if the cause is unknown
    • getCancellationMessage

      public String getCancellationMessage()
      Description copied from interface: CancelCheck
      Returns null if the process has not been cancelled, otherwise the cancellation cause (if set).
      Specified by:
      getCancellationMessage in interface CancelCheck
      Specified by:
      getCancellationMessage in interface CancellationPoint
      Returns:
      cancellation message used for cancel;
    • wait

      public void wait(long timeout, TimeUnit unit) throws InterruptedException, ExecutionException, TimeoutException
      Description copied from interface: CancellationPoint
      Waits for specified timeout while the process acquired Cancellation point has been finished;
      Specified by:
      wait in interface CancellationPoint
      Parameters:
      timeout - - the time;
      unit - - the unit;
      Throws:
      InterruptedException
      ExecutionException
      TimeoutException
    • close

      public void close()
      Description copied from interface: CancellationPoint
      Closes cancellation point;
      Specified by:
      close in interface AutoCloseable
      Specified by:
      close in interface CancellationPoint