Package com.complexible.common.cancellation

# 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

- ## Field Summary

  ### Fields inherited from interface com.complexible.common.cancellation.CancelCheck

  `DUMMY`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `DelegatingCancellationPoint(CancellationPoint thePoint)`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `void`
  `cancel()`
  Cancel current point;
  `void`
  `cancel(String theCause)`
  Cancels the execution of this computation.
  `void`
  `check()`
  Check if cancellation point is valid; It throws an exception in case if the cancellation point has been canceled.
  `void`
  `close()`
  Closes cancellation point;
  `String`
  `getCancellationMessage()`
  Returns null if the process has not been cancelled, otherwise the cancellation cause (if set).
  `String`
  `getProcessDescription()`
  Returns the description of the process that this cancellation point represents.
  `boolean`
  `isCancelled()`
  `void`
  `wait(long timeout, TimeUnit unit)`
  Waits for specified timeout while the process acquired Cancellation point has been finished;

  ### Methods inherited from class java.lang.Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

  ### Methods inherited from interface com.complexible.common.cancellation.CancelCheck

  `check, throwIfCancelled`

- ## 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`