Package org.refcodes.component
Class CompositeComponentImpl<C extends Component>
- java.lang.Object
-
- org.refcodes.component.CompositeComponentImpl<C>
-
- Type Parameters:
C- The type of theComponentsupported by theCompositeComponentImpl.
- All Implemented Interfaces:
java.io.Flushable,Closable,CompositeComponent,Decomposeable,Destroyable,Flushable,Initializable,LifeCycleComponent,LinkComponent,Openable,Pausable,Resetable,Resumable,Startable,Stoppable,org.refcodes.mixin.Disposable
- Direct Known Subclasses:
CompositeComponentImpl.ExtendedCompositeComponentImpl
public class CompositeComponentImpl<C extends Component> extends java.lang.Object implements CompositeComponent
TheCompositeComponentImplis an implementation of theCompositeComponent. To make sure that the state change requests you require are supported by the managedComponentinstances, specify the according typeCas generic type argument.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classCompositeComponentImpl.ExtendedCompositeComponentImpl<C extends Component,CTX,CON>TheCompositeComponentImpl.ExtendedCompositeComponentImplis an implementation of theCompositeComponent.ExtendedCompositeComponent.-
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.CompositeComponent
CompositeComponent.ExtendedCompositeComponent<CTX,CON>
-
Nested classes/interfaces inherited from interface org.refcodes.component.Decomposeable
Decomposeable.DecomposeAutomaton
-
Nested classes/interfaces inherited from interface org.refcodes.component.Destroyable
Destroyable.DestroyAutomaton
-
Nested classes/interfaces inherited from interface org.refcodes.mixin.Disposable
org.refcodes.mixin.Disposable.Disposedable
-
Nested classes/interfaces inherited from interface org.refcodes.component.Flushable
Flushable.FlushBuilder<B extends Flushable.FlushBuilder<B>>
-
Nested classes/interfaces inherited from interface org.refcodes.component.Initializable
Initializable.InitializeAutomaton, Initializable.InitializeBuilder<B extends Initializable.InitializeBuilder<B>>, Initializable.UncheckedInitializable
-
Nested classes/interfaces inherited from interface org.refcodes.component.LifeCycleComponent
LifeCycleComponent.LifeCycleAutomaton, LifeCycleComponent.UncheckedLifeCycleComponent
-
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.Pausable
Pausable.PauseAutomaton, Pausable.PauseBuilder<B extends Pausable.PauseBuilder<B>>, Pausable.UncheckedPausable
-
Nested classes/interfaces inherited from interface org.refcodes.component.Resumable
Resumable.ResumeAutomaton, Resumable.ResumeBuilder<B extends Resumable.ResumeBuilder<B>>, Resumable.UncheckedResumable
-
Nested classes/interfaces inherited from interface org.refcodes.component.Startable
Startable.StartAutomaton, Startable.StartBuilder<B extends Startable.StartBuilder<B>>, Startable.UncheckedStartable
-
Nested classes/interfaces inherited from interface org.refcodes.component.Stoppable
Stoppable.StopAutomaton, Stoppable.StopBuilder<B extends Stoppable.StopBuilder<B>>, Stoppable.UncheckedStoppable
-
-
Constructor Summary
Constructors Constructor Description CompositeComponentImpl(C... aComponents)Creates aCompositeComponentImplcontaining the provided components.CompositeComponentImpl(java.util.Collection<C> aComponents)Creates aCompositeComponentImplcontaining the provided components.CompositeComponentImpl(org.refcodes.controlflow.ExecutionStrategy aStrategy, C... aComponents)Creates aCompositeComponentImplcontaining the provided components.CompositeComponentImpl(org.refcodes.controlflow.ExecutionStrategy aStrategy, java.util.Collection<C> aComponents)Creates aCompositeComponentImplcontaining the provided components.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidclose()Closes the component's connection(s).voiddecompose()Decomposes the component.voiddestroy()Destroys the component.voiddispose()voidflush()protected java.util.Set<C>getComponents()Provides access to theComponentinstances.protected org.refcodes.controlflow.ExecutionStrategygetExecutionStrategy()Provides access to theExecutionStrategy.voidinitialize()Initialize the component.voidopen()Open the component's connection(s).voidpause()Pauses the component.voidreset()Resets the component.voidresume()Resumes the component.voidstart()Starts the component.voidstop()Stops the component.-
Methods inherited from interface org.refcodes.component.Closable
closeIn, closeQuietly, closeUnchecked
-
Methods inherited from interface org.refcodes.component.Flushable
flushUnchecked, isFlushable
-
Methods inherited from interface org.refcodes.component.Initializable
initializeUnchecked
-
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.Openable
openUnchecked
-
Methods inherited from interface org.refcodes.component.Pausable
pauseUnchecked
-
Methods inherited from interface org.refcodes.component.Resumable
resumeUnchecked
-
Methods inherited from interface org.refcodes.component.Startable
startUnchecked
-
Methods inherited from interface org.refcodes.component.Stoppable
stopUnchecked
-
-
-
-
Constructor Detail
-
CompositeComponentImpl
public CompositeComponentImpl(java.util.Collection<C> aComponents)
Creates aCompositeComponentImplcontaining the provided components. TheExecutionStrategy.JOINExecutionStrategyis used by default.- Parameters:
aComponents- The components to be managed by theCompositeComponentImpl.
-
CompositeComponentImpl
public CompositeComponentImpl(org.refcodes.controlflow.ExecutionStrategy aStrategy, java.util.Collection<C> aComponents)Creates aCompositeComponentImplcontaining the provided components.- Parameters:
aStrategy- TheExecutionStrategyfor executing the state change requests.aComponents- The components to be managed by theCompositeComponentImpl.
-
CompositeComponentImpl
@SafeVarargs public CompositeComponentImpl(C... aComponents)
Creates aCompositeComponentImplcontaining the provided components. TheExecutionStrategy.JOINExecutionStrategyis used by default.- Parameters:
aComponents- The components to be managed by theCompositeComponentImpl.
-
CompositeComponentImpl
@SafeVarargs public CompositeComponentImpl(org.refcodes.controlflow.ExecutionStrategy aStrategy, C... aComponents)Creates aCompositeComponentImplcontaining the provided components.- Parameters:
aStrategy- TheExecutionStrategyfor executing the state change requests.aComponents- The components to be managed by theCompositeComponentImpl.
-
-
Method Detail
-
flush
public void flush() throws OpenException- Specified by:
flushin interfacejava.io.Flushable- Specified by:
flushin interfaceFlushable- Throws:
OpenException
-
decompose
public void decompose()
Decomposes the component. External resources might get deleted (such as files or DB schemas)!- Specified by:
decomposein interfaceDecomposeable
-
destroy
public void destroy()
Destroys the component. External resources might stay untouched! This should always be possible and must not throw any exception. In case aComponenthas been destroyed, then invoking any of thatComponentinstance's methods (except theDestroyable.destroy()method) must throw anIllegalStateExceptionas by definition a once destroyedComponentis in the state of being destroyed which is irreversible.- Specified by:
destroyin interfaceDestroyable
-
stop
public void stop() throws StopExceptionStops the component.- Specified by:
stopin interfaceStoppable- Throws:
StopException- Thrown in case stopping fails.
-
resume
public void resume() throws ResumeExceptionResumes the component.- Specified by:
resumein interfaceResumable- Throws:
ResumeException- Thrown in case resuming fails.
-
pause
public void pause() throws PauseExceptionPauses the component.- Specified by:
pausein interfacePausable- Throws:
PauseException- in case pausing fails.
-
start
public void start() throws StartExceptionStarts the component.- Specified by:
startin interfaceStartable- Throws:
StartException- Thrown in case starting fails.
-
initialize
public void initialize() throws InitializeExceptionInitialize the component.- Specified by:
initializein interfaceInitializable- Throws:
InitializeException- Thrown in case initializing fails.
-
reset
public void reset()
Resets the component. No exception is thrown as decomposition must work always!
-
open
public void open() throws OpenExceptionOpen the component's connection(s).- Specified by:
openin interfaceOpenable- Throws:
OpenException- Thrown in case opening or accessing an open line (connection, junction, link) caused problems.
-
close
public void close()
Closes 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).
-
dispose
public void dispose()
- Specified by:
disposein interfaceorg.refcodes.mixin.Disposable
-
getExecutionStrategy
protected org.refcodes.controlflow.ExecutionStrategy getExecutionStrategy()
Provides access to theExecutionStrategy.- Returns:
- The
ExecutionStrategybeing set.
-
-