Class FieldExpression
- java.lang.Object
-
- org.eclipse.persistence.expressions.Expression
-
- org.eclipse.persistence.internal.expressions.BaseExpression
-
- org.eclipse.persistence.internal.expressions.DataExpression
-
- org.eclipse.persistence.internal.expressions.FieldExpression
-
- All Implemented Interfaces:
Serializable
,Cloneable
- Direct Known Subclasses:
IndexExpression
public class FieldExpression extends DataExpression
Field expressions represent a field of a table. Their base is either a table or object expression. This is used for mapping queries and to allow queries on non-mapped field or tables.- See Also:
- Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description protected DatabaseField
aliasedField
protected DatabaseField
field
-
Fields inherited from class org.eclipse.persistence.internal.expressions.DataExpression
asOfClause, derivedFields, derivedTables, hasBeenNormalized, tableAliases
-
Fields inherited from class org.eclipse.persistence.internal.expressions.BaseExpression
baseExpression, builder
-
Fields inherited from class org.eclipse.persistence.expressions.Expression
currentAlias, hashCode, lastTable, selectIfOrderedBy, shouldUseUpperCaseForIgnoreCase
-
-
Constructor Summary
Constructors Constructor Description FieldExpression()
FieldExpression constructor comment.FieldExpression(DatabaseField newField)
FieldExpression constructor comment.FieldExpression(DatabaseField newField, Expression myBase)
FieldExpression constructor comment.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
clearAliases()
INTERNAL:int
computeHashCode()
INTERNAL: Compute a consistent hash-code for the expression.String
descriptionOfNodeType()
INTERNAL: Used for debug printing.boolean
equals(Object object)
INTERNAL: Return if the expression is equal to the other.DatabaseField
getAliasedField()
INTERNAL: Return the field appropriately aliasedDatabaseField
getClonedField()
INTERNAL: If there are any fields associated with this expression, return themVector
getClonedFields()
INTERNAL: If there are any fields associated with this expression, return themDatabaseField
getField()
INTERNAL:Vector
getFields()
INTERNAL: Return all the fieldsObject
getFieldValue(Object value, AbstractSession session)
INTERNAL: Provide for conversion of the passed object's value, based on the referenced field value.boolean
isAttribute()
INTERNAL:boolean
isFieldExpression()
INTERNAL:Expression
normalize(ExpressionNormalizer normalizer)
INTERNAL: Normalize the expression into a printable structure.void
printJava(ExpressionJavaPrinter printer)
INTERNAL: Print java for project class generationvoid
printSQL(ExpressionSQLPrinter printer)
INTERNAL: Print SQL onto the stream, using the ExpressionPrinter for contextExpression
rebuildOn(Expression newBase)
INTERNAL: This expression is built on a different base than the one we want.void
setField(DatabaseField newField)
INTERNAL: Set the field in the mapping.Expression
twistedForBaseAndContext(Expression newBase, Expression context, Expression oldBase)
INTERNAL: Rebuild myself against the base, with the values of parameters supplied by the context expression.void
validateNode()
Do any required validation for this node.Object
valueFromObject(Object object, AbstractSession session, AbstractRecord translationRow, int valueHolderPolicy, boolean isObjectUnregistered)
INTERNAL: Return the value for in memory comparison.void
writeDescriptionOn(BufferedWriter writer)
INTERNAL: Used to print a debug form of the expression tree.protected void
writeField(ExpressionSQLPrinter printer, DatabaseField field, SQLSelectStatement statement)
INTERNAL: Append the field name to the writer.void
writeFields(ExpressionSQLPrinter printer, List<DatabaseField> newFields, SQLSelectStatement statement)
INTERNAL: called from SQLSelectStatement.writeFieldsFromExpression(...)protected void
writeForUpdateOf(ExpressionSQLPrinter printer, SQLSelectStatement statement)
INTERNAL: writes the field for fine-grained pessimistic locking.-
Methods inherited from class org.eclipse.persistence.internal.expressions.DataExpression
addDerivedField, addDerivedTable, aliasForTable, asOf, assignAlias, assignAlias, copyCollection, existingDerivedField, existingDerivedTable, getAlias, getAsOfClause, getContainingDescriptor, getDescriptor, getField, getField, getMapping, getQueryKeyOrNull, getTable, getTable, getTableAliases, hasAsOfClause, hasBeenAliased, hasBeenNormalized, hasDerivedFields, hasDerivedTables, isDataExpression, iterateOn, newDerivedField, newDerivedTable, postCopyIn, setHasBeenNormalized, setTableAliases, tableAliasesDescription, writeSubexpressionsTo
-
Methods inherited from class org.eclipse.persistence.internal.expressions.BaseExpression
getBaseExpression, getBuilder, resetPlaceHolderBuilder, setBaseExpression, shallowClone
-
Methods inherited from class org.eclipse.persistence.expressions.Expression
addDate, addDate, addMonths, addMonths, alias, 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, 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, get, getAllowingNull, getAsOfClauseRecursively, getFunction, getFunction, getFunction, getFunction, getFunctionWithArguments, getLeafDescriptor, getLeafMapping, getName, getNumberVal, getOperator, getOperator, getOwnedTables, getParameter, getParameter, getParameter, getProperty, getSelectionFields, getSelectionFields, getSession, getStringVal, greaterThan, greaterThan, greaterThan, greaterThan, greaterThan, greaterThan, greaterThan, greaterThan, greaterThan, greaterThan, greaterThanEqual, greaterThanEqual, greaterThanEqual, greaterThanEqual, greaterThanEqual, greaterThanEqual, greaterThanEqual, greaterThanEqual, greaterThanEqual, greaterThanEqual, hashCode, hexToRaw, ifNull, in, in, in, in, in, in, in, in, in, in, in, in, index, indexOf, intersect, intersect, intersectAll, intersectAll, isClassTypeExpression, isCompoundExpression, isConstantExpression, isEmpty, isExpressionBuilder, isFragment, isFunctionExpression, isLiteralExpression, isLogicalExpression, isMapEntryExpression, isNull, isObjectExpression, isParameterExpression, isQueryKeyExpression, isRelationExpression, isSubSelectExpression, isTableExpression, isTreatExpression, isValueExpression, 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, locate, locate, locate, mapEntry, mapKey, maximum, minimum, monthsBetween, newTime, nextDay, noneOf, 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, setLocalBase, 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, value, value, value, value, value, value, value, value, value, value, valueFromObject, variance, writeAlias
-
-
-
-
Field Detail
-
field
protected DatabaseField field
-
aliasedField
protected transient DatabaseField aliasedField
-
-
Constructor Detail
-
FieldExpression
public FieldExpression()
FieldExpression constructor comment.
-
FieldExpression
public FieldExpression(DatabaseField newField)
FieldExpression constructor comment.
-
FieldExpression
public FieldExpression(DatabaseField newField, Expression myBase)
FieldExpression constructor comment.
-
-
Method Detail
-
equals
public boolean equals(Object object)
INTERNAL: Return if the expression is equal to the other. This is used to allow dynamic expression's SQL to be cached. This must be over written by each subclass.- Overrides:
equals
in classDataExpression
-
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:
computeHashCode
in classExpression
-
clearAliases
public void clearAliases()
INTERNAL:- Overrides:
clearAliases
in classDataExpression
-
descriptionOfNodeType
public String descriptionOfNodeType()
INTERNAL: Used for debug printing.- Overrides:
descriptionOfNodeType
in classExpression
-
getAliasedField
public DatabaseField getAliasedField()
INTERNAL: Return the field appropriately aliased- Overrides:
getAliasedField
in classDataExpression
-
getClonedField
public DatabaseField getClonedField()
INTERNAL: If there are any fields associated with this expression, return them- Overrides:
getClonedField
in classExpression
-
getClonedFields
public Vector getClonedFields()
INTERNAL: If there are any fields associated with this expression, return them
-
getField
public DatabaseField getField()
INTERNAL:- Overrides:
getField
in classDataExpression
-
getFields
public Vector getFields()
INTERNAL: Return all the fields- Overrides:
getFields
in classExpression
-
getFieldValue
public Object getFieldValue(Object value, AbstractSession session)
INTERNAL: Provide for conversion of the passed object's value, based on the referenced field value.- Overrides:
getFieldValue
in classExpression
-
isAttribute
public boolean isAttribute()
INTERNAL:- Overrides:
isAttribute
in classDataExpression
-
isFieldExpression
public boolean isFieldExpression()
Description copied from class:Expression
INTERNAL:- Overrides:
isFieldExpression
in classExpression
-
normalize
public Expression normalize(ExpressionNormalizer normalizer)
INTERNAL: Normalize the expression into a printable structure.- Overrides:
normalize
in classDataExpression
-
printSQL
public void printSQL(ExpressionSQLPrinter printer)
INTERNAL: Print SQL onto the stream, using the ExpressionPrinter for context- Overrides:
printSQL
in classDataExpression
-
printJava
public void printJava(ExpressionJavaPrinter printer)
INTERNAL: Print java for project class generation- Overrides:
printJava
in classExpression
-
rebuildOn
public Expression rebuildOn(Expression newBase)
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:
rebuildOn
in classExpression
- See Also:
Expression.cloneUsing(Expression newBase)
-
setField
public void setField(DatabaseField newField)
INTERNAL: Set the field in the mapping.
-
twistedForBaseAndContext
public Expression twistedForBaseAndContext(Expression newBase, Expression context, Expression oldBase)
INTERNAL: Rebuild myself 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:
twistedForBaseAndContext
in classExpression
-
validateNode
public void validateNode()
Do any required validation for this node. Throw an exception if it's incorrect.- Overrides:
validateNode
in classExpression
-
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:
valueFromObject
in classExpression
isObjectUnregistered
- true if object possibly not a clone, but is being conformed against the unit of work cache.
-
writeDescriptionOn
public void writeDescriptionOn(BufferedWriter writer) throws IOException
INTERNAL: Used to print a debug form of the expression tree.- Overrides:
writeDescriptionOn
in classExpression
- Throws:
IOException
-
writeFields
public void writeFields(ExpressionSQLPrinter printer, List<DatabaseField> newFields, SQLSelectStatement statement)
INTERNAL: called from SQLSelectStatement.writeFieldsFromExpression(...)- Overrides:
writeFields
in classExpression
-
writeField
protected void writeField(ExpressionSQLPrinter printer, DatabaseField field, SQLSelectStatement statement)
Description copied from class:Expression
INTERNAL: Append the field name to the writer. Should be overridden for special operators such as functions.- Overrides:
writeField
in classExpression
-
writeForUpdateOf
protected void writeForUpdateOf(ExpressionSQLPrinter printer, SQLSelectStatement statement)
INTERNAL: writes the field for fine-grained pessimistic locking.
-
-