Class DefaultGlobalVariable

    • Method Detail

      • setValue

        public void setValue​(java.lang.Object value)
        Set the value.
        Specified by:
        setValue in interface GlobalVariable
        Parameters:
        value - the value
      • getBeanType

        public java.lang.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

        public java.lang.String getShortDescription​(java.util.Locale locale)
        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 java.lang.String getLongDescription​(java.util.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

        public FemaleSocket getChild​(int index)
                              throws java.lang.IllegalArgumentException,
                                     java.lang.UnsupportedOperationException
        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:
        java.lang.IllegalArgumentException - if the index is less than 0 or greater or equal with the value returned by getChildCount()
        java.lang.UnsupportedOperationException
      • 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
      • 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​(java.util.List<java.lang.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
      • 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,
                              java.io.PrintWriter writer,
                              java.lang.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,
                              java.util.Locale locale,
                              java.io.PrintWriter writer,
                              java.lang.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,
                              java.util.Locale locale,
                              java.io.PrintWriter writer,
                              java.lang.String indent,
                              java.lang.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​(java.util.Map<java.lang.String,​java.lang.String> systemNames,
                                java.util.Map<java.lang.String,​java.lang.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,
                                     java.util.Map<java.lang.String,​java.lang.String> systemNames,
                                     java.util.Map<java.lang.String,​java.lang.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
      • getUsageTree

        public void getUsageTree​(int level,
                                 NamedBean bean,
                                 java.util.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,
                                   java.util.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