Class AbstractRangeVariableDeclarationStateObject
- java.lang.Object
-
- org.eclipse.persistence.jpa.jpql.tools.model.query.AbstractStateObject
-
- org.eclipse.persistence.jpa.jpql.tools.model.query.AbstractRangeVariableDeclarationStateObject
-
- All Implemented Interfaces:
StateObject,VariableDeclarationStateObject
- Direct Known Subclasses:
DerivedPathVariableDeclarationStateObject,RangeVariableDeclarationStateObject
public abstract class AbstractRangeVariableDeclarationStateObject extends AbstractStateObject implements VariableDeclarationStateObject
- Since:
- 2.4
- Version:
- 2.5
- Author:
- Pascal Filion
-
-
Field Summary
Fields Modifier and Type Field Description static StringAS_PROPERTYNotifies the visibility of theASidentifier has changed.static StringIDENTIFICATION_VARIABLE_PROPERTYNotifies the identification variable property has changed.
-
Constructor Summary
Constructors Constructor Description AbstractRangeVariableDeclarationStateObject(AbstractIdentificationVariableDeclarationStateObject parent)Creates a newRangeVariableDeclarationStateObject.AbstractRangeVariableDeclarationStateObject(AbstractIdentificationVariableDeclarationStateObject parent, String root)Creates a newRangeVariableDeclarationStateObject.AbstractRangeVariableDeclarationStateObject(AbstractModifyClauseStateObject parent)Creates a newAbstractRangeVariableDeclarationStateObject.
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description AbstractRangeVariableDeclarationStateObjectaddAs()Makes sure theASidentifier is specified.RangeVariableDeclarationgetExpression()Returns the actual parsed object if thisStateObjectrepresentation of the JPQL query was created by parsing an existing JPQL query.StringgetIdentificationVariable()Returns the identification variable name that is ranging over the abstract schema type.IdentificationVariableStateObjectgetIdentificationVariableStateObject()Returns theIdentificationVariableStateObjectholding onto the identification variable.abstract StringgetRootPath()Returns the "root" object for objects which may not be reachable by navigation.StateObjectgetRootStateObject()Returns theStateObjectholding onto the abstract schema name.booleanhasAs()Determines whether theASidentifier is used or not.booleanhasIdentificationVariable()Determines whether an identification variable was defined.ListIterable<IdentificationVariableStateObject>identificationVariables()Returns theIdentificationVariableStateObjectthat are used by this state object.booleanisEquivalent(StateObject stateObject)Determines whether the givenStateObjectis equivalent to this one, i.e.booleanisIdentificationVariableOptional()Determines whether the identification variable is optional or not.booleanisIdentificationVariableVirtual()Determines whether this identification variable is virtual, meaning it's not part of the query but is required for proper navigability.voidsetAs(boolean as)Sets whether theASidentifier is used or not.voidsetExpression(RangeVariableDeclaration expression)Keeps a reference of theparsed objectobject, which should only be* done when this object is instantiated during the conversion of a parsed JPQL query intoStateObjects.voidsetIdentificationVariable(String identificationVariable)Sets the new identification variable that will range over the "root" object.abstract voidsetRootPath(String root)Sets the "root" object for objects which may not be reachable by navigation.voidtoggleAs()Toggles the usage of theASidentifier.-
Methods inherited from class org.eclipse.persistence.jpa.jpql.tools.model.query.AbstractStateObject
addPropertyChangeListener, children, decorate, equals, findIdentificationVariable, getDeclaration, getDecorator, getGrammar, getManagedTypeProvider, getParent, getQueryBuilder, getRoot, getType, getType, getTypeHelper, getTypeRepository, hashCode, isDecorated, removePropertyChangeListener, setExpression, setParent, toString, toString, toText
-
Methods inherited from interface org.eclipse.persistence.jpa.jpql.tools.model.query.StateObject
accept, addPropertyChangeListener, children, decorate, findIdentificationVariable, getDeclaration, getDecorator, getGrammar, getManagedTypeProvider, getParent, getQueryBuilder, getRoot, isDecorated, removePropertyChangeListener, setParent, toString, toText
-
Methods inherited from interface org.eclipse.persistence.jpa.jpql.tools.model.query.VariableDeclarationStateObject
getManagedType
-
-
-
-
Field Detail
-
AS_PROPERTY
public static final String AS_PROPERTY
Notifies the visibility of theASidentifier has changed.- See Also:
- Constant Field Values
-
IDENTIFICATION_VARIABLE_PROPERTY
public static final String IDENTIFICATION_VARIABLE_PROPERTY
Notifies the identification variable property has changed.- See Also:
- Constant Field Values
-
-
Constructor Detail
-
AbstractRangeVariableDeclarationStateObject
public AbstractRangeVariableDeclarationStateObject(AbstractIdentificationVariableDeclarationStateObject parent)
Creates a newRangeVariableDeclarationStateObject.- Parameters:
parent- The parent of this state object, which cannot benull- Throws:
NullPointerException- The given parent cannot benull
-
AbstractRangeVariableDeclarationStateObject
public AbstractRangeVariableDeclarationStateObject(AbstractIdentificationVariableDeclarationStateObject parent, String root)
Creates a newRangeVariableDeclarationStateObject.- Parameters:
parent- The parent of this state object, which cannot benull- Throws:
NullPointerException- The given parent cannot benull
-
AbstractRangeVariableDeclarationStateObject
public AbstractRangeVariableDeclarationStateObject(AbstractModifyClauseStateObject parent)
Creates a newAbstractRangeVariableDeclarationStateObject.- Parameters:
parent- The parent of this state object, which cannot benull- Throws:
NullPointerException- The given parent cannot benull
-
-
Method Detail
-
addAs
public AbstractRangeVariableDeclarationStateObject addAs()
Makes sure theASidentifier is specified.- Returns:
- This object
-
getExpression
public RangeVariableDeclaration getExpression()
Returns the actual parsed object if thisStateObjectrepresentation of the JPQL query was created by parsing an existing JPQL query.- Specified by:
getExpressionin interfaceStateObject- Overrides:
getExpressionin classAbstractStateObject- Returns:
- The parsed object when a JPQL query is parsed and converted into a
StateObjectornullwhen the JPQL query is manually created (i.e. not from a string)
-
getIdentificationVariable
public String getIdentificationVariable()
Returns the identification variable name that is ranging over the abstract schema type.- Returns:
- The identification variable name
-
getIdentificationVariableStateObject
public IdentificationVariableStateObject getIdentificationVariableStateObject()
Returns theIdentificationVariableStateObjectholding onto the identification variable.- Returns:
- The
IdentificationVariableStateObject, which is nevernull
-
getRootPath
public abstract String getRootPath()
Returns the "root" object for objects which may not be reachable by navigation.- Returns:
- The "root" object
-
getRootStateObject
public StateObject getRootStateObject()
Returns theStateObjectholding onto the abstract schema name.- Returns:
- The
StateObject, which is nevernull
-
hasAs
public boolean hasAs()
Determines whether theASidentifier is used or not.- Returns:
trueif theASidentifier is part of the expression;falseotherwise
-
hasIdentificationVariable
public boolean hasIdentificationVariable()
Determines whether an identification variable was defined.- Returns:
trueif an identification variable is defined;falseotherwise
-
identificationVariables
public ListIterable<IdentificationVariableStateObject> identificationVariables()
Returns theIdentificationVariableStateObjectthat are used by this state object. It is possible more than one declaration exists, like a range variable declaration has also joins and join fetches.- Specified by:
identificationVariablesin interfaceVariableDeclarationStateObject- Returns:
- The list of
IdentificationVariableStateObject
-
isEquivalent
public boolean isEquivalent(StateObject stateObject)
Determines whether the givenStateObjectis equivalent to this one, i.e. the information of bothStateObjectis the same.- Specified by:
isEquivalentin interfaceStateObject- Overrides:
isEquivalentin classAbstractStateObject- Parameters:
stateObject- TheStateObjectto compare its content to this one- Returns:
trueif both object are equivalent;falseotherwise
-
isIdentificationVariableOptional
public boolean isIdentificationVariableOptional()
Determines whether the identification variable is optional or not. The only time it is optional is when this model is used in a modify clause (DELETEorUPDATE).- Returns:
trueif an identification variable is not required;falseif it is required
-
isIdentificationVariableVirtual
public boolean isIdentificationVariableVirtual()
Determines whether this identification variable is virtual, meaning it's not part of the query but is required for proper navigability.- Returns:
trueif this identification variable was virtually created to fully qualify path expression;falseif it was parsed
-
setAs
public void setAs(boolean as)
Sets whether theASidentifier is used or not.- Parameters:
as-trueif theASidentifier is part of the expression;falseotherwise
-
setExpression
public void setExpression(RangeVariableDeclaration expression)
Keeps a reference of theparsed objectobject, which should only be* done when this object is instantiated during the conversion of a parsed JPQL query intoStateObjects.- Parameters:
expression- Theparsed objectrepresenting a range variable declaration
-
setIdentificationVariable
public void setIdentificationVariable(String identificationVariable)
Sets the new identification variable that will range over the "root" object.- Parameters:
identificationVariable- The new identification variable
-
setRootPath
public abstract void setRootPath(String root)
Sets the "root" object for objects which may not be reachable by navigation.- Parameters:
root- The "root" object
-
toggleAs
public void toggleAs()
Toggles the usage of theASidentifier.
-
-