java.lang.Object
org.eclipse.persistence.expressions.ExpressionOperator
org.eclipse.persistence.internal.expressions.ExtractOperator
All Implemented Interfaces:
Serializable

public class ExtractOperator extends ExpressionOperator
Expression operator customization for EXTRACT(<date-time-part> FROM <date-time>). Contains support for platform specific native SQL override for individual <date-time-part> values.
See Also:
  • Constructor Details

    • ExtractOperator

      public ExtractOperator()
      Creates an instance of ExtractOperator expression. Default native database Strings are set for EXTRACT expression.
    • ExtractOperator

      protected ExtractOperator(List<String> dbStrings)
      Creates an instance of ExtractOperator expression. Custom native database Strings are set for EXTRACT expression.
      Parameters:
      dbStrings - native database Strings
  • Method Details

    • printYearSQL

      protected void printYearSQL(Expression first, Expression second, ExpressionSQLPrinter printer)
      Printer for YEAR (<date-time-part> argument. This method shall be overriden to implement platform specific SQL printer.
      Parameters:
      first - first expression (<date-time> argument)
      second - second expression (<date-time-part> argument)
      printer - target printer
    • printQuarterSQL

      protected void printQuarterSQL(Expression first, Expression second, ExpressionSQLPrinter printer)
      Printer for QUARTER (<date-time-part> argument. This method shall be overriden to implement platform specific SQL printer.
      Parameters:
      first - first expression (<date-time> argument)
      second - second expression (<date-time-part> argument)
      printer - target printer
    • printMonthSQL

      protected void printMonthSQL(Expression first, Expression second, ExpressionSQLPrinter printer)
      Printer for MONTH (<date-time-part> argument. This method shall be overriden to implement platform specific SQL printer.
      Parameters:
      first - first expression (<date-time> argument)
      second - second expression (<date-time-part> argument)
      printer - target printer
    • printWeekSQL

      protected void printWeekSQL(Expression first, Expression second, ExpressionSQLPrinter printer)
      Printer for WEEK (<date-time-part> argument. This method shall be overriden to implement platform specific SQL printer.
      Parameters:
      first - first expression (<date-time> argument)
      second - second expression (<date-time-part> argument)
      printer - target printer
    • printDaySQL

      protected void printDaySQL(Expression first, Expression second, ExpressionSQLPrinter printer)
      Printer for DAY (<date-time-part> argument. This method shall be overriden to implement platform specific SQL printer.
      Parameters:
      first - first expression (<date-time> argument)
      second - second expression (<date-time-part> argument)
      printer - target printer
    • printHourSQL

      protected void printHourSQL(Expression first, Expression second, ExpressionSQLPrinter printer)
      Printer for HOUR (<date-time-part> argument. This method shall be overriden to implement platform specific SQL printer.
      Parameters:
      first - first expression (<date-time> argument)
      second - second expression (<date-time-part> argument)
      printer - target printer
    • printMinuteSQL

      protected void printMinuteSQL(Expression first, Expression second, ExpressionSQLPrinter printer)
      Printer for MINUTE (<date-time-part> argument. This method shall be overriden to implement platform specific SQL printer.
      Parameters:
      first - first expression (<date-time> argument)
      second - second expression (<date-time-part> argument)
      printer - target printer
    • printSecondSQL

      protected void printSecondSQL(Expression first, Expression second, ExpressionSQLPrinter printer)
      Printer for SECOND (<date-time-part> argument. This method shall be overriden to implement platform specific SQL printer.
      Parameters:
      first - first expression (<date-time> argument)
      second - second expression (<date-time-part> argument)
      printer - target printer
    • printDuo

      public void printDuo(Expression first, Expression second, ExpressionSQLPrinter printer)
      Description copied from class: ExpressionOperator
      INTERNAL: For performance, special case printing two children, since it's by far the most common
      Overrides:
      printDuo in class ExpressionOperator
    • printCollection

      public void printCollection(List<Expression> items, ExpressionSQLPrinter printer)
      Description copied from class: ExpressionOperator
      INTERNAL: Print the collection onto the SQL stream.
      Overrides:
      printCollection in class ExpressionOperator
    • printYearJava

      protected void printYearJava(Expression first, Expression second, ExpressionJavaPrinter printer)
      Printer for YEAR (<date-time-part> argument. This method shall be overriden to implement platform specific Java printer.
      Parameters:
      first - first expression (<date-time> argument)
      second - second expression (<date-time-part> argument)
      printer - target printer
    • printQuarterJava

      protected void printQuarterJava(Expression first, Expression second, ExpressionJavaPrinter printer)
      Printer for QUARTER (<date-time-part> argument. This method shall be overriden to implement platform specific Java printer.
      Parameters:
      first - first expression (<date-time> argument)
      second - second expression (<date-time-part> argument)
      printer - target printer
    • printMonthJava

      protected void printMonthJava(Expression first, Expression second, ExpressionJavaPrinter printer)
      Printer for MONTH (<date-time-part> argument. This method shall be overriden to implement platform specific Java printer.
      Parameters:
      first - first expression (<date-time> argument)
      second - second expression (<date-time-part> argument)
      printer - target printer
    • printWeekJava

      protected void printWeekJava(Expression first, Expression second, ExpressionJavaPrinter printer)
      Printer for WEEK (<date-time-part> argument. This method shall be overriden to implement platform specific Java printer.
      Parameters:
      first - first expression (<date-time> argument)
      second - second expression (<date-time-part> argument)
      printer - target printer
    • printDayJava

      protected void printDayJava(Expression first, Expression second, ExpressionJavaPrinter printer)
      Printer for DAY (<date-time-part> argument. This method shall be overriden to implement platform specific Java printer.
      Parameters:
      first - first expression (<date-time> argument)
      second - second expression (<date-time-part> argument)
      printer - target printer
    • printHourJava

      protected void printHourJava(Expression first, Expression second, ExpressionJavaPrinter printer)
      Printer for HOUR (<date-time-part> argument. This method shall be overriden to implement platform specific Java printer.
      Parameters:
      first - first expression (<date-time> argument)
      second - second expression (<date-time-part> argument)
      printer - target printer
    • printMinuteJava

      protected void printMinuteJava(Expression first, Expression second, ExpressionJavaPrinter printer)
      Printer for MINUTE (<date-time-part> argument. This method shall be overriden to implement platform specific Java printer.
      Parameters:
      first - first expression (<date-time> argument)
      second - second expression (<date-time-part> argument)
      printer - target printer
    • printSecondJava

      protected void printSecondJava(Expression first, Expression second, ExpressionJavaPrinter printer)
      Printer for SECOND (<date-time-part> argument. This method shall be overriden to implement platform specific Java printer.
      Parameters:
      first - first expression (<date-time> argument)
      second - second expression (<date-time-part> argument)
      printer - target printer
    • printJavaDuo

      public void printJavaDuo(Expression first, Expression second, ExpressionJavaPrinter printer)
      Description copied from class: ExpressionOperator
      INTERNAL: For performance, special case printing two children, since it's by far the most common
      Overrides:
      printJavaDuo in class ExpressionOperator
    • printJavaCollection

      public void printJavaCollection(List<Expression> items, ExpressionJavaPrinter printer)
      Description copied from class: ExpressionOperator
      INTERNAL: Print the collection onto the SQL stream.
      Overrides:
      printJavaCollection in class ExpressionOperator