Class ListExpressionOperator

  • All Implemented Interfaces:
    Serializable

    public class ListExpressionOperator
    extends ExpressionOperator
    INTERNAL: A ListExpressionOperator is used with an ArgumentListFunctionExpression. It is capable of expanding the number of arguments it can be an operator for. It is built from a set of start strings, a repeating set of separators and a set of termination strings It typically represents a database function that has a variable list of arguments e.g. COALESCE(arg1, arg2, arg3, .... argn) In the example above "COALESCE(" is the start string, "," is the separator and ")" is the end string
    Author:
    tware
    See Also:
    ArgumentListFunctionExpression, Expression.coalesce(), Serialized Form
    • Field Detail

      • startStrings

        protected String[] startStrings
      • separators

        protected String[] separators
      • terminationStrings

        protected String[] terminationStrings
      • isComplete

        protected boolean isComplete
      • changed

        protected boolean changed
    • Constructor Detail

      • ListExpressionOperator

        public ListExpressionOperator()
    • Method Detail

      • getDatabaseStrings

        public String[] getDatabaseStrings​(int arguments)
        Returns an array of Strings that expects a query argument between each String in the array to form the Expression. The array is built from the defined startStrings, separators, and terminationStrings. Start strings and termination strings take precedence over separator strings. The first defined start string will be added to the array. All subsequent start strings are optional, meaning they will only be added to the array if there are argument spaces available. The defined set of separator strings will be repeated, as a complete set, as long as there are argument spaces available. The last defined termination string will be added to the array. All antecedent termination strings are optional, meaning they will only be added to the array if there are argument spaces available.
        Overrides:
        getDatabaseStrings in class ExpressionOperator
      • getStartStrings

        public String[] getStartStrings()
      • setStartString

        public void setStartString​(String startString)
      • setStartStrings

        public void setStartStrings​(String[] startStrings)
      • getSeparators

        public String[] getSeparators()
      • setSeparator

        public void setSeparator​(String separator)
      • setSeparators

        public void setSeparators​(String[] separators)
      • getTerminationStrings

        public String[] getTerminationStrings()
      • setTerminationString

        public void setTerminationString​(String terminationString)
      • setTerminationStrings

        public void setTerminationStrings​(String[] terminationStrings)
      • setIsComplete

        public void setIsComplete​(boolean isComplete)
      • isComplete

        public boolean isComplete()
        Description copied from class: ExpressionOperator
        INTERNAL: If we have all the required information, this operator is complete and can be used as is. Otherwise we will need to look up a platform- specific operator.
        Overrides:
        isComplete in class ExpressionOperator