jmri.managers
Class ProxySensorManager

java.lang.Object
  extended by jmri.managers.AbstractProxyManager
      extended by jmri.managers.ProxySensorManager
All Implemented Interfaces:
Manager, SensorManager

public class ProxySensorManager
extends AbstractProxyManager
implements SensorManager

Implementation of a SensorManager that can serves as a proxy for multiple system-specific implementations. The first to be added is the "Primary".

Author:
Bob Jacobsen Copyright (C) 2003

Constructor Summary
ProxySensorManager()
           
 
Method Summary
 void addManager(Manager m)
          Override super-class behaviour to include internal manager.
 Sensor getBySystemName(String systemName)
          Locate an instance based on a system name.
 Sensor getByUserName(String userName)
          Locate an instance based on a user name.
 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.
 void updateAll()
          Requests status of all layout sensors under this Sensor Manager.
 
Methods inherited from class jmri.managers.AbstractProxyManager
addPropertyChangeListener, deregister, dispose, getSystemNameList, makeSystemName, register, removePropertyChangeListener, systemLetter, typeLetter
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface jmri.SensorManager
dispose, getSystemNameList
 
Methods inherited from interface jmri.Manager
addPropertyChangeListener, deregister, makeSystemName, register, removePropertyChangeListener, systemLetter, typeLetter
 

Constructor Detail

ProxySensorManager

public ProxySensorManager()
Method Detail

addManager

public void addManager(Manager m)
Override super-class behaviour to include internal manager.

Overrides:
addManager in class AbstractProxyManager

getSensor

public Sensor getSensor(String name)
Locate via user name, then system name if needed.

Specified by:
getSensor in interface SensorManager
Parameters:
name -
Returns:
Null if nothing by that name exists

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
Returns:
Never null under normal circumstances

getBySystemName

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

Specified by:
getBySystemName in interface SensorManager
Returns:
requested Turnout object or null if none exists

getByUserName

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

Specified by:
getByUserName in interface SensorManager
Returns:
requested Turnout object or null if none exists

newSensor

public Sensor newSensor(String sysName,
                        String userName)
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 for a valid request; 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 Sensors when you should be looking them up.

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

updateAll

public void updateAll()
Description copied from interface: SensorManager
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 there is a null implementation of this method in AbstractSensorManager. This method 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


Copyright © 1997 - 2008 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: SourceForge_Logo