EclipseLink 2.4.2, build 'v20130514-5956486' API Reference

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

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

public class SimpleFromClauseStateObject
extends AbstractFromClauseStateObject

The FROM clause of a sub-query defines the domain of the sub-query by declaring identification variables. An identification variable is an identifier declared in the FROM clause of a sub-query. The domain of the sub-query may be constrained by path expressions. Identification variables designate instances of a particular entity abstract schema type. The FROM clause can contain multiple identification variable declarations separated by a comma (,).

BNF: subquery_from_clause ::= FROM subselect_identification_variable_declaration {, subselect_identification_variable_declaration}*

Version:
2.4
See Also:
SimpleFromClause
Author:
Pascal Filion
Since:
2.4

Field Summary
 
Fields inherited from class org.eclipse.persistence.jpa.jpql.model.query.AbstractFromClauseStateObject
VARIABLE_DECLARATIONS_LIST
 
Constructor Summary
SimpleFromClauseStateObject(SimpleSelectStatementStateObject parent)
          Creates a new SimpleFromClauseStateObject.
 
Method Summary
 void accept(StateObjectVisitor visitor)
          Visits this StateObject by the given visitor.
 CollectionMemberDeclarationStateObject addDerivedCollectionDeclaration()
          Adds a new derived collection declaration to the FROM clause.
 CollectionMemberDeclarationStateObject addDerivedCollectionDeclaration(java.lang.String collectionValuedPath)
          Adds a new derived collection declaration to the FROM clause.
 DerivedPathIdentificationVariableDeclarationStateObject addDerivedPathDeclaration()
          Adds a new derived identification variable declaration to the FROM clause.
 DerivedPathIdentificationVariableDeclarationStateObject addDerivedPathDeclaration(java.lang.String path, java.lang.String identificationVariable)
          Adds a new derived identification variable declaration to the FROM clause.
 java.lang.String declarationBNF()
          Returns the BNF of the declaration part of this clause.
 IManagedType findManagedType(StateObject stateObject)
          Returns the IManagedType for the given identification variable.
 SimpleFromClause getExpression()
          Returns the actual parsed object if this StateObject representation of the JPQL query was created by parsing an existing JPQL query.
 SimpleSelectStatementStateObject getParent()
          Returns the parent of this StateObject.
 void setExpression(SimpleFromClause expression)
          Keeps a reference of the parsed object object, which should only be done when this object is instantiated during the conversion of a parsed JPQL query into StateObjects.
 
Methods inherited from class org.eclipse.persistence.jpa.jpql.model.query.AbstractFromClauseStateObject
addCollectionDeclaration, addCollectionDeclaration, addProblems, addRangeDeclaration, addRangeDeclaration, addRangeDeclaration, declarations, findIdentificationVariable, getDeclaration, getManagedType, identificationVariables, isEquivalent, listName, parse, toTextInternal
 
Methods inherited from class org.eclipse.persistence.jpa.jpql.model.query.AbstractListHolderStateObject
addChildren, addItem, addItems, addListChangeListener, areChildrenEquivalent, canMoveDown, canMoveUp, getItem, hasItems, initialize, items, itemsSize, moveDown, moveUp, removeItem, removeItems, removeListChangeListener, toStringItems
 
Methods inherited from class org.eclipse.persistence.jpa.jpql.model.query.AbstractStateObject
acceptUnknownVisitor, acceptUnknownVisitor, addPropertyChangeListener, areEquivalent, buildProblem, buildProblem, buildStateObject, buildStateObjects, checkParent, children, decorate, equals, firePropertyChanged, getChangeSupport, 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, getDecorator, getGrammar, getManagedTypeProvider, getQueryBuilder, getRoot, isDecorated, removePropertyChangeListener, setParent, toString, toText
 

Constructor Detail

SimpleFromClauseStateObject

public SimpleFromClauseStateObject(SimpleSelectStatementStateObject parent)
Creates a new SimpleFromClauseStateObject.

Parameters:
parent - The parent of this state object, which cannot be null
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

addDerivedCollectionDeclaration

public CollectionMemberDeclarationStateObject addDerivedCollectionDeclaration()
Adds a new derived collection declaration to the FROM clause.

Returns:
The CollectionMemberDeclarationStateObject representing the collection declaration

addDerivedCollectionDeclaration

public CollectionMemberDeclarationStateObject addDerivedCollectionDeclaration(java.lang.String collectionValuedPath)
Adds a new derived collection declaration to the FROM clause.

Parameters:
collectionValuedPath - The collection-valued path expression
Returns:
The CollectionMemberDeclarationStateObject representing the collection declaration

addDerivedPathDeclaration

public DerivedPathIdentificationVariableDeclarationStateObject addDerivedPathDeclaration()
Adds a new derived identification variable declaration to the FROM clause.

Returns:
The DerivedPathIdentificationVariableDeclarationStateObject representing the path declaration

addDerivedPathDeclaration

public DerivedPathIdentificationVariableDeclarationStateObject addDerivedPathDeclaration(java.lang.String path,
                                                                                         java.lang.String identificationVariable)
Adds a new derived identification variable declaration to the FROM clause.

Parameters:
path - Either the derived singled-valued object field or the collection-valued path expression
identificationVariable - The identification variable defining the given path
Returns:
The DerivedPathIdentificationVariableDeclarationStateObject representing the path declaration

declarationBNF

public java.lang.String declarationBNF()
Returns the BNF of the declaration part of this clause.

Specified by:
declarationBNF in class AbstractFromClauseStateObject
Returns:
The BNF of the declaration part of this clause

findManagedType

public IManagedType findManagedType(StateObject stateObject)
Returns the IManagedType for the given identification variable. If the declaration is for a subquery and there is no managed type associated with the identification then the search will traverse up the query hierarchy.

SELECT e FROM Department d JOIN KEY(d.employees).addresses a
In the above query, the managed type associated with the identification variable:

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
See Also:
DeclarationStateObject.getManagedType(StateObject)

getExpression

public SimpleFromClause getExpression()
Returns the actual parsed object if this StateObject representation of the JPQL query was created by parsing an existing JPQL query.

Specified by:
getExpression in interface StateObject
Overrides:
getExpression in class AbstractFromClauseStateObject
Returns:
The parsed object when a JPQL query is parsed and converted into a StateObject or null when the JPQL query is manually created (i.e. not from a string)

getParent

public SimpleSelectStatementStateObject getParent()
Returns the parent of this StateObject.

Specified by:
getParent in interface StateObject
Overrides:
getParent in class AbstractFromClauseStateObject
Returns:
Returns the parent of this StateObject, which is null only when this is the root of the hierarchy

setExpression

public void setExpression(SimpleFromClause expression)
Keeps a reference of the parsed object object, which should only be done when this object is instantiated during the conversion of a parsed JPQL query into StateObjects.

Parameters:
expression - The parsed object representing a subquery FROM

EclipseLink 2.4.2, build 'v20130514-5956486' API Reference