jmri.managers
Class AbstractSensorManager

Show UML class diagram
java.lang.Object
  extended by jmri.managers.AbstractManager
      extended by jmri.managers.AbstractSensorManager
All Implemented Interfaces:
PropertyChangeListener, EventListener, Manager, SensorManager
Direct Known Subclasses:
AcelaSensorManager, CbusSensorManager, EcosSensorManager, InternalSensorManager, LnSensorManager, NceSensorManager, RpsSensorManager, SerialSensorManager, SerialSensorManager, SerialSensorManager, SerialSensorManager, SerialSensorManager, SerialSensorManager, XNetSensorManager

public abstract class AbstractSensorManager
extends AbstractManager
implements SensorManager

Abstract base implementation of the SensorManager interface.


Constructor Summary
AbstractSensorManager()
           
 
Method Summary
 boolean allowMultipleAdditions(String systemName)
          A method that determines if it is possible to add a range of sensors in numerical order eg 10 to 30, primarily used to enable/disable the add range box in the add sensor panel
 Sensor getBySystemName(String key)
           
 Sensor getByUserName(String key)
           
 String getNextValidAddress(String curAddress, String prefix)
          Determine if the address supplied is valid and free, if not then it shall return the next free valid address up to a maximum of 10 address away from the initial address.
 Sensor getSensor(String name)
          Locate via user name, then system name if needed.
 Sensor newSensor(String sysName, String userName)
          Return an instance with the specified system and user names.
 Sensor provideSensor(String name)
          Locate via user name, then system name if needed.
 char typeLetter()
           
 void updateAll()
          Requests status of all layout sensors under this Sensor Manager.
 
Methods inherited from class jmri.managers.AbstractManager
addPropertyChangeListener, deregister, dispose, getSystemNameArray, getSystemNameList, makeSystemName, propertyChange, register, removePropertyChangeListener, systemLetter
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface jmri.SensorManager
dispose, getSystemNameList
 
Methods inherited from interface jmri.Manager
addPropertyChangeListener, deregister, getSystemNameArray, getSystemPrefix, makeSystemName, register, removePropertyChangeListener, systemLetter
 

Constructor Detail

AbstractSensorManager

public AbstractSensorManager()
Method Detail

typeLetter

public char typeLetter()
Specified by:
typeLetter in interface Manager
Returns:
The type letter for a specific implementation

provideSensor

public Sensor provideSensor(String name)
Description copied from interface: SensorManager
Locate via user name, then system name if needed. If that fails, create a new sensor: If the name is a valid system name, it will be used for the new sensor. Otherwise, the makeSystemName method will attempt to turn it into a valid system name.

Specified by:
provideSensor in interface SensorManager
Parameters:
name - User name, system name, or address which can be promoted to system name
Returns:
Never null

getSensor

public Sensor getSensor(String name)
Description copied from interface: SensorManager
Locate via user name, then system name if needed. Does not create a new one if nothing found

Specified by:
getSensor in interface SensorManager
Returns:
null if no match found

getBySystemName

public Sensor getBySystemName(String key)
Specified by:
getBySystemName in interface SensorManager

getByUserName

public Sensor getByUserName(String key)
Specified by:
getByUserName in interface SensorManager

newSensor

public Sensor newSensor(String sysName,
                        String userName)
Description copied from interface: SensorManager
Return an instance with the specified system and user names. Note that two calls with the same arguments will get the same instance; there is only one Sensor object representing a given physical turnout and therefore only one with a specific system or user name.

This will always return a valid object reference; a new object will be created if necessary. In that case:

Note that it is possible to make an inconsistent request if both addresses are provided, but the given values are associated with different objects. This is a problem, and we don't have a good solution except to issue warnings. This will mostly happen if you're creating Turnouts when you should be looking them up.

Specified by:
newSensor in interface SensorManager
Returns:
requested Sensor object (never null)

updateAll

public void updateAll()
Requests status of all layout sensors under this Sensor Manager. This method may be invoked whenever the status of sensors needs to be updated from the layout, for example, when an XML configuration file is read in. Note that this null implementation only needs be implemented in system-specific Sensor Managers where readout of sensor status from the layout is possible.

Specified by:
updateAll in interface SensorManager

allowMultipleAdditions

public boolean allowMultipleAdditions(String systemName)
A method that determines if it is possible to add a range of sensors in numerical order eg 10 to 30, primarily used to enable/disable the add range box in the add sensor panel

Specified by:
allowMultipleAdditions in interface SensorManager

getNextValidAddress

public String getNextValidAddress(String curAddress,
                                  String prefix)
Description copied from interface: SensorManager
Determine if the address supplied is valid and free, if not then it shall return the next free valid address up to a maximum of 10 address away from the initial address.

Specified by:
getNextValidAddress in interface SensorManager
Parameters:
curAddress - - The hardware address of the turnout we which to check.
prefix - - The System Prefix used to make up the systemName


Copyright © 1997 - 2010 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