EclipseLink 2.4.2, build 'v20130514-5956486' API Reference

org.eclipse.persistence.jpa.jpql.model.query
Class IdentificationVariableDeclarationStateObject

java.lang.Object
  extended by org.eclipse.persistence.jpa.jpql.model.query.AbstractStateObject
      extended by org.eclipse.persistence.jpa.jpql.model.query.AbstractListHolderStateObject<JoinStateObject>
          extended by org.eclipse.persistence.jpa.jpql.model.query.AbstractIdentificationVariableDeclarationStateObject
              extended by org.eclipse.persistence.jpa.jpql.model.query.IdentificationVariableDeclarationStateObject
All Implemented Interfaces:
ListHolderStateObject<JoinStateObject>, StateObject, VariableDeclarationStateObject

public class IdentificationVariableDeclarationStateObject
extends AbstractIdentificationVariableDeclarationStateObject

An identification variable is a valid identifier declared in the 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.

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.model.query.AbstractIdentificationVariableDeclarationStateObject
JOINS_LIST
 
Constructor Summary
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.
 
Method Summary
 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.
 
Methods inherited from class org.eclipse.persistence.jpa.jpql.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.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.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.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 new IdentificationVariableDeclarationStateObject.

Parameters:
parent - The parent of this state object, which cannot be null
Throws:
java.lang.NullPointerException - The given parent cannot be null

IdentificationVariableDeclarationStateObject

public IdentificationVariableDeclarationStateObject(AbstractFromClauseStateObject parent,
                                                    IEntity entity,
                                                    java.lang.String identificationVariable)
Creates a new IdentificationVariableDeclarationStateObject.

Parameters:
parent - The parent of this state object, which cannot be null
entity - The external form of the entity to add to the declaration list
identificationVariable - The unique identifier identifying the abstract schema name
Throws:
java.lang.NullPointerException - The given parent cannot be null

IdentificationVariableDeclarationStateObject

public IdentificationVariableDeclarationStateObject(AbstractFromClauseStateObject parent,
                                                    java.lang.String entityName,
                                                    java.lang.String identificationVariable)
Creates a new IdentificationVariableDeclarationStateObject.

Parameters:
parent - The parent of this state object, which cannot be null
entityName - The name of the entity name
identificationVariable - The new identification variable
Throws:
java.lang.NullPointerException - The given parent cannot be null
Method Detail

accept

public void accept(StateObjectVisitor visitor)
Visits this StateObject by the given visitor.

Parameters:
visitor - The visitor to visit this object

addInnerJoinFetch

public JoinStateObject addInnerJoinFetch(java.lang.String path)
Adds a new INNER JOIN FETCH expression to this declaration.

Parameters:
path - The join association path expression
Returns:
A new JoinStateObject

addJoinFetch

public JoinStateObject addJoinFetch(java.lang.String path)
Adds a new JOIN FETCH expression 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 new JOIN FETCH expression to this declaration.

Parameters:
joinFetchType - One of the joining types: LEFT JOIN FETCH, LEFT OUTER JOIN FETCH, INNER JOIN FETCH or JOIN FETCH
paths - The join association path expression
Returns:
A new JoinStateObject

addJoinFetch

public JoinStateObject addJoinFetch(java.lang.String joinFetchType,
                                    java.lang.String path)
Adds a new JOIN FETCH expression to this declaration.

Parameters:
joinFetchType - One of the joining types: LEFT JOIN FETCH, LEFT OUTER JOIN FETCH, INNER JOIN FETCH or JOIN FETCH
path - The join association path expression
Returns:
A new JoinStateObject

addJoinFetchType

public JoinStateObject addJoinFetchType(java.lang.String joinFetchType)
Adds a new JOIN FETCH expression to this declaration.

Parameters:
joinFetchType - One of the joining types: LEFT JOIN FETCH, LEFT OUTER JOIN FETCH, INNER JOIN FETCH or JOIN FETCH
Returns:
A new JoinStateObject

addLeftJoinFetch

public JoinStateObject addLeftJoinFetch(java.lang.String path)
Adds a new LEFT JOIN FETCH expression to this declaration.

Parameters:
path - The join association path expression
Returns:
A new JoinStateObject

addLeftOuterJoinFetch

public JoinStateObject addLeftOuterJoinFetch(java.lang.String path)
Adds a new LEFT OUTER JOIN FETCH expression to this declaration.

Parameters:
path - The join association path expression
Returns:
A new JoinStateObject

buildRangeVariableDeclarationStateObject

protected AbstractRangeVariableDeclarationStateObject buildRangeVariableDeclarationStateObject()
Creates

Specified by:
buildRangeVariableDeclarationStateObject in class AbstractIdentificationVariableDeclarationStateObject
Returns:

getEntity

public IEntity getEntity()
Returns the actual external form representing the IEntity.

Returns:
The actual IEntity or null if 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 the 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:
  • d is "Department"
  • a is "Address"

Parameters:
stateObject - The StateObject that should be an simple identification variable or an encapsulated identification variable with the identifier KEY or VALUE
Returns:
The IManagedType representing the domain object declared by the given identification variable

getRangeVariableDeclaration

public RangeVariableDeclarationStateObject getRangeVariableDeclaration()
Returns the StateObject representing the range variable declaration portion.

Overrides:
getRangeVariableDeclaration in class AbstractIdentificationVariableDeclarationStateObject
Returns:
The concrete instance

getRootStateObject

public AbstractSchemaNameStateObject getRootStateObject()
Returns the StateObject representing the "root" for objects which may not be reachable by navigation.

Overrides:
getRootStateObject in class AbstractIdentificationVariableDeclarationStateObject
Returns:
The StateObject representing one of the possible valid "root"

listName

protected java.lang.String listName()
Returns the name that is uniquely identifying the list.

Overrides:
listName in class AbstractIdentificationVariableDeclarationStateObject
Returns:
The unique name identifying the list

setEntity

public void setEntity(IEntity entity)
Sets the IEntity as the "root".

Parameters:
entity - The IEntity itself

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

EclipseLink 2.4.2, build 'v20130514-5956486' API Reference