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- Version:
- 2.4
- See Also:
SimpleSelectClause- Author:
- Pascal Filion
- Since:
- 2.4
-
-
Field Summary
Fields Modifier and Type Field Description static java.lang.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.protected voidaddChildren(java.util.List<StateObject> children)Adds the children of thisStateObjectto the given list.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. the information of bothStateObjectis the same.voidparse(java.lang.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.protected voidtoTextInternal(java.lang.Appendable writer)Prints out a string representation of thisStateObject, which should not be used to define atruestring representation of a JPQL query but should be used for debugging purposes.-
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
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, initialize, isDecorated, parent, parent, parent, removePropertyChangeListener, setExpression, setParent, toString, toString, toStringInternal, toStringItems, toText
-
-
-
-
Field Detail
-
SELECT_ITEM_PROPERTY
public static final java.lang.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:
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
-
addChildren
protected void addChildren(java.util.List<StateObject> children)
Adds the children of thisStateObjectto the given list.- Overrides:
addChildrenin classAbstractStateObject- Parameters:
children- The list used to store the children
-
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(java.lang.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
-
toTextInternal
protected void toTextInternal(java.lang.Appendable writer) throws java.io.IOExceptionPrints out a string representation of thisStateObject, which should not be used to define atruestring representation of a JPQL query but should be used for debugging purposes.- Specified by:
toTextInternalin classAbstractStateObject- Parameters:
writer- The writer used to print out the string representation- Throws:
java.io.IOException- This should never happens, it is only required becauseAppendableis used instead of any concrete class
-
-