Package jmri.managers

Class AbstractProxyManager<E extends NamedBean>

Type Parameters:
E - the supported type of NamedBean
All Implemented Interfaces:
PropertyChangeListener, EventListener, PropertyChangeFirer, PropertyChangeProvider, SilenceablePropertyChangeProvider, VetoableChangeFirer, VetoableChangeProvider, Manager<E>, Manager.ManagerDataListener<E>, ProxyManager<E>
Direct Known Subclasses:
AbstractProvidingProxyManager, ProxyAnalogIOManager, ProxyMeterManager, ProxyStringIOManager

public abstract class AbstractProxyManager<E extends NamedBean>
extends VetoableChangeSupport
implements ProxyManager<E>, PropertyChangeListener, Manager.ManagerDataListener<E>
Implementation of a Manager that can serves as a proxy for multiple system-specific implementations.

Automatically includes an Internal system, which need not be separately added any more.

Encapsulates access to the "Primary" manager, used by default, which is the first one provided.

Internally, this is done by using an ordered list of all non-Internal managers, plus a separate reference to the internal manager and default manager.