Interface ClosableHandle<H>

Type Parameters:
H - The type of the handle.
All Known Subinterfaces:
ClosableHandle.CloseAutomatonHandle<H>, ConnectionComponentHandle<H,CON>, ConnectionComponentHandle.ConnectionAutomatonHandle<H,CON>, LinkComponentHandle<H>, LinkComponentHandle.LinkAutomatonHandle<H>

public interface ClosableHandle<H>
The ClosableHandle interface defines those methods related to the handle based close life-cycle.

The handle reference requires the Closable interface to be implemented.

  • Nested Class Summary

    Nested Classes
    Modifier and Type
    Interface
    Description
    static interface 
    The ClosableHandle.CloseAutomatonHandle interface defines those methods related to the handle based close life-cycle.
  • Method Summary

    Modifier and Type
    Method
    Description
    void
    close(H aHandle)
    Closes or pre-closes (flush) the component identified by the given handle.
    default void
    closeUnchecked(H aHandle)
    Closes the component by calling close(Object) without you to require catching an IOException.
    boolean
    hasClosable(H aHandle)
    Determines whether the handle reference is closable by implementing the Closable interface.
  • Method Details

    • hasClosable

      boolean hasClosable(H aHandle)
      Determines whether the handle reference is closable by implementing the Closable interface.
      Parameters:
      aHandle - The handle to test whether the reference provides the according functionality.
      Returns:
      True in case the reference provides the according functionality.
      Throws:
      UnknownHandleRuntimeException - in case the handle is unknown.
    • close

      void close(H aHandle) throws IOException
      Closes or pre-closes (flush) the component identified by the given handle. Throws a IOException as upon close we may have to do things like flushing buffers which can fail (and would otherwise fail unhandled or even worse unnoticed).
      Parameters:
      aHandle - The handle identifying the component.
      Throws:
      IOException - Thrown in case closing or pre-closing (flushing) fails.
      UnknownHandleRuntimeException - in case the given handle is unknown.
      UnsupportedHandleOperationRuntimeException - in case the reference of the handle does not support the requested operation.
      IllegalHandleStateChangeRuntimeException - Thrown in case a state change is not possible due to the current state the referenced component is in.
    • closeUnchecked

      default void closeUnchecked(H aHandle)
      Closes the component by calling close(Object) without you to require catching an IOException.
      Parameters:
      aHandle - The handle identifying the component.
      Throws:
      org.refcodes.exception.IORuntimeException - encapsulates the aCause and is thrown upon encountering a IOException exception