jmri.managers
Class AbstractManager

Show UML class diagram
java.lang.Object
  extended by jmri.managers.AbstractManager
All Implemented Interfaces:
PropertyChangeListener, EventListener, Manager
Direct Known Subclasses:
AbstractAudioManager, AbstractLightManager, AbstractMemoryManager, AbstractReporterManager, AbstractSensorManager, AbstractSignalHeadManager, AbstractTurnoutManager, BlockManager, DefaultCatalogTreeManager, DefaultConditionalManager, DefaultIdTagManager, DefaultLogixManager, DefaultRailComManager, DefaultRouteManager, DefaultSignalGroupManager, DefaultSignalMastManager, DefaultSignalSystemManager, EcosLocoAddressManager, LayoutBlockManager, NamedBeanHandleManager, OBlockManager, SectionManager, TransitManager, WarrantManager

public abstract class AbstractManager
extends Object
implements Manager, PropertyChangeListener

Abstract partial implementation for all Manager-type classes.

Note that this does not enforce any particular system naming convention at the present time. They're just names...


Field Summary
protected  Hashtable<String,NamedBean> _tsys
           
protected  Hashtable<String,NamedBean> _tuser
           
(package private) static org.slf4j.Logger log
           
(package private)  PropertyChangeSupport pcs
           
 
Fields inherited from interface jmri.Manager
AUDIO, BLOCKBOSS, BLOCKS, CONDITIONALS, ENTRYEXIT, IDTAGS, LAYOUTBLOCKS, LIGHTS, LOGIXS, MEMORIES, OBLOCKS, PANELFILES, REPORTERS, ROUTES, SECTIONS, SENSORGROUPS, SENSORS, SIGNALGROUPS, SIGNALHEADS, SIGNALMASTLOGICS, SIGNALMASTS, TIMEBASE, TRANSITS, TURNOUTS, WARRANTS
 
Constructor Summary
AbstractManager()
           
 
Method Summary
 void addPropertyChangeListener(PropertyChangeListener l)
          At a minimum, subclasses must notify of changes to the list of available NamedBeans; they may have other properties that will also notify.
 void deregister(NamedBean s)
          Forget a NamedBean Object created outside the manager.
 void dispose()
          Free resources when no longer used.
protected  void firePropertyChange(String p, Object old, Object n)
           
 NamedBean getBeanBySystemName(String systemName)
          Locate an instance based on a system name.
 NamedBean getBeanByUserName(String userName)
          Locate an instance based on a user name.
protected  Object getInstanceBySystemName(String systemName)
          Locate an instance based on a system name.
protected  Object getInstanceByUserName(String userName)
          Locate an instance based on a user name.
 NamedBean getNamedBean(String name)
          Locate an instance based on a name.
 List<NamedBean> getNamedBeanList()
           
 String[] getSystemNameArray()
           
 List<String> getSystemNameList()
           
abstract  int getXMLOrder()
           
 String makeSystemName(String s)
           
 void propertyChange(PropertyChangeEvent e)
          The PropertyChangeListener interface in this class is intended to keep track of user name changes to individual NamedBeans.
 void register(NamedBean s)
          Remember a NamedBean Object created outside the manager.
protected  void registerSelf()
          By default, register this manager to store as configuration information.
 void removePropertyChangeListener(PropertyChangeListener l)
          At a minimum, subclasses must notify of changes to the list of available NamedBeans; they may have other properties that will also notify.
 char systemLetter()
          Deprecated. 2.9.5 Use getSystemPrefix
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface jmri.Manager
getSystemPrefix, typeLetter
 

Field Detail

_tsys

protected Hashtable<String,NamedBean> _tsys

_tuser

protected Hashtable<String,NamedBean> _tuser

pcs

PropertyChangeSupport pcs

log

static org.slf4j.Logger log
Constructor Detail

AbstractManager

public AbstractManager()
Method Detail

registerSelf

protected void registerSelf()
By default, register this manager to store as configuration information. Override to change that.


getXMLOrder

public abstract int getXMLOrder()
Specified by:
getXMLOrder in interface Manager

makeSystemName

public String makeSystemName(String s)
Specified by:
makeSystemName in interface Manager
Returns:
A system name from a user input, typically a number.

systemLetter

@Deprecated
public char systemLetter()
Deprecated. 2.9.5 Use getSystemPrefix

Provide access to deprecated method temporarilly

Specified by:
systemLetter in interface Manager
Returns:
The system-specific prefix letter for a specific implementation

dispose

public void dispose()
Description copied from interface: Manager
Free resources when no longer used. Specifically, remove all references to and from this object, so it can be garbage-collected.

Specified by:
dispose in interface Manager

getInstanceBySystemName

protected Object getInstanceBySystemName(String systemName)
Locate an instance based on a system name. Returns null if no instance already exists. This is intended to be used by concrete classes to implement their getBySystemName method. We can't call it that here because Java doesn't have polymorphic return types.

Returns:
requested Turnout object or null if none exists

getInstanceByUserName

protected Object getInstanceByUserName(String userName)
Locate an instance based on a user name. Returns null if no instance already exists. This is intended to be used by concrete classes to implement their getBySystemName method. We cant call it that here because Java doesn't have polymorphic return types.

Returns:
requested Turnout object or null if none exists

getBeanBySystemName

public NamedBean getBeanBySystemName(String systemName)
Locate an instance based on a system name. Returns null if no instance already exists.

Specified by:
getBeanBySystemName in interface Manager
Parameters:
systemName - System Name of the required NamedBean
Returns:
requested NamedBean object or null if none exists

getBeanByUserName

public NamedBean getBeanByUserName(String userName)
Locate an instance based on a user name. Returns null if no instance already exists.

Specified by:
getBeanByUserName in interface Manager
Parameters:
userName - System Name of the required NamedBean
Returns:
requested NamedBean object or null if none exists

getNamedBean

public NamedBean getNamedBean(String name)
Locate an instance based on a name. Returns null if no instance already exists.

Specified by:
getNamedBean in interface Manager
Parameters:
name - System Name of the required NamedBean
Returns:
requested NamedBean object or null if none exists

register

public void register(NamedBean s)
Remember a NamedBean Object created outside the manager.

The non-system-specific SignalHeadManagers use this method extensively.

Specified by:
register in interface Manager

deregister

public void deregister(NamedBean s)
Forget a NamedBean Object created outside the manager.

The non-system-specific RouteManager uses this method.

Specified by:
deregister in interface Manager

propertyChange

public void propertyChange(PropertyChangeEvent e)
The PropertyChangeListener interface in this class is intended to keep track of user name changes to individual NamedBeans. It is not completely implemented yet. In particular, listeners are not added to newly registered objects.

Specified by:
propertyChange in interface PropertyChangeListener

getSystemNameArray

public String[] getSystemNameArray()
Specified by:
getSystemNameArray in interface Manager

getSystemNameList

public List<String> getSystemNameList()
Specified by:
getSystemNameList in interface Manager

getNamedBeanList

public List<NamedBean> getNamedBeanList()
Specified by:
getNamedBeanList in interface Manager

addPropertyChangeListener

public void addPropertyChangeListener(PropertyChangeListener l)
Description copied from interface: Manager
At a minimum, subclasses must notify of changes to the list of available NamedBeans; they may have other properties that will also notify.

Specified by:
addPropertyChangeListener in interface Manager

removePropertyChangeListener

public void removePropertyChangeListener(PropertyChangeListener l)
Description copied from interface: Manager
At a minimum, subclasses must notify of changes to the list of available NamedBeans; they may have other properties that will also notify.

Specified by:
removePropertyChangeListener in interface Manager

firePropertyChange

protected void firePropertyChange(String p,
                                  Object old,
                                  Object n)


Copyright © 1997-2013 JMRI Community.
JMRI, DecoderPro, PanelPro, SoundPro, DispatcherPro and associated logos are our trademarks.

Additional information on copyright, trademarks and licenses is linked here.
Site hosted by: Get JMRI Model Railroad Interface at SourceForge.net. Fast, secure and Free Open Source software downloads