Interface CompositeComponent
-
- All Superinterfaces:
Closable
,Decomposeable
,Destroyable
,org.refcodes.mixin.Disposable
,java.io.Flushable
,Flushable
,Initializable
,LifeCycleComponent
,LinkComponent
,Openable
,Pausable
,Resetable
,Resumable
,Startable
,Stoppable
- All Known Subinterfaces:
CompositeComponent.ExtendedCompositeComponent<CTX,CON>
- All Known Implementing Classes:
CompositeComponentImpl
,CompositeComponentImpl.ExtendedCompositeComponentImpl
public interface CompositeComponent extends LifeCycleComponent, LinkComponent, Flushable, Decomposeable, Resetable, org.refcodes.mixin.Disposable
Any composite implementation of the refcodes frameworks should implement thisCompositeComponent
interface so that any therein containedComponent
instances' state change methods are supported by theCompositeComponent
as well and forwarded to theComponent
contained in theCompositeComponent
instance.For implementing sequential, threaded or threaded joined invocation of the therein contained
Component
instances' state change methods (as of theExecutionStrategy
), you may use theComponentUtility
, e.g.ComponentUtility.start(ExecutionStrategy, java.util.Collection)
) or in more seldom cases theCompositeComponent
.A
CompositeComponent
manages a set ofComponent
instances by forwarding the state change requests to the contained elements in case them elements support the according state change method. In case such a state change is not supported by an therein contained element, then the element is just ignored for that state change request.In case of exceptional state, depending on the used
ExecutionStrategy
, either no exception is thrown or the one thrown by the first erroneousComponent
.The
CompositeComponent
supports these interfaces for the according state change requests, depending on the therein containedComponent
's and them implemented interfaces, the according methods are delegated to all implementingComponent
s:Initializable
Startable
Pausable
Resumable
Stoppable
Destroyable
Decomposeable
Flushable
-
-
Nested Class Summary
Nested Classes Modifier and Type Interface Description static interface
CompositeComponent.ExtendedCompositeComponent<CTX,CON>
TheCompositeComponent.ExtendedCompositeComponent
provides extended functionality to theCompositeComponent
's functionality by including extendedOpenable
functionality (ConnectionOpenable
) and extendsInitializable
functionality (Configurable
).-
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.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
-
-
Method Summary
-
Methods inherited from interface org.refcodes.component.Closable
close, closeIn, closeQuietly, closeUnchecked
-
Methods inherited from interface org.refcodes.component.Decomposeable
decompose
-
Methods inherited from interface org.refcodes.component.Destroyable
destroy
-
Methods inherited from interface org.refcodes.component.Flushable
flush, flushUnchecked, isFlushable
-
Methods inherited from interface org.refcodes.component.Initializable
initialize, initializeUnchecked
-
Methods inherited from interface org.refcodes.component.Openable
open, openUnchecked
-
Methods inherited from interface org.refcodes.component.Pausable
pause, pauseUnchecked
-
Methods inherited from interface org.refcodes.component.Resumable
resume, resumeUnchecked
-
Methods inherited from interface org.refcodes.component.Startable
start, startUnchecked
-
Methods inherited from interface org.refcodes.component.Stoppable
stop, stopUnchecked
-
-