Package org.refcodes.component
Interface Closable
-
- All Known Subinterfaces:
BidirectionalConnectionComponent<INPUT,OUTPUT>,BidirectionalConnectionComponent.BidirectionalConnectionAutomaton<INPUT,OUTPUT>,Closable.CloseAutomaton,CompositeComponent,CompositeComponent.ExtendedCompositeComponent<CTX,CON>,ConnectableComponent,ConnectableComponent.ConnectableAutomaton,ConnectionComponent<CON>,ConnectionComponent.ConnectionAutomaton<CON>,ConnectionComponent.ConnectionComponentBuilder<CON,B>,LinkComponent,LinkComponent.LinkAutomaton,LinkComponent.LinkComponentBuilder<B>
- All Known Implementing Classes:
AbstractConnectableAutomaton,AbstractDeviceAutomaton,CompositeComponentImpl,CompositeComponentImpl.ExtendedCompositeComponentImpl,ConnectionAutomatonImpl,DeviceAutomatonImpl
public interface ClosableThis mixin might be implemented by a component in order to provide closing connection(s) facilities.
-
-
Nested Class Summary
Nested Classes Modifier and Type Interface Description static interfaceClosable.CloseAutomatonTheClosable.CloseAutomatoninterface defines those methods related to the closing of connection(s) life-cycle.static interfaceClosable.CloseBuilder<B extends Closable.CloseBuilder<B>>To enable theClosablefunctionality to be invoked in a builder chain.
-
Method Summary
All Methods Instance Methods Abstract Methods Default Methods Modifier and Type Method Description voidclose()Closes the component's connection(s).default voidcloseIn(int aCloseInMillis)Tries to close the component's connection(s) after the given time in milliseconds.default voidcloseQuietly()Tries to close the component's connection(s).default voidcloseUnchecked()Closes the component by callingclose()without you to require catching anCloseException.
-
-
-
Method Detail
-
close
void close() throws CloseExceptionCloses the component's connection(s). Throws aCloseExceptionas upon close we may have to do things like flushing buffers which can fail (and would otherwise fail unhandled or even worse unnoticed).- Throws:
CloseException- in case closing or pre-closing (flushing) fails.
-
closeUnchecked
default void closeUnchecked()
Closes the component by callingclose()without you to require catching anCloseException.- Throws:
org.refcodes.exception.HiddenException- encapsulates the cause and is thrown upon encountering aCloseExceptionexception
-
closeQuietly
default void closeQuietly()
Tries to close the component's connection(s). Ignores any problems which normally would be reported by theclose()method with an according exception. The default implementation tries to invoke a "flush()" in case the implementing instance implements theFlushableinterface before invokingclose(). Additionally the default implementation triesIoRetryCount.NORMnumber of times to invokeclose()till a timeout ofIoTimeout.NORMis reached. In any case this method will return quietly without throwing any exception.
-
closeIn
default void closeIn(int aCloseInMillis)
Tries to close the component's connection(s) after the given time in milliseconds. This method doesn't throw an exception as it immediately returns and closes after the given time expired. In case of an exception it will be wrapped in aHiddenException. Use (if implemented)ClosedAccessor.isClosed()to finally determine whether the close operation succeeded.- Parameters:
aCloseInMillis- The time in milliseconds to pass tillclose()is called.
-
-