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
      • numberOfItems

        @Deprecated
        protected int numberOfItems
        Deprecated.
      • changed

        protected boolean changed
      • isComplete

        protected boolean isComplete
    • 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
      • getNumberOfItems

        @Deprecated
        public int getNumberOfItems()
        Deprecated.
      • setNumberOfItems

        @Deprecated
        public void setNumberOfItems​(int numberOfItems)
        Deprecated.
      • 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)
      • incrementNumberOfItems

        @Deprecated
        public void incrementNumberOfItems()
        Deprecated.
      • 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