Class VariableTable

    • Constructor Detail

      • VariableTable

        public VariableTable()
    • Method Detail

      • init

        public void init​(Jep j)
        Description copied from interface: JepComponent
        Initialize the component. This methods is called whenever a component is added to Jep. Hence it allows components to keep track of the other components they may rely on.
        Specified by:
        init in interface JepComponent
        Parameters:
        j - the current Jep instance
      • setVariableFactory

        public void setVariableFactory​(VariableFactory vf)
      • addVariable

        public Variable addVariable​(java.lang.String name)
        Adds a new variable with no value specified. If the variable already exists in the table, that variable instance is returned. Otherwise a new Variable instance is created with the variable factory.
        Parameters:
        name - the variable's name
        Returns:
        the variable
      • addVariable

        public Variable addVariable​(java.lang.String name,
                                    java.lang.Object value)
                             throws JepException
        Adds a new variable with specified value. If the variable already exists, its value is updated with the new value. If the variable exists and is a constant, the value is not updated and no error is reported. If the variable does not exist, it is created using the variable factory of the jep instance specified with the init(Jep j) method.
        Parameters:
        name - the name of the variable
        value - the value for the variable to be set to
        Returns:
        the variable added or updated
        Throws:
        JepException - if an attempt is made to set the value of a constant variable
      • addConstant

        public Variable addConstant​(java.lang.String name,
                                    java.lang.Object value)
                             throws JepException
        Adds a new variable which is marked as a constant. Its value will also be marked as valid, in particular a null value is valid for a constant.
        Parameters:
        name -
        value -
        Returns:
        the corresponding Variable object
        Throws:
        JepException - if an attempt is made to set the value of an existing constant variable
      • getVariable

        public Variable getVariable​(java.lang.String name)
        Gets an existing variable, returns null if variable is not found.
        Parameters:
        name -
        Returns:
        the variable
      • clear

        public void clear()
        Clears all variables from the table.
      • isEmpty

        public boolean isEmpty()
      • keySet

        public java.util.Set<java.lang.String> keySet()
        Returns the names of all the variables.
        Returns:
        a collection Strings with the variable names.
      • getVariables

        public java.util.Collection<Variable> getVariables()
        Returns a list of all the variables in the table. Just returns a view. Does not do a deep copy so changes to this collection will affect the underlying table.
      • remove

        public Variable remove​(java.lang.String varname)
        Remove a variable with a given name from the table.
        Parameters:
        varname - name of the variable to remove
        Returns:
        the removed variable or null if the variable does not exist in the table.
      • remove

        public Variable remove​(Variable var)
        Remove a variable from the table.
        Parameters:
        var - the variable to remove
        Returns:
        the removed variable or null if the variable does not exist in the table.
      • values

        @Deprecated
        public java.util.Collection<Variable> values()
        Deprecated.
        A collection of all the variables. Replace with getVariables()
      • size

        public int size()
      • containsKey

        public boolean containsKey​(java.lang.String key)
      • containsVariable

        public boolean containsVariable​(Variable value)
      • toString

        public java.lang.String toString()
        Overrides:
        toString in class java.lang.Object
      • copyConstantsFrom

        public void copyConstantsFrom​(VariableTable vt)
        Copies all the constants from a variable table into this table. Copies all properties of the variable, including isConstant, validValue flags and all hook keys. If there already is a variable with the same name all properties are copied and pre-existing hooks deleted.
        Parameters:
        vt - source variable table
      • copyVariablesFrom

        public void copyVariablesFrom​(VariableTable vt)
        Copies all the variables from a variable table into this table Copies all properties of the variable, including isConstant, validValue flags and all hook keys. If there already is a variable with the same name all properties are copied and pre-existing hooks deleted.
        Parameters:
        vt - source variable table
      • clearValues

        public void clearValues()
        Clears the values of all non constant variables. This will set the Variable.setValidValue(boolean) to false.
        Since:
        3.4.0
      • removeNonConstants

        public void removeNonConstants()
        Remove all variables from the table which are not constants.
        Since:
        3.5