- java.lang.Object
-
- org.refcodes.component.LinkAutomatonImpl
-
- All Implemented Interfaces:
Closable
,Closable.CloseAutomaton
,ClosedAccessor
,ConnectionStatusAccessor
,LinkComponent
,LinkComponent.LinkAutomaton
,Openable
,Openable.OpenAutomaton
,OpenedAccessor
public class LinkAutomatonImpl extends Object implements LinkComponent.LinkAutomaton
This class implements aLifecycleComponent.LifecycleAutomaton
.
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface org.refcodes.component.Closable
Closable.CloseAutomaton, Closable.CloseBuilder<B extends Closable.CloseBuilder<B>>
-
Nested classes/interfaces inherited from interface org.refcodes.component.ClosedAccessor
ClosedAccessor.ClosedMutator, ClosedAccessor.ClosedProperty
-
Nested classes/interfaces inherited from interface org.refcodes.component.ConnectionStatusAccessor
ConnectionStatusAccessor.ConnectionStatusMutator, ConnectionStatusAccessor.ConnectionStatusProperty
-
Nested classes/interfaces inherited from interface org.refcodes.component.LinkComponent
LinkComponent.LinkAutomaton, LinkComponent.LinkComponentBuilder<B extends LinkComponent.LinkComponentBuilder<B>>
-
Nested classes/interfaces inherited from interface org.refcodes.component.Openable
Openable.OpenAutomaton, Openable.OpenBuilder<B extends Openable.OpenBuilder<B>>
-
Nested classes/interfaces inherited from interface org.refcodes.component.OpenedAccessor
OpenedAccessor.OpenedMutator, OpenedAccessor.OpenedProperty
-
-
Field Summary
Fields Modifier and Type Field Description protected LinkComponent
_connectionComponent
-
Constructor Summary
Constructors Constructor Description LinkAutomatonImpl()
Empty constructor, suchLifecycleComponent.LifecycleAutomaton
cannot do much more than decline the variousLifecycleStatus
states for you.LinkAutomatonImpl(LinkComponent aConnectionComponent)
This constructor uses aLifecycleStatus
for wrapping it inside theLinkAutomatonImpl
, making sure of obeying and guarding the correctLifecycleStatus
's order ofLifecycleStatus
states for you.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
close()
Closes the component's connection(s).ConnectionStatus
getConnectionStatus()
Retrieves theConnectionStatus
property from the property.boolean
isClosable()
Determines whether the component's connection(s) may get closed.boolean
isClosed()
Retrieves the is-closed status.boolean
isOpenable()
Determines whether the component's connection(s) may get opened.boolean
isOpened()
Retrieves the is-opened property from the opened property.void
open()
Open the component's connection(s).-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.refcodes.component.Closable
closeIn, closeQuietly, closeUnchecked
-
Methods inherited from interface org.refcodes.component.Openable
openUnchecked
-
-
-
-
Field Detail
-
_connectionComponent
protected LinkComponent _connectionComponent
-
-
Constructor Detail
-
LinkAutomatonImpl
public LinkAutomatonImpl()
Empty constructor, suchLifecycleComponent.LifecycleAutomaton
cannot do much more than decline the variousLifecycleStatus
states for you.
-
LinkAutomatonImpl
public LinkAutomatonImpl(LinkComponent aConnectionComponent)
This constructor uses aLifecycleStatus
for wrapping it inside theLinkAutomatonImpl
, making sure of obeying and guarding the correctLifecycleStatus
's order ofLifecycleStatus
states for you.- Parameters:
aConnectionComponent
- The component to be guarded regarding the correct declination of theLifecycleStatus
states.
-
-
Method Detail
-
getConnectionStatus
public ConnectionStatus getConnectionStatus()
Retrieves theConnectionStatus
property from the property. Determines in whichConnectionStatus
status a component is in.- Specified by:
getConnectionStatus
in interfaceConnectionStatusAccessor
- Returns:
- Returns the
ConnectionStatus
property stored by the property.
-
isOpenable
public boolean isOpenable()
Determines whether the component's connection(s) may get opened.- Specified by:
isOpenable
in interfaceOpenable.OpenAutomaton
- Returns:
- True if
Openable.open()
is possible.
-
open
public void open() throws IOException
Open the component's connection(s).- Specified by:
open
in interfaceOpenable
- Throws:
IOException
- Thrown in case opening or accessing an open line (connection, junction, link) caused problems.
-
isOpened
public boolean isOpened()
Retrieves the is-opened property from the opened property. Determines whether the component's connection is opened. A component's connection is opened after being opened as ofOpenable.open()
orConnectionOpenable.open(Object)
.- Specified by:
isOpened
in interfaceConnectionStatusAccessor
- Specified by:
isOpened
in interfaceOpenedAccessor
- Returns:
- True in case of being opened (returns the is-opened property stored by the opened property).
-
isClosable
public boolean isClosable()
Determines whether the component's connection(s) may get closed.- Specified by:
isClosable
in interfaceClosable.CloseAutomaton
- Returns:
- True if
Closable.close()
is possible.
-
isClosed
public boolean isClosed()
Retrieves the is-closed status. Determines whether the component's connection is closed. A component's connection is closed after being closed as ofClosable.close()
.- Specified by:
isClosed
in interfaceClosedAccessor
- Returns:
- True in case of being closed.
-
close
public void close() throws IOException
Closes the component's connection(s). 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).- Specified by:
close
in interfaceClosable
- Throws:
IOException
- thrown in case closing failed.
-
-