Class Constant

java.lang.Object
org.mariuszgromada.math.mxparser.PrimitiveElement
org.mariuszgromada.math.mxparser.Constant
All Implemented Interfaces:
Serializable

public class Constant extends PrimitiveElement implements Serializable
Constant class provides ability to declare constants. Constants can be used in further processing by any expression, dependent or recursive argument, function, etc...

When creating a constant you should avoid names reserved as parser keywords, in general words known in mathematical language as function names, operators (for example: sin, cos, +, -, pi, e, etc...). Please be informed that after associating the constant with the expression, function or dependent/recursive argument its name will be recognized by the parser as reserved key word. It means that it could not be the same as any other key word known by the parser for this particular expression.

Version:
6.1.0
See Also:
  • Field Details

    • serialClassID

      private static final int serialClassID
      See Also:
    • serialVersionUID

      private static final long serialVersionUID
    • NOT_FOUND

      public static final int NOT_FOUND
      When constant could not be found
      See Also:
    • TYPE_ID

      public static final int TYPE_ID
      Type identifier for constants
      See Also:
    • TYPE_DESC

      public static String TYPE_DESC
    • NO_SYNTAX_ERRORS

      public static final boolean NO_SYNTAX_ERRORS
      Status of the syntax - no syntax error
      See Also:
    • SYNTAX_ERROR

      public static final boolean SYNTAX_ERROR
      Status of the syntax - syntax error
      See Also:
    • SYNTAX_ERROR_OR_STATUS_UNKNOWN

      @Deprecated public static final boolean SYNTAX_ERROR_OR_STATUS_UNKNOWN
      Deprecated.
      Planned to be removed, use SYNTAX_ERROR instead
      Status of the syntax - syntax error
      See Also:
    • constantName

      private String constantName
      Name of the constant
    • constantValue

      private double constantValue
      Constant value
    • description

      private String description
      Constant description
    • relatedExpressionsList

      private List<Expression> relatedExpressionsList
      Dependent expression list
    • syntaxStatus

      private boolean syntaxStatus
      Status of the expression syntax Please referet to the: - NO_SYNTAX_ERRORS - SYNTAX_ERROR
    • errorMessage

      private String errorMessage
      Message after checking the syntax
  • Constructor Details

    • Constant

      public Constant(String constantName, double constantValue)
      Constructor - creates constant with a given name and given value
      Parameters:
      constantName - the constant name
      constantValue - the constant value
    • Constant

      public Constant(String constantName, double constantValue, String description)
      Constructor - creates constant with a given name and given value. Additionally, description is being set.
      Parameters:
      constantName - the constant name
      constantValue - the constant value
      description - the constant description
    • Constant

      public Constant(String constantDefinitionString, PrimitiveElement... elements)
      Constructor for function definition in natural math language, for instance providing on string "f(x,y) = sin(x) + cos(x)" is enough to define function "f" with parameters "x and y" and function body "sin(x) + cos(x)".
      Parameters:
      constantDefinitionString - Constant definition in the form of one String, ie "c = 2" or "c = 2*sin(pi/3)"
      elements - Optional parameters (comma separated) such as Arguments, Constants, Functions
    • Constant

      private Constant(Constant constantToClone)
  • Method Details

    • buildErrorMessageInvalidConstantName

      private static String buildErrorMessageInvalidConstantName(String constantName)
    • buildErrorMessageInvalidConstantDefinitionString

      private static String buildErrorMessageInvalidConstantDefinitionString(String constantDefinitionString)
    • registerNoSyntaxErrorInDefinition

      private void registerNoSyntaxErrorInDefinition()
    • registerSyntaxErrorInDefinition

      private void registerSyntaxErrorInDefinition(String errorMessage)
    • getConstantName

      public String getConstantName()
      Gets constant name
      Returns:
      the constant name as string.
    • setConstantName

      public void setConstantName(String constantName)
      Sets constant name. If constant is associated with any expression then this operation will set modified flag to each related expression.
      Parameters:
      constantName - the constant name
    • setConstantValue

      public void setConstantValue(double constantValue)
      Sets constant value
      Parameters:
      constantValue - constant value
    • getConstantValue

      public double getConstantValue()
      Gets constant value.
      Returns:
      constant value as double
    • getDescription

      public String getDescription()
      Gets constant description.
      Returns:
      constant description as string.
    • setDescription

      public void setDescription(String description)
      Sets constant description.
      Parameters:
      description - the constant description
    • getErrorMessage

      public String getErrorMessage()
      Method return error message after
      Returns:
      Error message as string.
    • getSyntaxStatus

      public boolean getSyntaxStatus()
      Gets syntax status of the expression.
      Returns:
      Constant.NO_SYNTAX_ERRORS if there are no syntax errors, Const.SYNTAX_ERROR when syntax error was found or syntax status is unknown
    • addRelatedExpression

      void addRelatedExpression(Expression expression)
      Adds related expression.
      Parameters:
      expression - the related expression.
    • removeRelatedExpression

      void removeRelatedExpression(Expression expression)
      Removes related expression.
      Parameters:
      expression - the related expression.
    • setExpressionModifiedFlags

      void setExpressionModifiedFlags()
      Sets expression modified flag to each related expression.
    • cloneForThreadSafeInternal

      Constant cloneForThreadSafeInternal(CloneCache cloneCache)
    • cloneForThreadSafeInternal

      Constant cloneForThreadSafeInternal(Expression relatedExpressionThatInitiatedClone, CloneCache cloneCache)
    • cloneForThreadSafe

      public Constant cloneForThreadSafe()
      Creates a completely independent 1-1 clone that can be safely used by a separate thread. If the cloned element contains references to other elements (e.g. arguments, functions, constants), then they will also be cloned and the newly created element will contain references to the corresponding clones. Important - the API allows you to extract all these clones.
      Returns:
      Cloned object.