Class DefaultGlobalVariable

java.lang.Object
jmri.implementation.AbstractNamedBean
jmri.jmrit.logixng.implementation.DefaultGlobalVariable
All Implemented Interfaces:
Comparable<NamedBean>, PropertyChangeProvider, Base, GlobalVariable, NamedBean

The default implementation of GlobalVariable.
  • Constructor Details

  • Method Details

    • setUserName

      Set the user name, normalizing it if needed.
      Specified by:
      setUserName in interface Base
      Specified by:
      setUserName in interface NamedBean
      Overrides:
      setUserName in class AbstractNamedBean
      Parameters:
      s - the new user name
      Throws:
      NamedBean.BadUserNameException - if the user name can not be normalized
    • initialize

      public void initialize() throws JmriException
      Initialize this global variable to the initial value.
      Specified by:
      initialize in interface GlobalVariable
      Throws:
      JmriException - in case of an error
    • setValue

      public void setValue(Object value)
      Set the value.
      Specified by:
      setValue in interface GlobalVariable
      Parameters:
      value - the value
    • getValue

      public Object getValue()
      Get the value.
      Specified by:
      getValue in interface GlobalVariable
      Returns:
      the value
    • setInitialValueType

      Set the initial value type.
      Specified by:
      setInitialValueType in interface GlobalVariable
      Parameters:
      type - the type
    • getInitialValueType

      Get the initial value type.
      Specified by:
      getInitialValueType in interface GlobalVariable
      Returns:
      the type
    • setInitialValueData

      public void setInitialValueData(String value)
      Set the initial value.
      Specified by:
      setInitialValueData in interface GlobalVariable
      Parameters:
      value - the value
    • getInitialValueData

      Get the initial value.
      Specified by:
      getInitialValueData in interface GlobalVariable
      Returns:
      the value
    • getBeanType

      public String getBeanType()
      Description copied from interface: NamedBean
      For instances in the code where we are dealing with just a bean and a message needs to be passed to the user or in a log.
      Specified by:
      getBeanType in interface NamedBean
      Returns:
      a string of the bean type, eg Turnout, Sensor etc
    • setState

      public void setState(int s) throws JmriException
      Description copied from interface: NamedBean
      Provide generic access to internal state.

      This generally shouldn't be used by Java code; use the class-specific form instead (e.g. setCommandedState in Turnout). This is provided to make scripts access easier to read.

      Specified by:
      setState in interface NamedBean
      Parameters:
      s - the state
      Throws:
      JmriException - general error when setting the state fails
    • getState

      public int getState()
      Description copied from interface: NamedBean
      Provide generic access to internal state.

      This generally shouldn't be used by Java code; use the class-specific form instead (e.g. getCommandedState in Turnout). This is provided to make scripts easier to read.

      Specified by:
      getState in interface NamedBean
      Returns:
      the state
    • getShortDescription

      Description copied from interface: Base
      Get a short description of this item.
      Specified by:
      getShortDescription in interface Base
      Parameters:
      locale - The locale to be used
      Returns:
      a short description
    • getLongDescription

      public String getLongDescription(Locale locale)
      Description copied from interface: Base
      Get a long description of this item.
      Specified by:
      getLongDescription in interface Base
      Parameters:
      locale - The locale to be used
      Returns:
      a long description
    • getChild

      Description copied from interface: Base
      Get a child of this item
      Specified by:
      getChild in interface Base
      Parameters:
      index - the index of the child to get
      Returns:
      the child
      Throws:
      IllegalArgumentException - if the index is less than 0 or greater or equal with the value returned by getChildCount()
      UnsupportedOperationException - when needed
    • getChildCount

      public int getChildCount()
      Description copied from interface: Base
      Get the number of children.
      Specified by:
      getChildCount in interface Base
      Returns:
      the number of children
    • getCategory

      Description copied from interface: Base
      Get the category.
      Specified by:
      getCategory in interface Base
      Returns:
      the category
    • isActive

      public boolean isActive()
      Is this item active? If this item is enabled and all the parents are enabled, this item is active.
      Specified by:
      isActive in interface Base
      Returns:
      true if active, false otherwise.
    • getParent

      public Base getParent()
      Get the parent.

      The following rules apply

      • LogixNGs has no parent. The method throws an UnsupportedOperationException if called.
      • Expressions and actions has the male socket that they are connected to as their parent.
      • Male sockets has the female socket that they are connected to as their parent.
      • The parent of a female sockets is the LogixNG, expression or action that has this female socket.
      • The parent of a male sockets is the same parent as the expression or action that it contains.
      Specified by:
      getParent in interface Base
      Returns:
      the parent of this object
    • setParent

      public void setParent(Base parent)
      Set the parent.

      The following rules apply

      • ExecutionGroups has no parent. The method throws an UnsupportedOperationException if called.
      • LogixNGs has the execution group as its parent.
      • Expressions and actions has the male socket that they are connected to as their parent.
      • Male sockets has the female socket that they are connected to as their parent.
      • The parent of a female sockets is the LogixNG, expression or action that has this female socket.
      • The parent of a male sockets is the same parent as the expression or action that it contains.
      Specified by:
      setParent in interface Base
      Parameters:
      parent - the new parent of this object
    • setParentForAllChildren

      public boolean setParentForAllChildren(List<String> errors)
      Set the parent for all the children.
      Specified by:
      setParentForAllChildren in interface Base
      Parameters:
      errors - a list of potential errors
      Returns:
      true if success, false otherwise
    • getLogixNG

      public LogixNG getLogixNG()
      Get the LogixNG of this item.
      Specified by:
      getLogixNG in interface Base
      Returns:
      the LogixNG that owns this item
    • getConditionalNG

      Get the ConditionalNG of this item.
      Specified by:
      getConditionalNG in interface Base
      Returns:
      the ConditionalNG that owns this item
    • getRoot

      public final Base getRoot()
      Get the root of the tree that this item belongs to.
      Specified by:
      getRoot in interface Base
      Returns:
      the top most item in the tree
    • registerListeners

      public void registerListeners()
      Register listeners if this object needs that.

      Important: This method may be called more than once. Methods overriding this method must ensure that listeners are not registered more than once.

      Specified by:
      registerListeners in interface Base
    • unregisterListeners

      public void unregisterListeners()
      Unregister listeners if this object needs that.

      Important: This method may be called more than once. Methods overriding this method must ensure that listeners are not unregistered more than once.

      Specified by:
      unregisterListeners in interface Base
    • printTree

      public void printTree(Base.PrintTreeSettings settings, PrintWriter writer, String indent, MutableInt lineNumber)
      Print the tree to a stream.
      Specified by:
      printTree in interface Base
      Parameters:
      settings - settings for what to print
      writer - the stream to print the tree to
      indent - the indentation of each level
      lineNumber - the line number
    • printTree

      public void printTree(Base.PrintTreeSettings settings, Locale locale, PrintWriter writer, String indent, MutableInt lineNumber)
      Print the tree to a stream.
      Specified by:
      printTree in interface Base
      Parameters:
      settings - settings for what to print
      locale - The locale to be used
      writer - the stream to print the tree to
      indent - the indentation of each level
      lineNumber - the line number
    • printTree

      public void printTree(Base.PrintTreeSettings settings, Locale locale, PrintWriter writer, String indent, String currentIndent, MutableInt lineNumber)
      Print the tree to a stream.
      Specified by:
      printTree in interface Base
      Parameters:
      settings - settings for what to print
      locale - The locale to be used
      writer - the stream to print the tree to
      indent - the indentation of each level
      currentIndent - the current indentation
      lineNumber - the line number
    • getDeepCopy

      public Base getDeepCopy(Map<String,String> systemNames, Map<String,String> userNames)
      Description copied from interface: Base
      Create a deep copy of myself and my children The item needs to try to lookup itself in both systemNames and userNames to see if the user has given a new system name and/or a new user name.If no new system name is given, an auto system name is used. If no user name is given, a null user name is used.
      Specified by:
      getDeepCopy in interface Base
      Parameters:
      systemNames - a map of old and new system name
      userNames - a map of old system name and new user name
      Returns:
      a deep copy
    • deepCopyChildren

      public Base deepCopyChildren(Base original, Map<String,String> systemNames, Map<String,String> userNames) throws JmriException
      Description copied from interface: Base
      Do a deep copy of children from the original to me.
      Specified by:
      deepCopyChildren in interface Base
      Parameters:
      original - the item to copy from
      systemNames - a map of old and new system name
      userNames - a map of old system name and new user name
      Returns:
      myself
      Throws:
      JmriException - in case of an error
    • setup

      public void setup()
      Description copied from interface: Base
      Setup this object and its children. This method is used to lookup system names for child sockets, turnouts, sensors, and so on.
      Specified by:
      setup in interface Base
    • getUsageReport

      Get a list of references for the specified bean.
      Specified by:
      getUsageReport in interface NamedBean
      Parameters:
      bean - The bean to be checked.
      Returns:
      a list of NamedBeanUsageReports or an empty ArrayList.
    • getUsageTree

      public void getUsageTree(int level, NamedBean bean, List<NamedBeanUsageReport> report, NamedBean cdl)
      Navigate the LogixNG tree.
      Specified by:
      getUsageTree in interface Base
      Parameters:
      level - The current recursion level for debugging.
      bean - The named bean that is the object of the search.
      report - A list of NamedBeanUsageReport usage reports.
      cdl - The current ConditionalNG bean. Null for Module searches since there is no conditional
    • getUsageDetail

      public void getUsageDetail(int level, NamedBean bean, List<NamedBeanUsageReport> report, NamedBean cdl)
      Add a new NamedBeanUsageReport to the report list if there are any matches in this action or expresssion.

      NamedBeanUsageReport Usage keys:

      • LogixNGAction
      • LogixNGExpression
      Specified by:
      getUsageDetail in interface Base
      Parameters:
      level - The current recursion level for debugging.
      bean - The named bean that is the object of the search.
      report - A list of NamedBeanUsageReport usage reports.
      cdl - The current ConditionalNG bean. Null for Module searches since there is no conditional
    • getListenerRefsIncludingChildren

      Returns a list of all the listeners references for this object and all its children.
      Specified by:
      getListenerRefsIncludingChildren in interface Base
      Parameters:
      list - a list of textual references