Class XpaTurnoutManager

All Implemented Interfaces:
PropertyChangeListener, VetoableChangeListener, EventListener, PropertyChangeFirer, PropertyChangeProvider, SilenceablePropertyChangeProvider, VetoableChangeFirer, VetoableChangeProvider, Manager<Turnout>, NameIncrementingManager, ProvidingManager<Turnout>, TurnoutManager

Implement turnout manager for Xpa+Modem connections to XpressNet Based systems.

System names are "PTnnn", where P is the user configurable system prefix, nnn is the turnout number without padding.

  • Constructor Details

  • Method Details

    • getMemo

      Get the system connection for this manager.
      Specified by:
      getMemo in interface Manager<Turnout>
      Overrides:
      getMemo in class AbstractManager<Turnout>
      Returns:
      the system connection for this manager
    • createNewTurnout

      Internal method to invoke the factory, after all the logic for returning an existing Turnout has been invoked.
      Specified by:
      createNewTurnout in class AbstractTurnoutManager
      Parameters:
      systemName - the system name to use for the new Turnout
      userName - the user name to use for the new Turnout
      Returns:
      the new Turnout or
      Throws:
      IllegalArgumentException - if unsuccessful
    • allowMultipleAdditions

      public boolean allowMultipleAdditions(@Nonnull String systemName)
      Description copied from interface: NameIncrementingManager
      Determines if it is possible to add a range of NamedBeans in numerical order for a particular system implementation.

      Default is not providing this service. Systems should override this method if they do provide the service.

      Parameters:
      systemName - the system name to check against; appears to be ignored in all implementations
      Returns:
      true if possible; false otherwise
    • validateSystemNameFormat

      Validates to only numeric. Validate the format of name, returning it unchanged if valid.

      Although further restrictions may be added by system-specific implementations, at a minimum, the implementation must consider a name that does not start with the System Name prefix for this manager to be invalid, and must consider a name that is the same as the System Name prefix to be invalid.

      Overriding implementations may rely on Manager.validSystemNameFormat(java.lang.String), however they must provide an actionable message in the thrown exception if that method does not return Manager.NameValidity.VALID. When overriding implementations of this method rely on validSystemNameFormat(), implementations of that method must not throw an exception, log an error, or otherwise disrupt the user.

      Parameters:
      name - the system name to validate
      locale - the locale for a localized exception; this is needed for the JMRI web server, which supports multiple locales
      Returns:
      the unchanged value of the name parameter
      Throws:
      NamedBean.BadSystemNameException - if provided name is an invalid format