Class ListExpressionOperator

java.lang.Object
org.eclipse.persistence.expressions.ExpressionOperator
org.eclipse.persistence.expressions.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
See Also:
  • Field Details

    • startStrings

      protected String[] startStrings
    • separators

      protected String[] separators
    • terminationStrings

      protected String[] terminationStrings
    • isComplete

      protected boolean isComplete
    • changed

      protected boolean changed
  • Constructor Details

    • ListExpressionOperator

      public ListExpressionOperator()
  • Method Details

    • clone

      public ExpressionOperator clone()
      Overrides:
      clone in class ExpressionOperator
    • copyTo

      public void copyTo(ExpressionOperator operator)
      Overrides:
      copyTo in class ExpressionOperator
    • getDatabaseStrings

      @Deprecated public String[] getDatabaseStrings()
      Deprecated.
      INTERNAL: Recalculate the database strings each time this is called in case one has been added.
      Overrides:
      getDatabaseStrings in class ExpressionOperator
    • 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