Package jmri

Interface Manager<E extends NamedBean>

Type Parameters:
E - the type of NamedBean supported by this manager
All Superinterfaces:
PropertyChangeProvider, SilenceablePropertyChangeProvider, VetoableChangeProvider
All Known Subinterfaces:
AnalogIOManager, AudioManager, CatalogTreeManager, ConditionalManager, IdTagManager, LightManager, LogixManager, MemoryManager, MeterManager, ProvidingManager<E>, ProxyManager<B>, RailComManager, ReporterManager, RouteManager, SensorManager, SignalGroupManager, SignalHeadManager, SignalMastLogicManager, SignalMastManager, SignalSystemManager, StringIOManager, TurnoutManager, VariableLightManager
All Known Implementing Classes:
AbstractAnalogIOManager, AbstractAudioManager, AbstractLightManager, AbstractManager, AbstractMemoryManager, AbstractMeterManager, AbstractProvidingProxyManager, AbstractProxyManager, AbstractReporterManager, AbstractSensorManager, AbstractSignalHeadManager, AbstractStringIOManager, AbstractTurnoutManager, AcelaLightManager, AcelaSensorManager, AcelaTurnoutManager, BlockManager, CbusLightManager, CbusReporterManager, CbusSensorManager, CbusTurnoutManager, ConcentratorReporterManager, ConcentratorSensorManager, Dcc4PcReporterManager, Dcc4PcSensorManager, DCCppLightManager, DCCppSensorManager, DCCppTurnoutManager, DefaultAudioManager, DefaultCatalogTreeManager, DefaultConditionalManager, DefaultIdTagManager, DefaultLogixManager, DefaultMemoryManager, DefaultRailComManager, DefaultRouteManager, DefaultSignalGroupManager, DefaultSignalMastLogicManager, DefaultSignalMastManager, DefaultSignalSystemManager, DefaultVariableLightManager, EasyDccTurnoutManager, EcosLocoAddressManager, EcosReporterManager, EcosSensorManager, EcosTurnoutManager, EliteXNetTurnoutManager, EntryExitPairs, InternalAnalogIOManager, InternalLightManager, InternalMeterManager, InternalReporterManager, InternalSensorManager, InternalStringIOManager, InternalTurnoutManager, IpocsLightManager, IpocsSensorManager, IpocsTurnoutManager, JMRIClientLightManager, JMRIClientReporterManager, JMRIClientSensorManager, JMRIClientTurnoutManager, LayoutBlockManager, LnLightManager, LnReporterManager, LnSensorManager, LnSensorManager, LnTurnoutManager, MarklinSensorManager, MarklinTurnoutManager, MqttLightManager, MqttSensorManager, MqttTurnoutManager, MrcTurnoutManager, Mx1TurnoutManager, NamedBeanHandleManager, NceLightManager, NceSensorManager, NceTurnoutManager, OBlockManager, OlcbLightManager, OlcbSensorManager, OlcbTurnoutManager, ProxyAnalogIOManager, ProxyIdTagManager, ProxyLightManager, ProxyMeterManager, ProxyReporterManager, ProxySensorManager, ProxyStringIOManager, ProxyTurnoutManager, RaspberryPiSensorManager, RaspberryPiTurnoutManager, RfidReporterManager, RfidSensorManager, RpsReporterManager, RpsSensorManager, SectionManager, SerialLightManager, SerialLightManager, SerialLightManager, SerialLightManager, SerialLightManager, SerialLightManager, SerialSensorManager, SerialSensorManager, SerialSensorManager, SerialSensorManager, SerialSensorManager, SerialSensorManager, SerialTurnoutManager, SerialTurnoutManager, SerialTurnoutManager, SerialTurnoutManager, SerialTurnoutManager, SerialTurnoutManager, SerialTurnoutManager, SpecificLightManager, SpecificLightManager, SpecificLightManager, SpecificLightManager, SpecificSensorManager, SpecificSensorManager, SpecificSensorManager, SpecificSensorManager, SprogTurnoutManager, SRCPSensorManager, SRCPTurnoutManager, StandaloneReporterManager, StandaloneSensorManager, TamsSensorManager, TamsTurnoutManager, TransitManager, TranspondingTagManager, UsbLightManager, WarrantManager, XBeeLightManager, XBeeSensorManager, XBeeTurnoutManager, XNetLightManager, XNetSensorManager, XNetTurnoutManager, XpaTurnoutManager, Z21ReporterManager, Z21SensorManager, Z21XNetTurnoutManager, ZTC611XNetTurnoutManager

public interface Manager<E extends NamedBean>
extends SilenceablePropertyChangeProvider, VetoableChangeProvider
Basic interface for access to named, managed objects.

NamedBean objects represent various real elements, and have a "system name" and perhaps "user name". A specific Manager object provides access to them by name, and serves as a factory for new objects.

Right now, this interface just contains the members needed by InstanceManager to handle managers for more than one system.

Although they are not defined here because their return type differs, any specific Manager subclass provides "get" methods to locate specific objects, and a "new" method to create a new one via the Factory pattern. The "get" methods will return an existing object or null, and will never create a new object. The "new" method will log a warning if an object already exists with that system name.

add/remove PropertyChangeListener methods are provided. At a minimum, subclasses must notify of changes to the list of available NamedBeans; they may have other properties that will also notify.

Probably should have been called NamedBeanManager


This file is part of JMRI.

JMRI is free software; you can redistribute it and/or modify it under the terms of version 2 of the GNU General Public License as published by the Free Software Foundation. See the "COPYING" file for a copy of this license.

JMRI is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.