Class TreatAsExpression
- 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.ObjectExpression
-
- org.eclipse.persistence.internal.expressions.QueryKeyExpression
-
- org.eclipse.persistence.internal.expressions.TreatAsExpression
-
- All Implemented Interfaces:
Serializable
,Cloneable
public class TreatAsExpression extends QueryKeyExpression
- Author:
- cdelahun
- See Also:
- Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description protected Boolean
isDowncast
protected Expression
typeExpression
protected ObjectExpression
typeExpressionBase
-
Fields inherited from class org.eclipse.persistence.internal.expressions.QueryKeyExpression
aliasedField, hasMapping, hasQueryKey, index, isAttributeExpression, isClonedForSubQuery, mapping, name, queryKey, shouldQueryToManyRelationship
-
Fields inherited from class org.eclipse.persistence.internal.expressions.ObjectExpression
castClass, derivedExpressions, descriptor, hasBeenAliased, joinSource, onClause, shouldUseOuterJoin, shouldUseOuterJoinForMultitableInheritance
-
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 TreatAsExpression(Class castClass, ObjectExpression baseExpression)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description Expression
additionalTreatExpressionCriteria()
INTERNAL: Return the expression to join the main table of this node to any auxiliary tables.Map
additionalTreatExpressionCriteriaMap()
INTERNAL: Used in case outer joins should be printed in FROM clause.DatabaseTable
aliasForTable(DatabaseTable table)
INTERNAL: Find the alias for a given tableprotected void
assignAlias(DatabaseTable alias, DatabaseTable table)
INTERNAL: Alias a particular table within this nodeint
assignTableAliasesStartingAt(int initialValue)
INTERNAL: Assign aliases to any tables which I own.ClassDescriptor
convertToCastDescriptor(ClassDescriptor rootDescriptor, AbstractSession session)
INTERNAL - Return the descriptor which contains this query key, look in the inheritance hierarchy of rootDescriptor for the descriptor.Expression
convertToUseOuterJoin()
INTERNAL: Modify this expression to use outer joins wherever there are equality operations between two field nodes.String
descriptionOfNodeType()
INTERNAL: Used for debug printing.boolean
equals(Object object)
INTERNAL: Return if the expression is equal to the other.List<DatabaseTable>
getAdditionalTables()
INTERNAL: Return any additional tables that belong to this expression An example of how this method is used is to return any tables that belong to the map key when this expression traverses a mapping that uses a MapExpression
getAlias(Expression subSelect)
ADVANCED: Return an expression representing a sub-select in the from clause.ClassDescriptor
getDescriptor()
Vector
getFields()
INTERNAL: Return all the fieldsObject
getFieldValue(Object objectValue, AbstractSession session)
INTERNAL: Transform the object-level value into a database-level valueClassDescriptor
getLeafDescriptor(DatabaseQuery query, ClassDescriptor rootDescriptor, AbstractSession session)
INTERNAL: Lookup the descriptor for this item by traversing its expression recursively.DatabaseMapping
getLeafMapping(DatabaseQuery query, ClassDescriptor rootDescriptor, AbstractSession session)
INTERNAL: Lookup the mapping for this item by traversing its expression recursively.List<DatabaseTable>
getOwnedSubTables()
INTERNAL: much like getOwnedTables(), this gets the tables represented from the descriptor.List<DatabaseTable>
getOwnedTables()
This owns (can access) the child's extra tables as well as its parent's tables so we should pull these from super (which gets them from the current descriptor)DatabaseTable
getReferenceTable()
Calculate the reference table for based on the various QueryKeyExpression usages (join query keys, custom defined query keys, or query keys for mappings).DatabaseTable
getRelationTable()
Calculate the relation table for based on the various QueryKeyExpression usages (join query keys, custom defined query keys, or query keys for mappings).DatabaseTable
getSourceTable()
Calculate the source table for based on the various QueryKeyExpression usages (join query keys, custom defined query keys, or query keys for mappings).TableAliasLookup
getTableAliases()
INTERNAL: Return the aliases used.Expression
getTreatCriteria()
INTERNAL: this returns a single expression to represent the join from the main table to all child descriptor tables Only if outer joins should be printed in the where clauseExpression
getTypeClause()
boolean
hasAsOfClause()
ADVANCED: Answers true ifthis
is to be queried as of a past time.boolean
isDowncast()
INTERNAL:boolean
isTreatExpression()
INTERNAL:Expression
mappingCriteria(Expression base)
Expression
normalize(ExpressionNormalizer normalizer, Expression base, List<Expression> foreignKeyJoinPointer)
INTERNAL: For CR#2456 if this is part of an objExp.equal(objExp), do not need to add additional expressions to normalizer both times, and the foreign key join replaces the equal expression.protected void
postCopyIn(Map alreadyDone)
INTERNAL: Used for cloning.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.boolean
selectIfOrderedBy()
PUBLIC: Return whether this expression should be included in the SELECT clause if it is used in an ORDER BY clauseExpression
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)
INTERNAL: Return the value for in memory comparison.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.void
writeFields(ExpressionSQLPrinter printer, List<DatabaseField> newFields, SQLSelectStatement statement)
INTERNAL: called from SQLSelectStatement.writeFieldsFromExpression(...)void
writeSubexpressionsTo(BufferedWriter writer, int indent)
Print the base for debuggin purposes.-
Methods inherited from class org.eclipse.persistence.internal.expressions.QueryKeyExpression
additionalExpressionCriteria, additionalExpressionCriteriaMap, checkJoinForSubSelectWithParent, computeHashCode, doQueryToManyRelationship, getAliasedField, getAliasedTable, getField, getMapKeyDescriptor, getMapping, getMappingFromQueryKey, getName, getNestedAttributeName, getQueryKeyOrNull, getSelectionFields, index, initializeAliasedField, isAttribute, isDirectCollection, isManyToMany, isMapKeyObjectRelationship, isOneToMany, isOneToOne, isQueryKeyExpression, normalize, rebuildOn, resetCache, shouldQueryToManyRelationship, treat, valuesFromCollection
-
Methods inherited from class org.eclipse.persistence.internal.expressions.ObjectExpression
addDerivedExpression, anyOf, anyOfAllowingNone, clearAliases, copyDerivedExpressions, derivedExpressionNamed, derivedManualExpressionNamed, doNotUseOuterJoin, doUseOuterJoin, existingDerivedExpressionNamed, get, getAllowingNull, getCastClass, getFirstNonAggregateExpressionAfterExpressionBuilder, getForUpdateOfFields, getJoinSource, getManualQueryKey, getOnClause, getOuterJoinExpIndex, hasBeenAliased, hasDerivedExpressions, isDowncast, isObjectExpression, isTreatUsed, isUsingOuterJoinForMultitableInheritance, join, leftJoin, newDerivedExpressionNamed, newManualDerivedExpressionNamed, postCopyIn, setCastClass, setJoinSource, setOnClause, setOuterJoinExpIndex, setShouldUseOuterJoinForMultitableInheritance, shouldUseOuterJoin, shouldUseOuterJoinForMultitableInheritance, type, writeForUpdateOfFields
-
Methods inherited from class org.eclipse.persistence.internal.expressions.DataExpression
addDerivedField, addDerivedTable, asOf, assignAlias, copyCollection, existingDerivedField, existingDerivedTable, getAsOfClause, getContainingDescriptor, getField, getField, getTable, getTable, hasBeenNormalized, hasDerivedFields, hasDerivedTables, isDataExpression, iterateOn, newDerivedField, newDerivedTable, setHasBeenNormalized, setTableAliases, tableAliasesDescription
-
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, anyOfAllowingNone, as, ascending, asciiValue, 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, 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, getAsOfClauseRecursively, getClonedField, getFunction, getFunction, getFunction, getFunction, getFunctionWithArguments, getNumberVal, getOperator, getOperator, getParameter, getParameter, getParameter, getProperty, 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, indexOf, intersect, intersect, intersectAll, intersectAll, isClassTypeExpression, isCompoundExpression, isConstantExpression, isEmpty, isExpressionBuilder, isFieldExpression, isFragment, isFunctionExpression, isLiteralExpression, isLogicalExpression, isMapEntryExpression, isNull, isParameterExpression, isRelationExpression, isSubSelectExpression, isTableExpression, isValueExpression, lastDay, 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, reverse, right, right, rightPad, rightPad, rightTrim, rightTrim, roundDate, 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, trim, trim, truncateDate, twist, union, union, unionAll, unionAll, value, value, value, value, value, value, value, value, value, value, variance, writeAlias, writeField
-
-
-
-
Field Detail
-
typeExpressionBase
protected ObjectExpression typeExpressionBase
-
typeExpression
protected Expression typeExpression
-
isDowncast
protected Boolean isDowncast
-
-
Constructor Detail
-
TreatAsExpression
public TreatAsExpression(Class castClass, ObjectExpression baseExpression)
-
-
Method Detail
-
convertToUseOuterJoin
public Expression convertToUseOuterJoin()
Description copied from class:Expression
INTERNAL: Modify this expression to use outer joins wherever there are equality operations between two field nodes.- Overrides:
convertToUseOuterJoin
in classExpression
-
descriptionOfNodeType
public String descriptionOfNodeType()
Description copied from class:QueryKeyExpression
INTERNAL: Used for debug printing.- Overrides:
descriptionOfNodeType
in classQueryKeyExpression
-
equals
public boolean equals(Object object)
Description copied from class:QueryKeyExpression
INTERNAL: Return if the expression is equal to the other. This is used to allow dynamic expression's SQL to be cached.- Overrides:
equals
in classQueryKeyExpression
-
getFields
public Vector getFields()
Description copied from class:QueryKeyExpression
INTERNAL: Return all the fields- Overrides:
getFields
in classQueryKeyExpression
-
getFieldValue
public Object getFieldValue(Object objectValue, AbstractSession session)
Description copied from class:QueryKeyExpression
INTERNAL: Transform the object-level value into a database-level value- Overrides:
getFieldValue
in classQueryKeyExpression
-
getOwnedTables
public List<DatabaseTable> getOwnedTables()
This owns (can access) the child's extra tables as well as its parent's tables so we should pull these from super (which gets them from the current descriptor)- Overrides:
getOwnedTables
in classQueryKeyExpression
-
getAlias
public Expression getAlias(Expression subSelect)
Description copied from class:DataExpression
ADVANCED: Return an expression representing a sub-select in the from clause.Example:
builder.getAlias(builder.subQuery(reportQuery)).get("type").equal("S");
- Overrides:
getAlias
in classDataExpression
-
getRelationTable
public DatabaseTable getRelationTable()
Calculate the relation table for based on the various QueryKeyExpression usages (join query keys, custom defined query keys, or query keys for mappings). Does not apply to Treat Called fromSQLSelectStatement.appendFromClauseForOuterJoin(org.eclipse.persistence.internal.expressions.ExpressionSQLPrinter, java.util.List<org.eclipse.persistence.internal.helper.DatabaseTable>, java.util.Collection, boolean)
.- Overrides:
getRelationTable
in classQueryKeyExpression
- Returns:
- DatabaseTable
-
getTableAliases
public TableAliasLookup getTableAliases()
Description copied from class:DataExpression
INTERNAL: Return the aliases used. For CR#2456 must never lazily initialize as also used for Expression identity.- Overrides:
getTableAliases
in classDataExpression
-
hasAsOfClause
public boolean hasAsOfClause()
Description copied from class:Expression
ADVANCED: Answers true ifthis
is to be queried as of a past time.- Overrides:
hasAsOfClause
in classDataExpression
- Returns:
- false from
asOf(null); hasAsOfClause()
. - See Also:
Expression.getAsOfClause()
-
isDowncast
public boolean isDowncast()
INTERNAL:
-
isTreatExpression
public boolean isTreatExpression()
INTERNAL:- Overrides:
isTreatExpression
in classExpression
-
printSQL
public void printSQL(ExpressionSQLPrinter printer)
Description copied from class:QueryKeyExpression
INTERNAL: Print SQL onto the stream, using the ExpressionPrinter for context- Overrides:
printSQL
in classQueryKeyExpression
-
selectIfOrderedBy
public boolean selectIfOrderedBy()
Description copied from class:Expression
PUBLIC: Return whether this expression should be included in the SELECT clause if it is used in an ORDER BY clause- Overrides:
selectIfOrderedBy
in classExpression
-
twistedForBaseAndContext
public Expression twistedForBaseAndContext(Expression newBase, Expression context, Expression oldBase)
Description copied from class:QueryKeyExpression
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 classQueryKeyExpression
-
validateNode
public void validateNode()
Description copied from class:QueryKeyExpression
Do any required validation for this node. Throw an exception if it's incorrect.- Overrides:
validateNode
in classQueryKeyExpression
-
valueFromObject
public Object valueFromObject(Object object, AbstractSession session, AbstractRecord translationRow, int valueHolderPolicy, boolean isObjectUnregistered)
Description copied from class:QueryKeyExpression
INTERNAL: Return the value for in memory comparison. This is only valid for valueable expressions.- Overrides:
valueFromObject
in classQueryKeyExpression
isObjectUnregistered
- true if object possibly not a clone, but is being conformed against the unit of work cache.
-
valueFromObject
public Object valueFromObject(Object object, AbstractSession session, AbstractRecord translationRow, int valueHolderPolicy)
Description copied from class:Expression
INTERNAL: Return the value for in memory comparison. This is only valid for valueable expressions.- Overrides:
valueFromObject
in classExpression
-
writeDescriptionOn
public void writeDescriptionOn(BufferedWriter writer) throws IOException
Description copied from class:QueryKeyExpression
INTERNAL: Used to print a debug form of the expression tree.- Overrides:
writeDescriptionOn
in classQueryKeyExpression
- Throws:
IOException
-
writeFields
public void writeFields(ExpressionSQLPrinter printer, List<DatabaseField> newFields, SQLSelectStatement statement)
Description copied from class:Expression
INTERNAL: called from SQLSelectStatement.writeFieldsFromExpression(...)- Overrides:
writeFields
in classExpression
-
writeSubexpressionsTo
public void writeSubexpressionsTo(BufferedWriter writer, int indent) throws IOException
Description copied from class:DataExpression
Print the base for debuggin purposes.- Overrides:
writeSubexpressionsTo
in classDataExpression
- Throws:
IOException
-
getLeafDescriptor
public ClassDescriptor getLeafDescriptor(DatabaseQuery query, ClassDescriptor rootDescriptor, AbstractSession session)
Description copied from class:QueryKeyExpression
INTERNAL: Lookup the descriptor for this item by traversing its expression recursively.- Overrides:
getLeafDescriptor
in classQueryKeyExpression
-
getLeafMapping
public DatabaseMapping getLeafMapping(DatabaseQuery query, ClassDescriptor rootDescriptor, AbstractSession session)
Description copied from class:QueryKeyExpression
INTERNAL: Lookup the mapping for this item by traversing its expression recursively. If an aggregate of foreign mapping is found it is traversed.- Overrides:
getLeafMapping
in classQueryKeyExpression
-
aliasForTable
public DatabaseTable aliasForTable(DatabaseTable table)
Description copied from class:QueryKeyExpression
INTERNAL: Find the alias for a given table- Overrides:
aliasForTable
in classQueryKeyExpression
-
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- Overrides:
rebuildOn
in classQueryKeyExpression
- See Also:
Expression.cloneUsing(Expression newBase)
-
getDescriptor
public ClassDescriptor getDescriptor()
- Overrides:
getDescriptor
in classObjectExpression
-
convertToCastDescriptor
public ClassDescriptor convertToCastDescriptor(ClassDescriptor rootDescriptor, AbstractSession session)
INTERNAL - Return the descriptor which contains this query key, look in the inheritance hierarchy of rootDescriptor for the descriptor. Does not set the descriptor, only returns it.- Overrides:
convertToCastDescriptor
in classObjectExpression
-
getTypeClause
public Expression getTypeClause()
-
postCopyIn
protected void postCopyIn(Map alreadyDone)
Description copied from class:QueryKeyExpression
INTERNAL: Used for cloning.- Overrides:
postCopyIn
in classQueryKeyExpression
-
printJava
public void printJava(ExpressionJavaPrinter printer)
INTERNAL: Print java for project class generation- Overrides:
printJava
in classQueryKeyExpression
-
assignAlias
protected void assignAlias(DatabaseTable alias, DatabaseTable table)
INTERNAL: Alias a particular table within this node- Overrides:
assignAlias
in classDataExpression
-
assignTableAliasesStartingAt
public int assignTableAliasesStartingAt(int initialValue)
INTERNAL: Assign aliases to any tables which I own. Start with t(initialValue), and return the new value of the counter , i.e. if initialValue is one and I have tables ADDRESS and EMPLOYEE I will assign them t1 and t2 respectively, and return 3.- Overrides:
assignTableAliasesStartingAt
in classObjectExpression
-
getOwnedSubTables
public List<DatabaseTable> getOwnedSubTables()
INTERNAL: much like getOwnedTables(), this gets the tables represented from the descriptor. Difference is this only returns local tables for the child casted descriptor, and excludes tables owned by the parent descriptor
-
getAdditionalTables
public List<DatabaseTable> getAdditionalTables()
Description copied from class:QueryKeyExpression
INTERNAL: Return any additional tables that belong to this expression An example of how this method is used is to return any tables that belong to the map key when this expression traverses a mapping that uses a Map- Overrides:
getAdditionalTables
in classQueryKeyExpression
-
mappingCriteria
public Expression mappingCriteria(Expression base)
- Overrides:
mappingCriteria
in classQueryKeyExpression
-
additionalTreatExpressionCriteriaMap
public Map additionalTreatExpressionCriteriaMap()
INTERNAL: Used in case outer joins should be printed in FROM clause. Each of the additional tables mapped to expressions that joins it.
-
getTreatCriteria
public Expression getTreatCriteria()
INTERNAL: this returns a single expression to represent the join from the main table to all child descriptor tables Only if outer joins should be printed in the where clause- Returns:
- Expression
-
additionalTreatExpressionCriteria
public Expression additionalTreatExpressionCriteria()
INTERNAL: Return the expression to join the main table of this node to any auxiliary tables.
-
getSourceTable
public DatabaseTable getSourceTable()
Description copied from class:QueryKeyExpression
Calculate the source table for based on the various QueryKeyExpression usages (join query keys, custom defined query keys, or query keys for mappings). Called fromSQLSelectStatement.appendFromClauseForOuterJoin(org.eclipse.persistence.internal.expressions.ExpressionSQLPrinter, java.util.List<org.eclipse.persistence.internal.helper.DatabaseTable>, java.util.Collection, boolean)
.- Overrides:
getSourceTable
in classQueryKeyExpression
- Returns:
- DatabaseTable
-
getReferenceTable
public DatabaseTable getReferenceTable()
Description copied from class:QueryKeyExpression
Calculate the reference table for based on the various QueryKeyExpression usages (join query keys, custom defined query keys, or query keys for mappings). Called fromSQLSelectStatement.appendFromClauseForOuterJoin(org.eclipse.persistence.internal.expressions.ExpressionSQLPrinter, java.util.List<org.eclipse.persistence.internal.helper.DatabaseTable>, java.util.Collection, boolean)
.- Overrides:
getReferenceTable
in classQueryKeyExpression
- Returns:
- DatabaseTable
-
normalize
public Expression normalize(ExpressionNormalizer normalizer, Expression base, List<Expression> foreignKeyJoinPointer)
Description copied from class:QueryKeyExpression
INTERNAL: For CR#2456 if this is part of an objExp.equal(objExp), do not need to add additional expressions to normalizer both times, and the foreign key join replaces the equal expression.- Overrides:
normalize
in classQueryKeyExpression
-
-