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 }*
IdentificationVariableDeclaration
JOINS_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, toTextInternal
addItem, addItems, addListChangeListener, areChildrenEquivalent, canMoveDown, canMoveUp, getItem, hasItems, items, itemsSize, moveDown, moveUp, removeItem, removeItems, removeListChangeListener, toStringItems
acceptUnknownVisitor, 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, toText
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
addPropertyChangeListener, children, decorate, findIdentificationVariable, getDeclaration, getDecorator, getGrammar, getManagedTypeProvider, getQueryBuilder, getRoot, isDecorated, removePropertyChangeListener, setParent, toString, toText
public IdentificationVariableDeclarationStateObject(AbstractFromClauseStateObject parent)
IdentificationVariableDeclarationStateObject
.parent
- The parent of this state object, which cannot be null
java.lang.NullPointerException
- The given parent cannot be null
public IdentificationVariableDeclarationStateObject(AbstractFromClauseStateObject parent, IEntity entity, java.lang.String identificationVariable)
IdentificationVariableDeclarationStateObject
.parent
- The parent of this state object, which cannot be null
entity
- 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 null
public IdentificationVariableDeclarationStateObject(AbstractFromClauseStateObject parent, java.lang.String entityName, java.lang.String identificationVariable)
IdentificationVariableDeclarationStateObject
.parent
- The parent of this state object, which cannot be null
entityName
- The name of the entity nameidentificationVariable
- The new identification variablejava.lang.NullPointerException
- The given parent cannot be null
public 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 expressionJoinStateObject
public JoinStateObject addJoinFetch(java.lang.String path)
JOIN FETCH
expression to this declaration.path
- The join association path expressionJoinStateObject
public 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 FETCH
paths
- The join association path expressionJoinStateObject
public 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 FETCH
path
- The join association path expressionJoinStateObject
public 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 FETCH
JoinStateObject
public JoinStateObject addLeftJoinFetch(java.lang.String path)
LEFT JOIN FETCH
expression to this declaration.path
- The join association path expressionJoinStateObject
public JoinStateObject addLeftOuterJoinFetch(java.lang.String path)
LEFT OUTER JOIN FETCH
expression to this declaration.path
- The join association path expressionJoinStateObject
protected AbstractRangeVariableDeclarationStateObject buildRangeVariableDeclarationStateObject()
buildRangeVariableDeclarationStateObject
in class AbstractIdentificationVariableDeclarationStateObject
public 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
VALUE
IManagedType
representing the domain object declared by the given
identification variablepublic RangeVariableDeclarationStateObject getRangeVariableDeclaration()
StateObject
representing the range variable declaration portion.getRangeVariableDeclaration
in class AbstractIdentificationVariableDeclarationStateObject
public AbstractSchemaNameStateObject getRootStateObject()
StateObject
representing the "root" for objects which may not be
reachable by navigation.getRootStateObject
in class AbstractIdentificationVariableDeclarationStateObject
StateObject
representing one of the possible valid "root"protected java.lang.String listName()
listName
in class AbstractIdentificationVariableDeclarationStateObject
public void setEntity(IEntity entity)
IEntity
as the "root".entity
- The IEntity
itselfpublic void setEntityName(java.lang.String entityName)
entityName
- The name of the entity