Interface ComponentComposite

All Superinterfaces:
Closable, Decomposable, Destroyable, org.refcodes.mixin.Disposable, Flushable, Flushable, Initializable, LifecycleComponent, LinkComponent, Openable, Pausable, org.refcodes.mixin.Resetable, Resumable, Startable, Stoppable
All Known Subinterfaces:
ComponentComposite.ExtendedComponentComposite<CTX,CON>
All Known Implementing Classes:
AbstractComponentComposite, AbstractComponentComposite.ExtendedCompositeComponentImpl

public interface ComponentComposite extends LifecycleComponent, LinkComponent, Flushable, Decomposable, org.refcodes.mixin.Resetable, org.refcodes.mixin.Disposable
Any composite implementation of the refcodes frameworks should implement this ComponentComposite interface so that any therein contained Component instances' state change methods are supported by the ComponentComposite as well and forwarded to the Component contained in the ComponentComposite instance.

For implementing sequential, threaded or threaded joined invocation of the therein contained Component instances' state change methods (as of the ExecutionStrategy), you may use the ComponentUtility, e.g. ComponentUtility.start(ExecutionStrategy, java.util.Collection)) or in more seldom cases the ComponentComposite.

A ComponentComposite manages a set of Component 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 erroneous Component.

The ComponentComposite supports these interfaces for the according state change requests, depending on the therein contained Component's and them implemented interfaces, the according methods are delegated to all implementing Components:

Initializable Startable Pausable Resumable Stoppable Destroyable Decomposable Flushable