public class IdentificationVariableDeclarationStateObject extends AbstractIdentificationVariableDeclarationStateObject
FROM clause
of a query. All identification variables must be declared in the FROM clause.
Identification variables cannot be declared in other clauses. An identification variable must not
be a reserved identifier or have the same name as any entity in the same persistence unit:
Identification variables are case insensitive. An identification variable evaluates to a value of
the type of the expression used in declaring the variable.
identification_variable_declaration ::= range_variable_declaration { join | fetch_join }*IdentificationVariableDeclarationJOINS_LIST| Constructor and Description |
|---|
IdentificationVariableDeclarationStateObject(AbstractFromClauseStateObject parent)
Creates a new
IdentificationVariableDeclarationStateObject. |
IdentificationVariableDeclarationStateObject(AbstractFromClauseStateObject parent,
IEntity entity,
java.lang.String identificationVariable)
Creates a new
IdentificationVariableDeclarationStateObject. |
IdentificationVariableDeclarationStateObject(AbstractFromClauseStateObject parent,
java.lang.String entityName,
java.lang.String identificationVariable)
Creates a new
IdentificationVariableDeclarationStateObject. |
| Modifier and Type | Method and Description |
|---|---|
void |
accept(StateObjectVisitor visitor)
Visits this
StateObject by the given visitor. |
JoinStateObject |
addInnerJoinFetch(java.lang.String path)
Adds a new
INNER JOIN FETCH expression to this declaration. |
JoinStateObject |
addJoinFetch(java.lang.String path)
Adds a new
JOIN FETCH expression to this declaration. |
JoinStateObject |
addJoinFetch(java.lang.String joinFetchType,
java.util.ListIterator<java.lang.String> paths)
Adds a new
JOIN FETCH expression to this declaration. |
JoinStateObject |
addJoinFetch(java.lang.String joinFetchType,
java.lang.String path)
Adds a new
JOIN FETCH expression to this declaration. |
JoinStateObject |
addJoinFetchType(java.lang.String joinFetchType)
Adds a new
JOIN FETCH expression to this declaration. |
JoinStateObject |
addLeftJoinFetch(java.lang.String path)
Adds a new
LEFT JOIN FETCH expression to this declaration. |
JoinStateObject |
addLeftOuterJoinFetch(java.lang.String path)
Adds a new
LEFT OUTER JOIN FETCH expression to this declaration. |
protected AbstractRangeVariableDeclarationStateObject |
buildRangeVariableDeclarationStateObject()
Creates
|
IEntity |
getEntity()
Returns the actual external form representing the
IEntity. |
java.lang.String |
getEntityName()
Returns the name of the entity for which it is used as the "root" of the declaration.
|
IManagedType |
getManagedType(StateObject stateObject)
Returns the
IManagedType for the given identification variable. |
RangeVariableDeclarationStateObject |
getRangeVariableDeclaration()
Returns the
StateObject representing the range variable declaration portion. |
AbstractSchemaNameStateObject |
getRootStateObject()
Returns the
StateObject representing the "root" for objects which may not be
reachable by navigation. |
protected java.lang.String |
listName()
Returns the name that is uniquely identifying the list.
|
void |
setEntity(IEntity entity)
Sets the
IEntity as the "root". |
void |
setEntityName(java.lang.String entityName)
Sets the name of the abstract schema, which is the name of the entity.
|
addChildren, addInnerJoin, addJoin, addJoin, addJoin, addJoin, addLeftJoin, addLeftOuterJoin, getExpression, getIdentificationVariable, getIdentificationVariableStateObject, getParent, getRootPath, identificationVariables, initialize, isEquivalent, parseJoin, setExpression, setIdentificationVariable, setRootPath, toTextInternaladdItem, addItems, addListChangeListener, areChildrenEquivalent, canMoveDown, canMoveUp, getItem, hasItems, items, itemsSize, moveDown, moveUp, removeItem, removeItems, removeListChangeListener, toStringItemsacceptUnknownVisitor, acceptUnknownVisitor, addProblems, addPropertyChangeListener, areEquivalent, buildProblem, buildProblem, buildStateObject, buildStateObjects, checkParent, children, decorate, equals, findIdentificationVariable, firePropertyChanged, getChangeSupport, getDeclaration, getDecorator, getGrammar, getManagedTypeProvider, getQueryBuilder, getRoot, getType, getType, getTypeHelper, getTypeRepository, hashCode, isDecorated, parent, parent, parent, removePropertyChangeListener, setExpression, setParent, toString, toString, toStringInternal, toStringItems, toTextclone, finalize, getClass, notify, notifyAll, wait, wait, waitaddPropertyChangeListener, children, decorate, findIdentificationVariable, getDeclaration, getDecorator, getGrammar, getManagedTypeProvider, getQueryBuilder, getRoot, isDecorated, removePropertyChangeListener, setParent, toString, toTextpublic IdentificationVariableDeclarationStateObject(AbstractFromClauseStateObject parent)
IdentificationVariableDeclarationStateObject.parent - The parent of this state object, which cannot be nulljava.lang.NullPointerException - The given parent cannot be nullpublic IdentificationVariableDeclarationStateObject(AbstractFromClauseStateObject parent, IEntity entity, java.lang.String identificationVariable)
IdentificationVariableDeclarationStateObject.parent - The parent of this state object, which cannot be nullentity - The external form of the entity to add to the declaration listidentificationVariable - The unique identifier identifying the abstract schema namejava.lang.NullPointerException - The given parent cannot be nullpublic IdentificationVariableDeclarationStateObject(AbstractFromClauseStateObject parent, java.lang.String entityName, java.lang.String identificationVariable)
IdentificationVariableDeclarationStateObject.parent - The parent of this state object, which cannot be nullentityName - The name of the entity nameidentificationVariable - The new identification variablejava.lang.NullPointerException - The given parent cannot be nullpublic void accept(StateObjectVisitor visitor)
StateObject by the given visitor.visitor - The visitor to visit this objectpublic JoinStateObject addInnerJoinFetch(java.lang.String path)
INNER JOIN FETCH expression to this declaration.path - The join association path expressionJoinStateObjectpublic JoinStateObject addJoinFetch(java.lang.String path)
JOIN FETCH expression to this declaration.path - The join association path expressionJoinStateObjectpublic JoinStateObject addJoinFetch(java.lang.String joinFetchType, java.util.ListIterator<java.lang.String> paths)
JOIN FETCH expression to this declaration.joinFetchType - One of the joining types: LEFT JOIN FETCH, LEFT
OUTER JOIN FETCH, INNER JOIN FETCH or JOIN FETCHpaths - The join association path expressionJoinStateObjectpublic JoinStateObject addJoinFetch(java.lang.String joinFetchType, java.lang.String path)
JOIN FETCH expression to this declaration.joinFetchType - One of the joining types: LEFT JOIN FETCH, LEFT
OUTER JOIN FETCH, INNER JOIN FETCH or JOIN FETCHpath - The join association path expressionJoinStateObjectpublic JoinStateObject addJoinFetchType(java.lang.String joinFetchType)
JOIN FETCH expression to this declaration.joinFetchType - One of the joining types: LEFT JOIN FETCH, LEFT
OUTER JOIN FETCH, INNER JOIN FETCH or JOIN FETCHJoinStateObjectpublic JoinStateObject addLeftJoinFetch(java.lang.String path)
LEFT JOIN FETCH expression to this declaration.path - The join association path expressionJoinStateObjectpublic JoinStateObject addLeftOuterJoinFetch(java.lang.String path)
LEFT OUTER JOIN FETCH expression to this declaration.path - The join association path expressionJoinStateObjectprotected AbstractRangeVariableDeclarationStateObject buildRangeVariableDeclarationStateObject()
buildRangeVariableDeclarationStateObject in class AbstractIdentificationVariableDeclarationStateObjectpublic IEntity getEntity()
IEntity.IEntity or null if no entity exists with the entity namepublic java.lang.String getEntityName()
public IManagedType getManagedType(StateObject stateObject)
IManagedType for the given identification variable. The search does not
traverse up the query hierarchy if this declaration is for a subquery.
SELECT e FROM Department d JOIN KEY(d.employees).addresses a
In the above query, the managed type associated with the identification variable:
stateObject - The StateObject that should be an simple identification variable or
an encapsulated identification variable with the identifier KEY or
VALUEIManagedType representing the domain object declared by the given
identification variablepublic RangeVariableDeclarationStateObject getRangeVariableDeclaration()
StateObject representing the range variable declaration portion.getRangeVariableDeclaration in class AbstractIdentificationVariableDeclarationStateObjectpublic AbstractSchemaNameStateObject getRootStateObject()
StateObject representing the "root" for objects which may not be
reachable by navigation.getRootStateObject in class AbstractIdentificationVariableDeclarationStateObjectStateObject representing one of the possible valid "root"protected java.lang.String listName()
listName in class AbstractIdentificationVariableDeclarationStateObjectpublic void setEntity(IEntity entity)
IEntity as the "root".entity - The IEntity itselfpublic void setEntityName(java.lang.String entityName)
entityName - The name of the entity