Top Description Fields Constructors Methods
org.eclipse.persistence.internal.expressions

public Class ExtractOperator

extends ExpressionOperator
Class Inheritance
Known Direct Subclasses
org.eclipse.persistence.platform.database.DerbyPlatform.DerbyExtractOperator, org.eclipse.persistence.platform.database.MySQLPlatform.MySQLExtractOperator, org.eclipse.persistence.platform.database.OraclePlatform.OracleExtractOperator, org.eclipse.persistence.platform.database.SQLServerPlatform.SqlServerExtractOperator
Imports
java.util.ArrayList, .List, org.eclipse.persistence.expressions.Expression, .ExpressionOperator, org.eclipse.persistence.internal.helper.ClassConstants

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.

Field Summary

Inherited from org.eclipse.persistence.expressions.ExpressionOperator:
AbsAcosAddAddDateAddMonthsAggregateOperatorAllallInternalOperatorsallOperatorsAndAnyargumentIndicesAsAscendingAsciiAsinAtanAtan2AverageBetweenCaseCaseConditionCastCeilCharIndexCharLengthChrCoalesceComparisonOperatorConcatCosCoshCotCountCurrentDateCurrentTimeDateDifferenceDateNameDatePartDateToStringDecodeDerefDescendingDifferenceDistinctDivideEqualEqualOuterJoinExceptExceptAllExistsExistsNodeExpExtractExtractValueExtractXmlFloorFunctionOperatorGetNumberValGetStringValGreaterThanGreaterThanEqualGreatestHexToRawInInitcapInstringInSubQueryIntersectIntersectAllisBindingSupportedIsFragmentIsNullisPrefixisRepeatingjavaStringsLastDayLeastLeftPadLeftTrimLeftTrim2LengthLessThanLessThanEqualLikeLikeEscapeLnLocalDateLocalDateTimeLocalTimeLocateLocate2LogLogicalOperatorMaximumMinimumModMonthsBetweenMultiplynameNegateNewTimeNextDaynodeClassNotNotBetweenNotEqualNotExistsNotInNotInSubQueryNotLikeNotLikeEscapeNotNullNullIfNullsFirstNullsLastNvlOrOrderOperatorplatformOperatorNamesplatformOperatorSelectorsPowerRefRefToHexRegexpReplaceReplicateReverseRightRightPadRightTrimRightTrim2RoundRoundDateSDO_FILTERSDO_NNSDO_RELATESDO_WITHIN_DISTANCEselectorSignSinSinhSomeSoundexSqrtStandardDeviationSubstringSubstringSingleArgSubtractSumTanTanhToCharToCharWithFormatToDateTodayToLowerCaseToNumberToUpperCaseTranslateTrimTrim2TruncTruncateDatetypeUnionUnionAllValueVariance

Constructor Summary

AccessConstructor and Description
public
ExtractOperator()

Creates an instance of ExtractOperator expression.

protected
ExtractOperator(List<String>
native database Strings
dbStrings
)

Creates an instance of ExtractOperator expression.

Method Summary

Modifier and TypeMethod and Description
private static List<String>
public void
printCollection(List<Expression> items, ExpressionSQLPrinter printer)

Overrides org.eclipse.persistence.expressions.ExpressionOperator.printCollection.

INTERNAL: Print the collection onto the SQL stream.
protected void
printDayJava(final Expression
first expression (<date-time> argument)
first
,
Expression
second expression (<date-time-part> argument)
second
,
final ExpressionJavaPrinter
target printer
printer
)

Printer for DAY (<date-time-part> argument.

protected void
printDaySQL(final Expression
first expression (<date-time> argument)
first
,
Expression
second expression (<date-time-part> argument)
second
,
final ExpressionSQLPrinter
target printer
printer
)

Printer for DAY (<date-time-part> argument.

public void
printDuo(Expression first, Expression second, ExpressionSQLPrinter printer)

Overrides org.eclipse.persistence.expressions.ExpressionOperator.printDuo.

INTERNAL: For performance, special case printing two children, since it's by far the most common
protected void
printHourJava(final Expression
first expression (<date-time> argument)
first
,
Expression
second expression (<date-time-part> argument)
second
,
final ExpressionJavaPrinter
target printer
printer
)

Printer for HOUR (<date-time-part> argument.

protected void
printHourSQL(final Expression
first expression (<date-time> argument)
first
,
Expression
second expression (<date-time-part> argument)
second
,
final ExpressionSQLPrinter
target printer
printer
)

Printer for HOUR (<date-time-part> argument.

public void
public void
printJavaDuo(Expression first, Expression second, ExpressionJavaPrinter printer)

Overrides org.eclipse.persistence.expressions.ExpressionOperator.printJavaDuo.

INTERNAL: For performance, special case printing two children, since it's by far the most common
protected void
printMinuteJava(final Expression
first expression (<date-time> argument)
first
,
Expression
second expression (<date-time-part> argument)
second
,
final ExpressionJavaPrinter
target printer
printer
)

Printer for MINUTE (<date-time-part> argument.

protected void
printMinuteSQL(final Expression
first expression (<date-time> argument)
first
,
Expression
second expression (<date-time-part> argument)
second
,
final ExpressionSQLPrinter
target printer
printer
)

Printer for MINUTE (<date-time-part> argument.

protected void
printMonthJava(final Expression
first expression (<date-time> argument)
first
,
Expression
second expression (<date-time-part> argument)
second
,
final ExpressionJavaPrinter
target printer
printer
)

Printer for MONTH (<date-time-part> argument.

protected void
printMonthSQL(final Expression
first expression (<date-time> argument)
first
,
Expression
second expression (<date-time-part> argument)
second
,
final ExpressionSQLPrinter
target printer
printer
)

Printer for MONTH (<date-time-part> argument.

private void
printPartJava(final Expression
first expression (<date-time> argument)
first
,
Expression
second expression (<date-time-part> argument)
second
,
final ExpressionJavaPrinter
target printer
printer
)

Default Java printer for EXTRACT(<date-time-part> FROM <date-time>).

private void
printPartSql(final Expression
first expression (<date-time> argument)
first
,
Expression
second expression (<date-time-part> argument)
second
,
final ExpressionSQLPrinter
target printer
printer
)

Default SQL printer for EXTRACT(<date-time-part> FROM <date-time>).

protected void
printQuarterJava(final Expression
first expression (<date-time> argument)
first
,
Expression
second expression (<date-time-part> argument)
second
,
final ExpressionJavaPrinter
target printer
printer
)

Printer for QUARTER (<date-time-part> argument.

protected void
printQuarterSQL(final Expression
first expression (<date-time> argument)
first
,
Expression
second expression (<date-time-part> argument)
second
,
final ExpressionSQLPrinter
target printer
printer
)

Printer for QUARTER (<date-time-part> argument.

protected void
printSecondJava(final Expression
first expression (<date-time> argument)
first
,
Expression
second expression (<date-time-part> argument)
second
,
final ExpressionJavaPrinter
target printer
printer
)

Printer for SECOND (<date-time-part> argument.

protected void
printSecondSQL(final Expression
first expression (<date-time> argument)
first
,
Expression
second expression (<date-time-part> argument)
second
,
final ExpressionSQLPrinter
target printer
printer
)

Printer for SECOND (<date-time-part> argument.

protected void
printWeekJava(final Expression
first expression (<date-time> argument)
first
,
Expression
second expression (<date-time-part> argument)
second
,
final ExpressionJavaPrinter
target printer
printer
)

Printer for WEEK (<date-time-part> argument.

protected void
printWeekSQL(final Expression
first expression (<date-time> argument)
first
,
Expression
second expression (<date-time-part> argument)
second
,
final ExpressionSQLPrinter
target printer
printer
)

Printer for WEEK (<date-time-part> argument.

protected void
printYearJava(final Expression
first expression (<date-time> argument)
first
,
Expression
second expression (<date-time-part> argument)
second
,
final ExpressionJavaPrinter
target printer
printer
)

Printer for YEAR (<date-time-part> argument.

protected void
printYearSQL(final Expression
first expression (<date-time> argument)
first
,
Expression
second expression (<date-time-part> argument)
second
,
final ExpressionSQLPrinter
target printer
printer
)

Printer for YEAR (<date-time-part> argument.

Inherited from org.eclipse.persistence.expressions.ExpressionOperator:
absacosaddaddDateaddMonthsaddOperatorallandanyapplyFunctionasascendingasciiasinatanaveragebePostfixbePrefixbeRepeatingbetweencaseConditionStatementcaseStatementcastceilcharIndexcharLengthchrclonecoalesceconcatconformBetweenconformLikecopyTocoscoshcotcountcreateNodecurrentDatecurrentTimecurrentTimeStampdateDifferencedateNamedatePartdateToStringdecodederefdescendingdifferencedistinctdividedoesRelationConformequalequalOuterJoinequalsexceptexceptAllexistsexistsNodeexpexpressionForexpressionForexpressionForArgumentsexpressionForWithBaseLastextractextractValueextractXmlfloorgetAllInternalOperatorsgetAllOperatorsgetArgumentIndicesgetDatabaseStringsgetDatabaseStringsgetInternalOperatorgetJavaStringsgetNamegetNodeClassgetNumberValgetOperatorgetPlatformOperatorNamegetPlatformOperatorNamesgetPlatformOperatorSelectorsgetSelectorgetStringValgetTypegreaterThangreaterThanEqualgreatesthashCodehexToRawifNullininitcapinitializeAggregateFunctionOperatorsinitializeComparisonOperatorsinitializeFunctionOperatorsinitializeLogicalOperatorsinitializeOperatorsinitializeOrderOperatorsinitializePlatformOperatorNamesinitializePlatformOperatorSelectorsinitializeRelationOperatorsinstringinSubQueryintersectintersectAllisAggregateOperatorisAllisAnyisAnyOrAllisBindingSupportedisComparisonOperatorisCompleteisFragmentisFunctionOperatorisLogicalOperatorisNullisOrderOperatorisPrefixlastDayleastleftPadleftTrimleftTrim2lengthlessThanlessThanEquallikelikeEscapelnlocalDatelocalDateTimelocalTimelocatelocate2logmaximumminimummodmonthsBetweenmultiplynegatenewExpressionForArgumentnewExpressionForArgumentsnewExpressionForArgumentWithBaseLastnewTimenextDaynotBetweennotEqualnotExistsnotInnotInSubQuerynotLikenotLikeEscapenotNullnotOperatornullIfnullsFirstnullsLastorpowerprintsAsprintsAsprintsJavaAsprintsJavaAsrefrefToHexregexpregisterOperatorreplacereplicateresetOperatorsreverserightrightPadrightTrimrightTrim2roundroundDatesetArgumentIndicessetIsBindingSupportedsetNamesetNodeClasssetSelectorsetTypesignsimpleAggregatesimpleFunctionsimpleFunctionsimpleFunctionNoParenthesessimpleLogicalsimpleLogicalNoParenssimpleMathsimpleOrderingsimpleRelationsimpleRelationsimpleThreeArgumentFunctionsimpleTwoArgumentFunctionsinsinhsomesoundexsqrtstandardDeviationsubstringsubstringSingleArgsubtractsumtantanhtoChartoCharWithFormattoDatetodaytoLowerCasetoNumbertoStringtoUpperCasetranslatetrimtrim2trunctruncateDateunionunionAllvaluevariance

Constructor Detail

ExtractOperatorback to summary
public ExtractOperator()

Creates an instance of ExtractOperator expression. Default native database Strings are set for EXTRACT expression.

ExtractOperatorback to summary
protected ExtractOperator(List<String> dbStrings)

Creates an instance of ExtractOperator expression. Custom native database Strings are set for EXTRACT expression.

Parameters
dbStrings:List<String>

native database Strings

Method Detail

defaultDbStringsback to summary
private static List<String> defaultDbStrings()
printCollectionback to summary
public void printCollection(List<Expression> items, ExpressionSQLPrinter printer)

Overrides org.eclipse.persistence.expressions.ExpressionOperator.printCollection.

Doc from org.eclipse.persistence.expressions.ExpressionOperator.printCollection.

INTERNAL: Print the collection onto the SQL stream.

Annotations
@Override
printDayJavaback to summary
protected void printDayJava(final Expression first, Expression second, final ExpressionJavaPrinter printer)

Printer for DAY (<date-time-part> argument. This method shall be overriden to implement platform specific Java printer.

Parameters
first:Expression

first expression (<date-time> argument)

second:Expression

second expression (<date-time-part> argument)

printer:ExpressionJavaPrinter

target printer

printDaySQLback to summary
protected void printDaySQL(final Expression first, Expression second, final ExpressionSQLPrinter printer)

Printer for DAY (<date-time-part> argument. This method shall be overriden to implement platform specific SQL printer.

Parameters
first:Expression

first expression (<date-time> argument)

second:Expression

second expression (<date-time-part> argument)

printer:ExpressionSQLPrinter

target printer

printDuoback to summary
public void printDuo(Expression first, Expression second, ExpressionSQLPrinter printer)

Overrides org.eclipse.persistence.expressions.ExpressionOperator.printDuo.

Doc from org.eclipse.persistence.expressions.ExpressionOperator.printDuo.

INTERNAL: For performance, special case printing two children, since it's by far the most common

Annotations
@Override
printHourJavaback to summary
protected void printHourJava(final Expression first, Expression second, final ExpressionJavaPrinter printer)

Printer for HOUR (<date-time-part> argument. This method shall be overriden to implement platform specific Java printer.

Parameters
first:Expression

first expression (<date-time> argument)

second:Expression

second expression (<date-time-part> argument)

printer:ExpressionJavaPrinter

target printer

printHourSQLback to summary
protected void printHourSQL(final Expression first, Expression second, final ExpressionSQLPrinter printer)

Printer for HOUR (<date-time-part> argument. This method shall be overriden to implement platform specific SQL printer.

Parameters
first:Expression

first expression (<date-time> argument)

second:Expression

second expression (<date-time-part> argument)

printer:ExpressionSQLPrinter

target printer

printJavaCollectionback to summary
public void printJavaCollection(List<Expression> items, ExpressionJavaPrinter printer)

Overrides org.eclipse.persistence.expressions.ExpressionOperator.printJavaCollection.

Doc from org.eclipse.persistence.expressions.ExpressionOperator.printJavaCollection.

INTERNAL: Print the collection onto the SQL stream.

Annotations
@Override
printJavaDuoback to summary
public void printJavaDuo(Expression first, Expression second, ExpressionJavaPrinter printer)

Overrides org.eclipse.persistence.expressions.ExpressionOperator.printJavaDuo.

Doc from org.eclipse.persistence.expressions.ExpressionOperator.printJavaDuo.

INTERNAL: For performance, special case printing two children, since it's by far the most common

Annotations
@Override
printMinuteJavaback to summary
protected void printMinuteJava(final Expression first, Expression second, final ExpressionJavaPrinter printer)

Printer for MINUTE (<date-time-part> argument. This method shall be overriden to implement platform specific Java printer.

Parameters
first:Expression

first expression (<date-time> argument)

second:Expression

second expression (<date-time-part> argument)

printer:ExpressionJavaPrinter

target printer

printMinuteSQLback to summary
protected void printMinuteSQL(final Expression first, Expression second, final ExpressionSQLPrinter printer)

Printer for MINUTE (<date-time-part> argument. This method shall be overriden to implement platform specific SQL printer.

Parameters
first:Expression

first expression (<date-time> argument)

second:Expression

second expression (<date-time-part> argument)

printer:ExpressionSQLPrinter

target printer

printMonthJavaback to summary
protected void printMonthJava(final Expression first, Expression second, final ExpressionJavaPrinter printer)

Printer for MONTH (<date-time-part> argument. This method shall be overriden to implement platform specific Java printer.

Parameters
first:Expression

first expression (<date-time> argument)

second:Expression

second expression (<date-time-part> argument)

printer:ExpressionJavaPrinter

target printer

printMonthSQLback to summary
protected void printMonthSQL(final Expression first, Expression second, final ExpressionSQLPrinter printer)

Printer for MONTH (<date-time-part> argument. This method shall be overriden to implement platform specific SQL printer.

Parameters
first:Expression

first expression (<date-time> argument)

second:Expression

second expression (<date-time-part> argument)

printer:ExpressionSQLPrinter

target printer

printPartJavaback to summary
private void printPartJava(final Expression first, Expression second, final ExpressionJavaPrinter printer)

Default Java printer for EXTRACT(<date-time-part> FROM <date-time>). It expects 2 arguments (first, second), argument indices array of size 2 and 3 database Strings (prefix, arguments separator and suffix). Indices swap first and second expression order by default.

Parameters
first:Expression

first expression (<date-time> argument)

second:Expression

second expression (<date-time-part> argument)

printer:ExpressionJavaPrinter

target printer

printPartSqlback to summary
private void printPartSql(final Expression first, Expression second, final ExpressionSQLPrinter printer)

Default SQL printer for EXTRACT(<date-time-part> FROM <date-time>). It expects 2 arguments (first, second), argument indices array of size 2 and 3 database Strings (prefix, arguments separator and suffix). Indices swap first and second expression order by default.

Parameters
first:Expression

first expression (<date-time> argument)

second:Expression

second expression (<date-time-part> argument)

printer:ExpressionSQLPrinter

target printer

printQuarterJavaback to summary
protected void printQuarterJava(final Expression first, Expression second, final ExpressionJavaPrinter printer)

Printer for QUARTER (<date-time-part> argument. This method shall be overriden to implement platform specific Java printer.

Parameters
first:Expression

first expression (<date-time> argument)

second:Expression

second expression (<date-time-part> argument)

printer:ExpressionJavaPrinter

target printer

printQuarterSQLback to summary
protected void printQuarterSQL(final Expression first, Expression second, final ExpressionSQLPrinter printer)

Printer for QUARTER (<date-time-part> argument. This method shall be overriden to implement platform specific SQL printer.

Parameters
first:Expression

first expression (<date-time> argument)

second:Expression

second expression (<date-time-part> argument)

printer:ExpressionSQLPrinter

target printer

printSecondJavaback to summary
protected void printSecondJava(final Expression first, Expression second, final ExpressionJavaPrinter printer)

Printer for SECOND (<date-time-part> argument. This method shall be overriden to implement platform specific Java printer.

Parameters
first:Expression

first expression (<date-time> argument)

second:Expression

second expression (<date-time-part> argument)

printer:ExpressionJavaPrinter

target printer

printSecondSQLback to summary
protected void printSecondSQL(final Expression first, Expression second, final ExpressionSQLPrinter printer)

Printer for SECOND (<date-time-part> argument. This method shall be overriden to implement platform specific SQL printer.

Parameters
first:Expression

first expression (<date-time> argument)

second:Expression

second expression (<date-time-part> argument)

printer:ExpressionSQLPrinter

target printer

printWeekJavaback to summary
protected void printWeekJava(final Expression first, Expression second, final ExpressionJavaPrinter printer)

Printer for WEEK (<date-time-part> argument. This method shall be overriden to implement platform specific Java printer.

Parameters
first:Expression

first expression (<date-time> argument)

second:Expression

second expression (<date-time-part> argument)

printer:ExpressionJavaPrinter

target printer

printWeekSQLback to summary
protected void printWeekSQL(final Expression first, Expression second, final ExpressionSQLPrinter printer)

Printer for WEEK (<date-time-part> argument. This method shall be overriden to implement platform specific SQL printer.

Parameters
first:Expression

first expression (<date-time> argument)

second:Expression

second expression (<date-time-part> argument)

printer:ExpressionSQLPrinter

target printer

printYearJavaback to summary
protected void printYearJava(final Expression first, Expression second, final ExpressionJavaPrinter printer)

Printer for YEAR (<date-time-part> argument. This method shall be overriden to implement platform specific Java printer.

Parameters
first:Expression

first expression (<date-time> argument)

second:Expression

second expression (<date-time-part> argument)

printer:ExpressionJavaPrinter

target printer

printYearSQLback to summary
protected void printYearSQL(final Expression first, Expression second, final ExpressionSQLPrinter printer)

Printer for YEAR (<date-time-part> argument. This method shall be overriden to implement platform specific SQL printer.

Parameters
first:Expression

first expression (<date-time> argument)

second:Expression

second expression (<date-time-part> argument)

printer:ExpressionSQLPrinter

target printer