Class SimpleSelectClauseStateObject
- java.lang.Object
-
- org.eclipse.persistence.jpa.jpql.tools.model.query.AbstractStateObject
-
- org.eclipse.persistence.jpa.jpql.tools.model.query.AbstractSelectClauseStateObject
-
- org.eclipse.persistence.jpa.jpql.tools.model.query.SimpleSelectClauseStateObject
-
- All Implemented Interfaces:
StateObject
public class SimpleSelectClauseStateObject extends AbstractSelectClauseStateObject
The SELECT statement queries data from entities. This version simply does not handle OBJECT and NEW identifiers. It is used from within another expression.BNF:simple_select_clause ::= SELECT [DISTINCT] simple_select_expression- Since:
- 2.4
- Version:
- 2.4
- Author:
- Pascal Filion
- See Also:
SimpleSelectClause
-
-
Field Summary
Fields Modifier and Type Field Description static StringSELECT_ITEM_PROPERTYNotifies the select expression property has changed.-
Fields inherited from class org.eclipse.persistence.jpa.jpql.tools.model.query.AbstractSelectClauseStateObject
DISTINCT_PROPERTY
-
-
Constructor Summary
Constructors Constructor Description SimpleSelectClauseStateObject(SimpleSelectStatementStateObject parent)Creates a newSubQuerySelectClauseStateObject.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidaccept(StateObjectVisitor visitor)Visits thisStateObjectby the givenvisitor.ISimpleSelectExpressionStateObjectBuildergetBuilder()Creates and returns a newISimpleSelectExpressionStateObjectBuilderthat can be used to programmatically create a single select expression and once the expression is complete,ISimpleSelectExpressionStateObjectBuilder.commit()will push theStateObjectrepresentation of that expression as this clause's select expression.SimpleSelectClausegetExpression()Returns the actual parsed object if thisStateObjectrepresentation of the JPQL query was created by parsing an existing JPQL query.SimpleFromClauseStateObjectgetFromClause()Returns theAbstractFromClauseStateObjectrepresenting the FROM clause.SimpleSelectStatementStateObjectgetParent()Returns the parent of thisStateObject.StateObjectgetSelectItem()ReturnsbooleanhasSelectItem()Determines whether thisSELECTclause has a select item defined (only one can be set for a subquery'sSELECTclause and many for a top-level query).booleanisEquivalent(StateObject stateObject)Determines whether the givenStateObjectis equivalent to this one, i.e.voidparse(String jpqlFragment)Parses the given JPQL fragment and create the select item.voidsetExpression(SimpleSelectClause 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.voidsetSelectItem(StateObject stateObject)Sets the givenStateObjectas this clause's select item.-
Methods inherited from class org.eclipse.persistence.jpa.jpql.tools.model.query.AbstractSelectClauseStateObject
hasDistinct, setDistinct, toggleDistinct
-
Methods inherited from class org.eclipse.persistence.jpa.jpql.tools.model.query.AbstractStateObject
addPropertyChangeListener, children, decorate, equals, findIdentificationVariable, getDeclaration, getDecorator, getGrammar, getManagedTypeProvider, getQueryBuilder, getRoot, getType, getType, getTypeHelper, getTypeRepository, hashCode, isDecorated, removePropertyChangeListener, setExpression, setParent, toString, toString, toText
-
-
-
-
Field Detail
-
SELECT_ITEM_PROPERTY
public static final String SELECT_ITEM_PROPERTY
Notifies the select expression property has changed.- See Also:
- Constant Field Values
-
-
Constructor Detail
-
SimpleSelectClauseStateObject
public SimpleSelectClauseStateObject(SimpleSelectStatementStateObject parent)
Creates a newSubQuerySelectClauseStateObject.- Parameters:
parent- The parent of this state object, which cannot benull- Throws:
NullPointerException- The given parent cannot benull
-
-
Method Detail
-
accept
public void accept(StateObjectVisitor visitor)
Visits thisStateObjectby the givenvisitor.- Parameters:
visitor- Thevisitorto visit this object
-
getBuilder
public ISimpleSelectExpressionStateObjectBuilder getBuilder()
Creates and returns a newISimpleSelectExpressionStateObjectBuilderthat can be used to programmatically create a single select expression and once the expression is complete,ISimpleSelectExpressionStateObjectBuilder.commit()will push theStateObjectrepresentation of that expression as this clause's select expression.- Returns:
- A new builder that can be used to quickly create a select expression
-
getExpression
public SimpleSelectClause 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 classAbstractSelectClauseStateObject- 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)
-
getFromClause
public SimpleFromClauseStateObject getFromClause()
Returns theAbstractFromClauseStateObjectrepresenting the FROM clause.- Overrides:
getFromClausein classAbstractSelectClauseStateObject- Returns:
- The state object representing the FROM clause
-
getParent
public SimpleSelectStatementStateObject getParent()
Returns the parent of thisStateObject.- Specified by:
getParentin interfaceStateObject- Overrides:
getParentin classAbstractSelectClauseStateObject- Returns:
- Returns the parent of this
StateObject, which isnullonly when this is the root of the hierarchy
-
getSelectItem
public StateObject getSelectItem()
Returns- Returns:
-
hasSelectItem
public boolean hasSelectItem()
Determines whether thisSELECTclause has a select item defined (only one can be set for a subquery'sSELECTclause and many for a top-level query).- Specified by:
hasSelectItemin classAbstractSelectClauseStateObject- Returns:
trueif this state object has children;falseotherwise
-
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 classAbstractSelectClauseStateObject- Parameters:
stateObject- TheStateObjectto compare its content to this one- Returns:
trueif both object are equivalent;falseotherwise
-
parse
public void parse(String jpqlFragment)
Parses the given JPQL fragment and create the select item. For the top-level query, the fragment can contain several select items but for a subquery, it can represent only one.- Specified by:
parsein classAbstractSelectClauseStateObject- Parameters:
jpqlFragment- The portion of the query representing one or several select items
-
setExpression
public void setExpression(SimpleSelectClause 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 subquerySELECTclause
-
setSelectItem
public void setSelectItem(StateObject stateObject)
Sets the givenStateObjectas this clause's select item.- Parameters:
stateObject- TheStateObjectrepresenting the single select item
-
-