Class Argument

    • Constructor Detail

      • Argument

        public Argument​(String argumentDefinitionString,
                        PrimitiveElement... elements)
        Default constructor - creates argument based on the argument definition string.
        Parameters:
        argumentDefinitionString - Argument definition string, i.e.:
        • 'x' - only argument name
        • 'x=5' - argument name and argument value
        • 'x=2*5' - argument name and argument value given as simple expression
        • 'x=2*y' - argument name and argument expression (dependent argument 'x' on argument 'y')
        elements - Optional parameters (comma separated) such as Arguments, Constants, Functions
      • Argument

        public Argument​(String argumentDefinitionString,
                        boolean forceDependent,
                        PrimitiveElement... elements)
        Default constructor - creates argument based on the argument definition string.
        Parameters:
        argumentDefinitionString - Argument definition string, i.e.:
        • 'x' - only argument name
        • 'x=5' - argument name and argument value
        • 'x=2*5' - argument name and argument value given as simple expression
        • 'x=2*y' - argument name and argument expression (dependent argument 'x' on argument 'y')
        forceDependent - If true parser will try to create dependent argument
        elements - Optional parameters (comma separated) such as Arguments, Constants, Functions
      • Argument

        public Argument​(String argumentName,
                        double argumentValue)
        Constructor - creates free argument.
        Parameters:
        argumentName - the argument name
        argumentValue - the argument value
      • Argument

        public Argument​(String argumentName,
                        ArgumentExtension argumentExtension)
        Constructor for argument definition based on your own source code - this is via implementation of ArgumentExtension interface.
        Parameters:
        argumentName - Argument name
        argumentExtension - Your own source code
      • Argument

        public Argument​(String argumentName,
                        String argumentExpressionString,
                        PrimitiveElement... elements)
        Constructor - creates dependent argument(with hidden argument expression).
        Parameters:
        argumentName - the argument name
        argumentExpressionString - the argument expression string
        elements - Optional parameters (comma separated) such as Arguments, Constants, Functions
        See Also:
        Expression, PrimitiveElement
    • Method Detail

      • setDescription

        public void setDescription​(String description)
        Sets argument description.
        Parameters:
        description - the argument description.
      • getDescription

        public String getDescription()
        Gets argument description.
        Returns:
        The argument description string.
      • setVerboseMode

        public void setVerboseMode()
        Enables argument verbose mode
      • setSilentMode

        public void setSilentMode()
        Disables argument verbose mode (sets default silent mode)
      • getVerboseMode

        public boolean getVerboseMode()
        Returns verbose mode status
        Returns:
        true if verbose mode is on, otherwise returns false.
      • getRecursiveMode

        public boolean getRecursiveMode()
        Gets recursive mode status
        Returns:
        true if recursive mode is enabled, otherwise returns false
      • getComputingTime

        public double getComputingTime()
        Gets computing time
        Returns:
        Computing time in seconds.
      • setArgumentName

        public void setArgumentName​(String argumentName)
        Sets (modifies) argument name. Each expression / function / dependent argument associated with this argument will be marked as modified (requires new syntax checking).
        Parameters:
        argumentName - the argument name
      • setArgumentExpressionString

        public void setArgumentExpressionString​(String argumentExpressionString)
        Sets argument expression string. Each expression / function / dependent argument associated with this argument will be marked as modified (requires new syntax checking). If BODY_EXTENDED argument then BODY_RUNTIME is set.
        Parameters:
        argumentExpressionString - the argument expression string
        See Also:
        Expression
      • getArgumentName

        public String getArgumentName()
        Gets argument name
        Returns:
        the argument name as string
      • getArgumentExpressionString

        public String getArgumentExpressionString()
        Gets argument expression string
        Returns:
        the argument expression string
      • getArgumentType

        public int getArgumentType()
        Gets argument type
        Returns:
        Argument type: Argument.FREE_ARGUMENT, Argument.DEPENDENT_ARGUMENT, Argument.RECURSIVE_ARGUMENT
      • setArgumentValue

        public void setArgumentValue​(double argumentValue)
        Sets argument value, if DEPENDENT_ARGUMENT then argument type is set to FREE_ARGUMENT. If BODY_EXTENDED argument the BODY_RUNTIME argument is set.
        Parameters:
        argumentValue - the value of argument
      • checkSyntax

        public boolean checkSyntax()
        Checks argument syntax
        Returns:
        syntax status: Argument.NO_SYNTAX_ERRORS, Argument.SYNTAX_ERROR_OR_STATUS_UNKNOWN
      • getErrorMessage

        public String getErrorMessage()
        Returns error message after checking the syntax
        Returns:
        Error message as string.
      • getArgumentValue

        public double getArgumentValue()
        Gets argument value.
        Returns:
        direct argument value for free argument, otherwise returns calculated argument value based on the argument expression.
      • getArgumentValue

        public double getArgumentValue​(CalcStepsRegister calcStepsRegister)
        Gets argument value and registers all the calculation steps
        Parameters:
        calcStepsRegister - A collection to store list of calculation steps, steps registered as strings.
        Returns:
        direct argument value for free argument, otherwise returns calculated argument value based on the argument expression.
      • addDefinitions

        public void addDefinitions​(PrimitiveElement... elements)
        Adds user defined elements (such as: Arguments, Constants, Functions) to the argument expressions.
        Parameters:
        elements - Elements list (variadic - comma separated) of types: Argument, Constant, Function
        See Also:
        PrimitiveElement
      • removeDefinitions

        public void removeDefinitions​(PrimitiveElement... elements)
        Removes user defined elements (such as: Arguments, Constants, Functions) from the argument expressions.
        Parameters:
        elements - Elements list (variadic - comma separated) of types: Argument, Constant, Function
        See Also:
        PrimitiveElement
      • addArguments

        public void addArguments​(Argument... arguments)
        Adds arguments (variadic) to the argument expression definition.
        Parameters:
        arguments - the arguments list (comma separated list)
        See Also:
        Argument, RecursiveArgument
      • defineArguments

        public void defineArguments​(String... argumentsNames)
        Enables to define the arguments (associated with the argument expression) based on the given arguments names.
        Parameters:
        argumentsNames - the arguments names (variadic) comma separated list
        See Also:
        Argument, RecursiveArgument
      • defineArgument

        public void defineArgument​(String argumentName,
                                   double argumentValue)
        Enables to define the argument (associated with the argument expression) based on the argument name and the argument value.
        Parameters:
        argumentName - the argument name
        argumentValue - the the argument value
        See Also:
        Argument, RecursiveArgument
      • getArgumentIndex

        public int getArgumentIndex​(String argumentName)
        Gets argument index from the argument expression.
        Parameters:
        argumentName - the argument name
        Returns:
        The argument index if the argument name was found, otherwise returns Argument.NOT_FOUND
        See Also:
        Argument, RecursiveArgument
      • getArgument

        public Argument getArgument​(String argumentName)
        Gets argument from the argument expression.
        Parameters:
        argumentName - the argument name
        Returns:
        The argument if the argument name was found, otherwise returns null.
        See Also:
        Argument, RecursiveArgument
      • getArgument

        public Argument getArgument​(int argumentIndex)
        Gets argument from the argument expression.
        Parameters:
        argumentIndex - the argument index
        Returns:
        Argument if the argument index is between 0 and the last available argument index (getArgumentsNumber()-1), otherwise returns null.
        See Also:
        Argument, RecursiveArgument
      • getArgumentsNumber

        public int getArgumentsNumber()
        Gets number of arguments associated with the argument expression.
        Returns:
        The number of arguments (int >= 0)
        See Also:
        Argument, RecursiveArgument
      • removeArguments

        public void removeArguments​(String... argumentsNames)
        Removes first occurrences of the arguments associated with the argument expression.
        Parameters:
        argumentsNames - the arguments names (variadic parameters) comma separated list
        See Also:
        Argument, RecursiveArgument
      • removeArguments

        public void removeArguments​(Argument... arguments)
        Removes first occurrences of the arguments associated with the argument expression.
        Parameters:
        arguments - the arguments (variadic parameters) comma separated list
        See Also:
        Argument, RecursiveArgument
      • removeAllArguments

        public void removeAllArguments()
        Removes all arguments associated with the argument expression.
        See Also:
        Argument, RecursiveArgument
      • addConstants

        public void addConstants​(Constant... constants)
        Adds constants (variadic parameters) to the argument expression definition.
        Parameters:
        constants - the constants (comma separated list)
        See Also:
        Constant
      • addConstants

        public void addConstants​(List<Constant> constantsList)
        Adds constants to the argument expression definition.
        Parameters:
        constantsList - the list of constants
        See Also:
        Constant
      • defineConstant

        public void defineConstant​(String constantName,
                                   double constantValue)
        Enables to define the constant (associated with the argument expression) based on the constant name and constant value.
        Parameters:
        constantName - the constant name
        constantValue - the constant value
        See Also:
        Constant
      • getConstantIndex

        public int getConstantIndex​(String constantName)
        Gets constant index associated with the argument expression.
        Parameters:
        constantName - the constant name
        Returns:
        Constant index if constant name was found, otherwise return Constant.NOT_FOUND.
        See Also:
        Constant
      • getConstant

        public Constant getConstant​(String constantName)
        Gets constant associated with the argument expression.
        Parameters:
        constantName - the constant name
        Returns:
        Constant if constant name was found, otherwise return null.
        See Also:
        Constant
      • getConstant

        public Constant getConstant​(int constantIndex)
        Gets constant associated with the argument expression.
        Parameters:
        constantIndex - the constant index
        Returns:
        Constant if the constantIndex is between 0 and the last available constant index (getConstantsNumber() - 1), otherwise it returns null.
        See Also:
        Constant
      • getConstantsNumber

        public int getConstantsNumber()
        Gets number of constants associated with the argument expression.
        Returns:
        number of constants (int >= 0)
        See Also:
        Constant
      • removeConstants

        public void removeConstants​(String... constantsNames)
        Removes first occurrences of the constants associated with the argument expression.
        Parameters:
        constantsNames - the constants names (variadic parameters) comma separated list
        See Also:
        Constant
      • removeConstants

        public void removeConstants​(Constant... constants)
        Removes first occurrences of the constants associated with the argument expression
        Parameters:
        constants - the constants (variadic parameters) comma separated list
        See Also:
        Constant
      • removeAllConstants

        public void removeAllConstants()
        Removes all constants associated with the argument expression
        See Also:
        Constant
      • addFunctions

        public void addFunctions​(Function... functions)
        Adds functions (variadic parameters) to the argument expression definition.
        Parameters:
        functions - the functions (variadic parameters) comma separated list
        See Also:
        Function
      • defineFunction

        public void defineFunction​(String functionName,
                                   String functionExpressionString,
                                   String... argumentsNames)
        Enables to define the function (associated with the argument expression) based on the function name, function expression string and arguments names (variadic parameters).
        Parameters:
        functionName - the function name
        functionExpressionString - the expression string
        argumentsNames - the function arguments names (variadic parameters) comma separated list
        See Also:
        Function
      • getFunctionIndex

        public int getFunctionIndex​(String functionName)
        Gets index of function associated with the argument expression.
        Parameters:
        functionName - the function name
        Returns:
        Function index if function name was found, otherwise returns Function.NOT_FOUND
        See Also:
        Function
      • getFunction

        public Function getFunction​(String functionName)
        Gets function associated with the argument expression.
        Parameters:
        functionName - the function name
        Returns:
        Function if function name was found, otherwise returns null.
        See Also:
        Function
      • getFunction

        public Function getFunction​(int functionIndex)
        Gets function associated with the argument expression.
        Parameters:
        functionIndex - the function index
        Returns:
        Function if function index is between 0 and the last available function index (getFunctionsNumber()-1), otherwise returns null.
        See Also:
        Function
      • getFunctionsNumber

        public int getFunctionsNumber()
        Gets number of functions associated with the argument expression.
        Returns:
        number of functions (int >= 0)
        See Also:
        Function
      • removeFunctions

        public void removeFunctions​(String... functionsNames)
        Removes first occurrences of the functions associated with the argument expression.
        Parameters:
        functionsNames - the functions names (variadic parameters) comma separated list
        See Also:
        Function
      • removeFunctions

        public void removeFunctions​(Function... functions)
        Removes first occurrences of the functions associated with the argument expression.
        Parameters:
        functions - the functions (variadic parameters) comma separated list.
        See Also:
        Function
      • removeAllFunctions

        public void removeAllFunctions()
        Removes all functions associated with the argument expression.
        See Also:
        Function
      • clone

        public Argument clone()
        Creates cloned object of the this argument.''
        Overrides:
        clone in class Object
        Returns:
        clone of the argument.