- 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
Modifier and TypeInterfaceDescriptionstatic interface
TheClosableHandle.CloseAutomatonHandle
interface defines those methods related to the handle based close life-cycle. -
Method Summary
Modifier and TypeMethodDescriptionvoid
Closes or pre-closes (flush) the component identified by the given handle.default void
closeUnchecked
(H aHandle) Closes the component by callingclose(Object)
without you to require catching anIOException
.boolean
hasClosable
(H aHandle) Determines whether the handle reference is closable by implementing theClosable
interface.
-
Method Details
-
hasClosable
Determines whether the handle reference is closable by implementing theClosable
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, UnknownHandleRuntimeException, UnsupportedHandleOperationRuntimeException, IllegalHandleStateChangeRuntimeException Closes or pre-closes (flush) the component identified by the given handle. Throws aIOException
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
Closes the component by callingclose(Object)
without you to require catching anIOException
.- Parameters:
aHandle
- The handle identifying the component.- Throws:
org.refcodes.exception.IORuntimeException
- encapsulates the cause and is thrown upon encountering aIOException
exception
-