Class IdentificationVariableDeclarationStateObject
- java.lang.Object
-
- org.eclipse.persistence.jpa.jpql.tools.model.query.AbstractStateObject
-
- org.eclipse.persistence.jpa.jpql.tools.model.query.AbstractListHolderStateObject<JoinStateObject>
-
- org.eclipse.persistence.jpa.jpql.tools.model.query.AbstractIdentificationVariableDeclarationStateObject
-
- org.eclipse.persistence.jpa.jpql.tools.model.query.IdentificationVariableDeclarationStateObject
-
- All Implemented Interfaces:
ListHolderStateObject<JoinStateObject>,StateObject,VariableDeclarationStateObject
public class IdentificationVariableDeclarationStateObject extends AbstractIdentificationVariableDeclarationStateObject
An identification variable is a valid identifier declared in theFROMclause of a query. All identification variables must be declared in theFROMclause. 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.BNF:identification_variable_declaration ::= range_variable_declaration { join | fetch_join }*- Version:
- 2.4
- See Also:
IdentificationVariableDeclaration- Author:
- Pascal Filion
- Since:
- 2.4
-
-
Field Summary
-
Fields inherited from class org.eclipse.persistence.jpa.jpql.tools.model.query.AbstractIdentificationVariableDeclarationStateObject
JOINS_LIST
-
-
Constructor Summary
Constructors Constructor Description IdentificationVariableDeclarationStateObject(AbstractFromClauseStateObject parent)Creates a newIdentificationVariableDeclarationStateObject.IdentificationVariableDeclarationStateObject(AbstractFromClauseStateObject parent, java.lang.String entityName, java.lang.String identificationVariable)Creates a newIdentificationVariableDeclarationStateObject.IdentificationVariableDeclarationStateObject(AbstractFromClauseStateObject parent, IEntity entity, java.lang.String identificationVariable)Creates a newIdentificationVariableDeclarationStateObject.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidaccept(StateObjectVisitor visitor)Visits thisStateObjectby the givenvisitor.JoinStateObjectaddInnerJoinFetch(java.lang.String path)Adds a newINNER JOIN FETCHexpression to this declaration.JoinStateObjectaddJoinFetch(java.lang.String path)Adds a newJOIN FETCHexpression to this declaration.JoinStateObjectaddJoinFetch(java.lang.String joinFetchType, java.lang.String path)Adds a newJOIN FETCHexpression to this declaration.JoinStateObjectaddJoinFetch(java.lang.String joinFetchType, java.util.ListIterator<java.lang.String> paths)Adds a newJOIN FETCHexpression to this declaration.JoinStateObjectaddJoinFetchType(java.lang.String joinFetchType)Adds a newJOIN FETCHexpression to this declaration.JoinStateObjectaddLeftJoinFetch(java.lang.String path)Adds a newLEFT JOIN FETCHexpression to this declaration.JoinStateObjectaddLeftOuterJoinFetch(java.lang.String path)Adds a newLEFT OUTER JOIN FETCHexpression to this declaration.protected AbstractRangeVariableDeclarationStateObjectbuildRangeVariableDeclarationStateObject()CreatesIEntitygetEntity()Returns the actual external form representing theIEntity.java.lang.StringgetEntityName()Returns the name of the entity for which it is used as the "root" of the declaration.IManagedTypegetManagedType(StateObject stateObject)Returns theIManagedTypefor the given identification variable.RangeVariableDeclarationStateObjectgetRangeVariableDeclaration()Returns theStateObjectrepresenting the range variable declaration portion.AbstractSchemaNameStateObjectgetRootStateObject()Returns theStateObjectrepresenting the "root" for objects which may not be reachable by navigation.protected java.lang.StringlistName()Returns the name that is uniquely identifying the list.voidsetEntity(IEntity entity)Sets theIEntityas the "root".voidsetEntityName(java.lang.String entityName)Sets the name of the abstract schema, which is the name of the entity.-
Methods inherited from class org.eclipse.persistence.jpa.jpql.tools.model.query.AbstractIdentificationVariableDeclarationStateObject
addChildren, addInnerJoin, addJoin, addJoin, addJoin, addJoin, addLeftJoin, addLeftOuterJoin, getExpression, getIdentificationVariable, getIdentificationVariableStateObject, getParent, getRootPath, identificationVariables, initialize, isEquivalent, parseJoin, setExpression, setIdentificationVariable, setRootPath, toTextInternal
-
Methods inherited from class org.eclipse.persistence.jpa.jpql.tools.model.query.AbstractListHolderStateObject
addItem, addItems, addListChangeListener, areChildrenEquivalent, canMoveDown, canMoveUp, getItem, hasItems, items, itemsSize, moveDown, moveUp, removeItem, removeItems, removeListChangeListener, toStringItems
-
Methods inherited from class org.eclipse.persistence.jpa.jpql.tools.model.query.AbstractStateObject
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
-
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface org.eclipse.persistence.jpa.jpql.tools.model.query.StateObject
addPropertyChangeListener, children, decorate, findIdentificationVariable, getDeclaration, getDecorator, getGrammar, getManagedTypeProvider, getQueryBuilder, getRoot, isDecorated, removePropertyChangeListener, setParent, toString, toText
-
-
-
-
Constructor Detail
-
IdentificationVariableDeclarationStateObject
public IdentificationVariableDeclarationStateObject(AbstractFromClauseStateObject parent)
Creates a newIdentificationVariableDeclarationStateObject.- Parameters:
parent- The parent of this state object, which cannot benull- Throws:
java.lang.NullPointerException- The given parent cannot benull
-
IdentificationVariableDeclarationStateObject
public IdentificationVariableDeclarationStateObject(AbstractFromClauseStateObject parent, IEntity entity, java.lang.String identificationVariable)
Creates a newIdentificationVariableDeclarationStateObject.- Parameters:
parent- The parent of this state object, which cannot benullentity- The external form of the entity to add to the declaration listidentificationVariable- The unique identifier identifying the abstract schema name- Throws:
java.lang.NullPointerException- The given parent cannot benull
-
IdentificationVariableDeclarationStateObject
public IdentificationVariableDeclarationStateObject(AbstractFromClauseStateObject parent, java.lang.String entityName, java.lang.String identificationVariable)
Creates a newIdentificationVariableDeclarationStateObject.- Parameters:
parent- The parent of this state object, which cannot benullentityName- The name of the entity nameidentificationVariable- The new identification variable- Throws:
java.lang.NullPointerException- The given parent cannot benull
-
-
Method Detail
-
accept
public void accept(StateObjectVisitor visitor)
Visits thisStateObjectby the givenvisitor.- Parameters:
visitor- Thevisitorto visit this object
-
addInnerJoinFetch
public JoinStateObject addInnerJoinFetch(java.lang.String path)
Adds a newINNER JOIN FETCHexpression to this declaration.- Parameters:
path- The join association path expression- Returns:
- A new
JoinStateObject
-
addJoinFetch
public JoinStateObject addJoinFetch(java.lang.String path)
Adds a newJOIN FETCHexpression to this declaration.- Parameters:
path- The join association path expression- Returns:
- A new
JoinStateObject
-
addJoinFetch
public JoinStateObject addJoinFetch(java.lang.String joinFetchType, java.util.ListIterator<java.lang.String> paths)
Adds a newJOIN FETCHexpression to this declaration.- Parameters:
joinFetchType- One of the joining types:LEFT JOIN FETCH,LEFT OUTER JOIN FETCH,INNER JOIN FETCHorJOIN FETCHpaths- The join association path expression- Returns:
- A new
JoinStateObject
-
addJoinFetch
public JoinStateObject addJoinFetch(java.lang.String joinFetchType, java.lang.String path)
Adds a newJOIN FETCHexpression to this declaration.- Parameters:
joinFetchType- One of the joining types:LEFT JOIN FETCH,LEFT OUTER JOIN FETCH,INNER JOIN FETCHorJOIN FETCHpath- The join association path expression- Returns:
- A new
JoinStateObject
-
addJoinFetchType
public JoinStateObject addJoinFetchType(java.lang.String joinFetchType)
Adds a newJOIN FETCHexpression to this declaration.- Parameters:
joinFetchType- One of the joining types:LEFT JOIN FETCH,LEFT OUTER JOIN FETCH,INNER JOIN FETCHorJOIN FETCH- Returns:
- A new
JoinStateObject
-
addLeftJoinFetch
public JoinStateObject addLeftJoinFetch(java.lang.String path)
Adds a newLEFT JOIN FETCHexpression to this declaration.- Parameters:
path- The join association path expression- Returns:
- A new
JoinStateObject
-
addLeftOuterJoinFetch
public JoinStateObject addLeftOuterJoinFetch(java.lang.String path)
Adds a newLEFT OUTER JOIN FETCHexpression to this declaration.- Parameters:
path- The join association path expression- Returns:
- A new
JoinStateObject
-
buildRangeVariableDeclarationStateObject
protected AbstractRangeVariableDeclarationStateObject buildRangeVariableDeclarationStateObject()
Creates- Specified by:
buildRangeVariableDeclarationStateObjectin classAbstractIdentificationVariableDeclarationStateObject- Returns:
-
getEntity
public IEntity getEntity()
Returns the actual external form representing theIEntity.- Returns:
- The actual
IEntityornullif no entity exists with the entity name
-
getEntityName
public java.lang.String getEntityName()
Returns the name of the entity for which it is used as the "root" of the declaration.- Returns:
- The name of the entity
-
getManagedType
public IManagedType getManagedType(StateObject stateObject)
Returns theIManagedTypefor the given identification variable. The search does not traverse up the query hierarchy if this declaration is for a subquery.
In the above query, the managed type associated with the identification variable:SELECT e FROM Department d JOIN KEY(d.employees).addresses a- d is "Department"
- a is "Address"
- Parameters:
stateObject- TheStateObjectthat should be an simple identification variable or an encapsulated identification variable with the identifierKEYorVALUE- Returns:
- The
IManagedTyperepresenting the domain object declared by the given identification variable
-
getRangeVariableDeclaration
public RangeVariableDeclarationStateObject getRangeVariableDeclaration()
Returns theStateObjectrepresenting the range variable declaration portion.- Overrides:
getRangeVariableDeclarationin classAbstractIdentificationVariableDeclarationStateObject- Returns:
- The concrete instance
-
getRootStateObject
public AbstractSchemaNameStateObject getRootStateObject()
Returns theStateObjectrepresenting the "root" for objects which may not be reachable by navigation.- Overrides:
getRootStateObjectin classAbstractIdentificationVariableDeclarationStateObject- Returns:
- The
StateObjectrepresenting one of the possible valid "root"
-
listName
protected java.lang.String listName()
Returns the name that is uniquely identifying the list.- Overrides:
listNamein classAbstractIdentificationVariableDeclarationStateObject- Returns:
- The unique name identifying the list
-
setEntity
public void setEntity(IEntity entity)
Sets theIEntityas the "root".- Parameters:
entity- TheIEntityitself
-
setEntityName
public void setEntityName(java.lang.String entityName)
Sets the name of the abstract schema, which is the name of the entity.- Parameters:
entityName- The name of the entity
-
-