- java.lang.Object
-
- org.praxislive.base.AbstractRoot
-
- org.praxislive.base.AbstractRootContainer
-
- All Implemented Interfaces:
Component
,Container
,Lookup.Provider
,Root
- Direct Known Subclasses:
TFRoot
public abstract class AbstractRootContainer extends AbstractRoot implements Container
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class org.praxislive.base.AbstractRoot
AbstractRoot.Controller, AbstractRoot.Delegate, AbstractRoot.DelegateConfiguration, AbstractRoot.State
-
-
Constructor Summary
Constructors Modifier Constructor Description protected
AbstractRootContainer()
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description protected void
addChild(String id, Component child)
Stream<String>
children()
Get a Stream of the child IDs that this container makes publicly visible.protected void
connect(String component1, String port1, String component2, String port2)
protected void
disconnect(String component1, String port1, String component2, String port2)
ComponentAddress
getAddress(Component child)
Get the address for the provided child component, or null if the component is not a child of this container.Component
getChild(String id)
Get child component with specific ID.Control
getControl(String id)
Get a Control that can handle a Call to the given ID, or null if it does not exist.abstract ComponentInfo
getInfo()
Get the ComponentInfo object for this component.Lookup
getLookup()
Get the Lookup from this Provider.Container
getParent()
Return the Container that is the immediate parent of this Component, or null if this Component is not currently contained within a Component hierarchy.Port
getPort(String id)
Get the Port with the given ID, or null if it does not exist.void
hierarchyChanged()
Notify the component that a change has happened in its component hierarchy.void
parentNotify(Container parent)
Notify the Component that it has been added to the supplied Container, or removed from its parent if the supplied argument is null.protected void
processCall(Call call, PacketRouter router)
Method called to handle every receivedCall
.protected void
registerControl(String id, Control control)
protected Component
removeChild(String id)
protected void
unregisterControl(String id)
-
Methods inherited from class org.praxislive.base.AbstractRoot
activating, attachDelegate, createContext, createController, createRouter, delegateConfig, detachDelegate, findService, getAddress, getExecutionContext, getRootHub, getRouter, getState, initialize, interrupt, invokeLater, setIdle, setRunning, starting, stopping, terminating, update
-
-
-
-
Method Detail
-
getChild
public Component getChild(String id)
Description copied from interface:Container
Get child component with specific ID.
-
children
public Stream<String> children()
Description copied from interface:Container
Get a Stream of the child IDs that this container makes publicly visible. Containers may have hidden children that can be returned fromContainer.getChild(java.lang.String)
but are not listed here. All IDs returned should correspond to valid components, and (if provided) match the implementation ofContainerProtocol
.A Stream is returned allowing flexibility in implementation.
-
getAddress
public ComponentAddress getAddress(Component child)
Description copied from interface:Container
Get the address for the provided child component, or null if the component is not a child of this container.- Specified by:
getAddress
in interfaceContainer
- Parameters:
child
- component- Returns:
- address, or null of component is not a child of this container.
-
getParent
public Container getParent()
Description copied from interface:Component
Return the Container that is the immediate parent of this Component, or null if this Component is not currently contained within a Component hierarchy.
-
parentNotify
public void parentNotify(Container parent) throws VetoException
Description copied from interface:Component
Notify the Component that it has been added to the supplied Container, or removed from its parent if the supplied argument is null. The Component may throw a VetoException if it should not be added to the Container provided. It should also throw this exception if a parent is already set.- Specified by:
parentNotify
in interfaceComponent
- Throws:
VetoException
-
hierarchyChanged
public void hierarchyChanged()
Description copied from interface:Component
Notify the component that a change has happened in its component hierarchy. For example its direct parent or an ancestor has changed. This method will be called after parentNotify() if the result of an immediate parent change.- Specified by:
hierarchyChanged
in interfaceComponent
-
getControl
public Control getControl(String id)
Description copied from interface:Component
Get a Control that can handle a Call to the given ID, or null if it does not exist. Component implementations are free to return a different Control for each ID, a single control to handle any message, or somewhere in between. A null return from this method shall be handled by the Root component by responding with an error message to the sender where required.- Specified by:
getControl
in interfaceComponent
- Returns:
- Control or null
-
getPort
public Port getPort(String id)
Description copied from interface:Component
Get the Port with the given ID, or null if it does not exist.
-
getLookup
public Lookup getLookup()
Description copied from interface:Lookup.Provider
Get the Lookup from this Provider.- Specified by:
getLookup
in interfaceLookup.Provider
- Overrides:
getLookup
in classAbstractRoot
- Returns:
- lookup
-
getInfo
public abstract ComponentInfo getInfo()
Description copied from interface:Component
Get the ComponentInfo object for this component.
-
processCall
protected void processCall(Call call, PacketRouter router)
Description copied from class:AbstractRoot
Method called to handle every receivedCall
. The provided router should be used for all ongoing or return calls.- Specified by:
processCall
in classAbstractRoot
-
addChild
protected final void addChild(String id, Component child) throws VetoException
- Throws:
VetoException
-
connect
protected final void connect(String component1, String port1, String component2, String port2) throws PortConnectionException
- Throws:
PortConnectionException
-
disconnect
protected final void disconnect(String component1, String port1, String component2, String port2)
-
unregisterControl
protected final void unregisterControl(String id)
-
-