Module org.eclipse.persistence.core
Class ParameterExpression
java.lang.Object
org.eclipse.persistence.expressions.Expression
org.eclipse.persistence.internal.expressions.BaseExpression
org.eclipse.persistence.internal.expressions.ParameterExpression
- All Implemented Interfaces:
Serializable,Cloneable
Used for parameterized expressions, such as expression defined in mapping queries.
- See Also:
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected Boolean'True' indicates this expression can bind parameters 'False' indicates this expression cannot bind parameters Defaults to 'null' to indicate specific no preferenceprotected DatabaseFieldThe parameter field or name.protected booleanprotected ExpressionThe opposite side of the relation, this is used for conversion of the parameter using the others mapping.Fields inherited from class org.eclipse.persistence.internal.expressions.BaseExpression
baseExpression, builderFields inherited from class org.eclipse.persistence.expressions.Expression
currentAlias, hashCode, lastTable, selectIfOrderedBy, shouldUseUpperCaseForIgnoreCase -
Constructor Summary
ConstructorsConstructorDescriptionParameterExpression(String fieldName) ParameterExpression(String fieldName, Expression localbaseExpression, Object type) ParameterExpression(DatabaseField field) ParameterExpression(DatabaseField field, Expression localbaseExpression) -
Method Summary
Modifier and TypeMethodDescriptionReturn description.canBind()INTERNAL: true indicates this expression can bind parameters false indicates this expression cannot bind parameters Defaults to null to indicate no specific preferenceintINTERNAL: Compute a consistent hash-code for the expression.INTERNAL: Used for debug printing.booleanINTERNAL: Return if the expression is equal to the other.This allows for nesting of parameterized expression.Return the expression builder which is the ultimate base of this expression, or null if there isn't one (shouldn't happen if we start from a root)getField()getField(DatabaseField field) This allows for nesting of parametrized expression.The opposite side of the relation, this is used for conversion of the parameter using the others mapping.getType()The inferred type of this parameter.getValue(AbstractRecord translationRow, AbstractSession session) Extract the value from the row.getValue(AbstractRecord translationRow, DatabaseQuery query, AbstractSession session) Extract the value from the row.booleanINTERNAL:booleanINTERNAL: Return true if this parameter expression maps to a property.booleanINTERNAL:protected voidpostCopyIn(Map alreadyDone) INTERNAL: Used for cloning.voidprintJava(ExpressionJavaPrinter printer) INTERNAL: Print java for project class generationvoidprintSQL(ExpressionSQLPrinter printer) INTERNAL: Print SQL onto the stream, using the ExpressionPrinter for contextrebuildOn(Expression newBase) INTERNAL: This expression is built on a different base than the one we want.voidresetPlaceHolderBuilder(ExpressionBuilder queryBuilder) INTERNAL: Search the tree for any expressions (like SubSelectExpressions) that have been built using a builder that is not attached to the query.voidsetCanBind(Boolean canBind) INTERNAL: Set to true if this expression can bind parameters Set to false if this expression cannot bind parameters Set to null to indicate no specific preferencevoidsetField(DatabaseField field) INTERNAL: Used to set the internal field value.voidsetIsProperty(boolean isProperty) INTERNAL: Set to true if this parameter expression maps to a property value.voidsetLocalBase(Expression localBase) The opposite side of the relation, this is used for conversion of the parameter using the others mapping.voidThe inferred type of this parameter.twistedForBaseAndContext(Expression newBase, Expression context, Expression oldBase) INTERNAL: Rebuild against the base, with the values of parameters supplied by the context expression.protected voidvalidateParameterValueAgainstMapping(Object value, boolean useBaseExpression) INTERNAL Validate the passed parameter against the local base mapping.valueFromObject(Object object, AbstractSession session, AbstractRecord translationRow, int valueHolderPolicy, boolean isObjectUnregistered) INTERNAL: Return the value for in memory comparison.voidwriteDescriptionOn(BufferedWriter writer) INTERNAL: Used to print a debug form of the expression tree.voidwriteFields(ExpressionSQLPrinter printer, List<DatabaseField> newFields, SQLSelectStatement statement) INTERNAL: Append the parameter into the printer.voidwriteSubexpressionsTo(BufferedWriter writer, int indent) Print the base for debuggin purposes.Methods inherited from class org.eclipse.persistence.internal.expressions.BaseExpression
getBaseExpression, setBaseExpression, shallowCloneMethods inherited from class org.eclipse.persistence.expressions.Expression
addDate, addDate, addMonths, addMonths, alias, aliasForTable, all, all, all, all, all, all, all, all, all, all, all, all, allOf, and, any, any, any, any, any, any, any, any, any, any, any, any, anyOf, anyOf, anyOfAllowingNone, anyOfAllowingNone, as, ascending, asciiValue, asOf, assignAlias, assignTableAliasesStartingAt, average, between, between, between, between, between, between, between, between, between, caseConditionStatement, caseConditionStatement, caseStatement, caseStatement, cast, clone, cloneUsing, coalesce, coalesce, concat, containsAllKeyWords, containsAnyKeyWords, containsSubstring, containsSubstring, containsSubstringIgnoringCase, containsSubstringIgnoringCase, convertNodeToUseOuterJoin, convertToUseOuterJoin, copiedVersionFrom, count, create, create, createWithBaseLast, currentDate, currentDateDate, currentTime, currentTimeStamp, dateDifference, dateDifference, dateName, datePart, dateToString, decode, descending, difference, distinct, doesConform, doesConform, equal, equal, equal, equal, equal, equal, equal, equal, equal, equal, equalOuterJoin, equalOuterJoin, equalsIgnoreCase, equalsIgnoreCase, except, except, exceptAll, exceptAll, exists, existsNode, extract, extractFields, extractPrimaryKeyValues, extractValue, extractValues, extractXml, from, fromConstant, fromLiteral, get, getAlias, getAllowingNull, getAsOfClause, getAsOfClauseRecursively, getClonedField, getField, getFields, getFieldValue, getFunction, getFunction, getFunction, getFunction, getFunctionWithArguments, getLeafDescriptor, getLeafMapping, getName, getNumberVal, getOperator, getOperator, getOwnedTables, getParameter, getParameter, getParameter, getProperty, getSelectionFields, getSelectionFields, getSession, getStringVal, getTable, getTable, getTableAliases, greaterThan, greaterThan, greaterThan, greaterThan, greaterThan, greaterThan, greaterThan, greaterThan, greaterThan, greaterThan, greaterThanEqual, greaterThanEqual, greaterThanEqual, greaterThanEqual, greaterThanEqual, greaterThanEqual, greaterThanEqual, greaterThanEqual, greaterThanEqual, greaterThanEqual, hasAsOfClause, hasBeenAliased, hashCode, hexToRaw, ifNull, in, in, in, in, in, in, in, in, in, in, in, in, index, indexOf, intersect, intersect, intersectAll, intersectAll, isClassTypeExpression, isCompoundExpression, isConstantExpression, isDataExpression, isEmpty, isExpressionBuilder, isFieldExpression, isFragment, isFunctionExpression, isLiteralExpression, isLogicalExpression, isMapEntryExpression, isNull, isObjectExpression, isQueryKeyExpression, isRelationExpression, isSubSelectExpression, isTableExpression, isTreatExpression, iterateOn, join, lastDay, leftJoin, leftPad, leftPad, leftTrim, leftTrim, length, lessThan, lessThan, lessThan, lessThan, lessThan, lessThan, lessThan, lessThan, lessThan, lessThan, lessThanEqual, lessThanEqual, lessThanEqual, lessThanEqual, lessThanEqual, lessThanEqual, lessThanEqual, lessThanEqual, lessThanEqual, lessThanEqual, like, like, like, like, likeIgnoreCase, likeIgnoreCase, literal, localDate, localDateTime, localTime, locate, locate, locate, mapEntry, mapKey, maximum, minimum, monthsBetween, newTime, nextDay, noneOf, normalize, not, notBetween, notBetween, notBetween, notBetween, notBetween, notBetween, notBetween, notBetween, notBetween, notEmpty, notEqual, notEqual, notEqual, notEqual, notEqual, notEqual, notEqual, notEqual, notEqual, notEqual, notExists, notIn, notIn, notIn, notIn, notIn, notIn, notIn, notIn, notIn, notIn, notIn, notIn, notLike, notLike, notLike, notLike, notNull, nullIf, nullsFirst, nullsLast, operator, or, performOperator, postfixSQL, prefixSQL, ref, regexp, regexp, registerIn, replace, replicate, replicate, resetCache, reverse, right, right, rightPad, rightPad, rightTrim, rightTrim, roundDate, selectIfOrderedBy, setSelectIfOrderedBy, size, size, some, some, some, some, some, some, some, some, some, some, some, some, sql, standardDeviation, subQuery, substring, substring, substring, substring, sum, toChar, toChar, toCharacter, toDate, toLowerCase, toNumber, toString, toString, toUpperCase, toUppercaseCasedWords, translate, treat, trim, trim, truncateDate, twist, type, union, union, unionAll, unionAll, validateNode, value, value, value, value, value, value, value, value, value, value, valueFromObject, variance, writeAlias, writeField
-
Field Details
-
field
The parameter field or name. -
localBase
The opposite side of the relation, this is used for conversion of the parameter using the others mapping. -
isProperty
protected boolean isProperty -
canBind
'True' indicates this expression can bind parameters 'False' indicates this expression cannot bind parameters Defaults to 'null' to indicate specific no preference
-
-
Constructor Details
-
ParameterExpression
public ParameterExpression() -
ParameterExpression
-
ParameterExpression
-
ParameterExpression
-
ParameterExpression
-
-
Method Details
-
equals
INTERNAL: Return if the expression is equal to the other. This is used to allow dynamic expression's SQL to be cached.- Overrides:
equalsin classExpression
-
computeHashCode
public int computeHashCode()INTERNAL: Compute a consistent hash-code for the expression. This is used to allow dynamic expression's SQL to be cached.- Overrides:
computeHashCodein classExpression
-
basicDescription
Return description. Used for toString. -
descriptionOfNodeType
INTERNAL: Used for debug printing.- Overrides:
descriptionOfNodeTypein classExpression
-
get
This allows for nesting of parameterized expression. This is used for parameterizing object comparisons.- Overrides:
getin classExpression
-
getBuilder
Return the expression builder which is the ultimate base of this expression, or null if there isn't one (shouldn't happen if we start from a root)- Overrides:
getBuilderin classBaseExpression
-
getField
-
setField
INTERNAL: Used to set the internal field value. -
getField
This allows for nesting of parametrized expression. This is used for parameterizing object comparisons.- Overrides:
getFieldin classExpression
-
getLocalBase
The opposite side of the relation, this is used for conversion of the parameter using the others mapping. -
getType
The inferred type of this parameter. Please note that the type might not be always initialized to correct value. It might be null if not initialized correctly -
setType
The inferred type of this parameter. Please note that the type might not be always initialized to correct value. It might be null if not initialized correctly -
getValue
Extract the value from the row. This may require recursion if it is a nested parameter. -
getValue
Extract the value from the row. This may require recursion if it is a nested parameter. -
isParameterExpression
public boolean isParameterExpression()Description copied from class:ExpressionINTERNAL:- Overrides:
isParameterExpressionin classExpression
-
isValueExpression
public boolean isValueExpression()INTERNAL:- Overrides:
isValueExpressionin classExpression
-
isProperty
public boolean isProperty()INTERNAL: Return true if this parameter expression maps to a property. -
canBind
INTERNAL: true indicates this expression can bind parameters false indicates this expression cannot bind parameters Defaults to null to indicate no specific preference -
postCopyIn
INTERNAL: Used for cloning.- Overrides:
postCopyInin classBaseExpression
-
printSQL
INTERNAL: Print SQL onto the stream, using the ExpressionPrinter for context- Specified by:
printSQLin classExpression
-
printJava
INTERNAL: Print java for project class generation- Overrides:
printJavain classExpression
-
rebuildOn
INTERNAL: This expression is built on a different base than the one we want. Rebuild it and return the root of the new tree- Specified by:
rebuildOnin classExpression- See Also:
-
resetPlaceHolderBuilder
INTERNAL: Search the tree for any expressions (like SubSelectExpressions) that have been built using a builder that is not attached to the query. This happens in case of an Exists call using a new ExpressionBuilder(). This builder needs to be replaced with one from the query.- Overrides:
resetPlaceHolderBuilderin classBaseExpression
-
setIsProperty
public void setIsProperty(boolean isProperty) INTERNAL: Set to true if this parameter expression maps to a property value. -
setCanBind
INTERNAL: Set to true if this expression can bind parameters Set to false if this expression cannot bind parameters Set to null to indicate no specific preference -
setLocalBase
The opposite side of the relation, this is used for conversion of the parameter using the others mapping.- Overrides:
setLocalBasein classExpression
-
twistedForBaseAndContext
public Expression twistedForBaseAndContext(Expression newBase, Expression context, Expression oldBase) INTERNAL: Rebuild against the base, with the values of parameters supplied by the context expression. This is used for transforming a standalone expression (e.g. the join criteria of a mapping) into part of some larger expression. You normally would not call this directly, instead calling twist, (see the comment there for more details).- Overrides:
twistedForBaseAndContextin classExpression
-
validateParameterValueAgainstMapping
INTERNAL Validate the passed parameter against the local base mapping. Throw a QueryException if the parameter is of an incorrect class for object comparison. Added for Bug 245268 -
valueFromObject
public Object valueFromObject(Object object, AbstractSession session, AbstractRecord translationRow, int valueHolderPolicy, boolean isObjectUnregistered) INTERNAL: Return the value for in memory comparison. This is only valid for valueable expressions.- Overrides:
valueFromObjectin classExpression- Parameters:
isObjectUnregistered- true if object possibly not a clone, but is being conformed against the unit of work cache.
-
writeDescriptionOn
INTERNAL: Used to print a debug form of the expression tree.- Overrides:
writeDescriptionOnin classExpression- Throws:
IOException
-
writeFields
public void writeFields(ExpressionSQLPrinter printer, List<DatabaseField> newFields, SQLSelectStatement statement) INTERNAL: Append the parameter into the printer. "Normal" ReadQuery never has ParameterExpression in it's select clause hence for a "normal" ReadQuery this method is never called. The reason this method was added is that UpdateAllQuery (in case temporary storage is required) creates a "helper" ReportQuery with ReportItem corresponding to each update expression - and update expression may be a ParameterExpression. The call created by "helper" ReportQuery is never executed - it's used during construction of insert call into temporary storage.- Overrides:
writeFieldsin classExpression
-
writeSubexpressionsTo
Print the base for debuggin purposes.- Overrides:
writeSubexpressionsToin classExpression- Throws:
IOException
-