jmri
Class AbstractReporterManager

java.lang.Object
  extended by jmri.AbstractManager
      extended by jmri.AbstractReporterManager
All Implemented Interfaces:
PropertyChangeListener, EventListener, Manager, ReporterManager
Direct Known Subclasses:
LnReporterManager

public abstract class AbstractReporterManager
extends AbstractManager
implements ReporterManager

Abstract partial implementation of a ReporterManager.

Author:
Bob Jacobsen Copyright (C) 2004

Field Summary
 
Fields inherited from class jmri.AbstractManager
_tsys, _tuser
 
Constructor Summary
AbstractReporterManager()
           
 
Method Summary
protected abstract  Reporter createNewReporter(String systemName, String userName)
          Internal method to invoke the factory, after all the logic for returning an existing method has been invoked.
 Reporter getBySystemName(String key)
          Locate an instance based on a system name.
 Reporter getByUserName(String key)
          Locate an instance based on a user name.
 Reporter getReporter(String name)
          Locate via user name, then system name if needed.
 Reporter newReporter(String sysName, String userName)
          Return an instance with the specified system and user names.
 Reporter provideReporter(String name)
          Locate via user name, then system name if needed.
 char typeLetter()
           
 
Methods inherited from class jmri.AbstractManager
addPropertyChangeListener, deregister, dispose, firePropertyChange, getInstanceBySystemName, getInstanceByUserName, getSystemNameList, makeSystemName, propertyChange, register, removePropertyChangeListener
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface jmri.ReporterManager
getSystemNameList
 
Methods inherited from interface jmri.Manager
addPropertyChangeListener, deregister, dispose, makeSystemName, register, removePropertyChangeListener, systemLetter
 

Constructor Detail

AbstractReporterManager

public AbstractReporterManager()
Method Detail

typeLetter

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

provideReporter

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

Specified by:
provideReporter in interface ReporterManager
Returns:
Never null under normal circumstances

getReporter

public Reporter getReporter(String name)
Description copied from interface: ReporterManager
Locate via user name, then system name if needed. If that fails, return null

Specified by:
getReporter in interface ReporterManager
Returns:
null if no match found

getBySystemName

public Reporter getBySystemName(String key)
Description copied from interface: ReporterManager
Locate an instance based on a system name. Returns null if no instance already exists.

Specified by:
getBySystemName in interface ReporterManager
Returns:
requested Reporter object or null if none exists

getByUserName

public Reporter getByUserName(String key)
Description copied from interface: ReporterManager
Locate an instance based on a user name. Returns null if no instance already exists.

Specified by:
getByUserName in interface ReporterManager
Returns:
requested Reporter object or null if none exists

newReporter

public Reporter newReporter(String sysName,
                            String userName)
Description copied from interface: ReporterManager
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 Reporter object representing a given physical Reporter 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 Reporters when you should be looking them up.

Specified by:
newReporter in interface ReporterManager
Returns:
requested Reporter object (never null)

createNewReporter

protected abstract Reporter createNewReporter(String systemName,
                                              String userName)
Internal method to invoke the factory, after all the logic for returning an existing method has been invoked.

Returns:
never null


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