Class AggregateFunctionStateObject
- java.lang.Object
-
- org.eclipse.persistence.jpa.jpql.tools.model.query.AbstractStateObject
-
- org.eclipse.persistence.jpa.jpql.tools.model.query.AbstractEncapsulatedExpressionStateObject
-
- org.eclipse.persistence.jpa.jpql.tools.model.query.AbstractSingleEncapsulatedExpressionStateObject
-
- org.eclipse.persistence.jpa.jpql.tools.model.query.AggregateFunctionStateObject
-
- All Implemented Interfaces:
StateObject
- Direct Known Subclasses:
AvgFunctionStateObject,CountFunctionStateObject,MaxFunctionStateObject,MinFunctionStateObject,SumFunctionStateObject
public abstract class AggregateFunctionStateObject extends AbstractSingleEncapsulatedExpressionStateObject
In theSELECTclause the result of a query may be the result of an aggregate function applied to a path expression.BNF: aggregate_expression ::= {AVG|MAX|MIN|SUM}([DISTINCT] state_field_path_expression) | COUNT([DISTINCT] identification_variable | state_field_path_expression | single_valued_association_path_expression)- Version:
- 2.4
- See Also:
AggregateFunction- Author:
- Pascal Filion
- Since:
- 2.4
-
-
Field Summary
Fields Modifier and Type Field Description static java.lang.StringDISTINCT_PROPERTYNotifies the visibility of theDISTINCTidentifier has changed.-
Fields inherited from class org.eclipse.persistence.jpa.jpql.tools.model.query.AbstractSingleEncapsulatedExpressionStateObject
STATE_OBJECT_PROPERTY
-
-
Constructor Summary
Constructors Modifier Constructor Description protectedAggregateFunctionStateObject(StateObject parent)Creates a newAggregateFunctionStateObject.protectedAggregateFunctionStateObject(StateObject parent, boolean distinct, java.lang.String path)Creates a newAggregateFunctionStateObject.protectedAggregateFunctionStateObject(StateObject parent, boolean distinct, StateObject stateObject)Creates a newAggregateStateObject.protectedAggregateFunctionStateObject(StateObject parent, java.lang.String path)Creates a newAggregateFunctionStateObject.protectedAggregateFunctionStateObject(StateObject parent, StateObject stateObject)Creates a newAggregateStateObject.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description AggregateFunctiongetExpression()Returns the actual parsed object if thisStateObjectrepresentation of the JPQL query was created by parsing an existing JPQL query.booleanhasDistinct()Sets whether theDISTINCTkeyword should be part of the query, which is used to return only distinct (different) values.booleanisEquivalent(StateObject stateObject)Determines whether the givenStateObjectis equivalent to this one, i.e. the information of bothStateObjectis the same.voidsetDistinct(boolean distinct)Sets whether theDISTINCTkeyword should be part of the query, which is used to return only distinct (different) valuesvoidsetStateObject(StateObject stateObject)Sets the givenStateObjectto represent the new encapsulated expression.voidtoggleDistinct()Reverses the visibility of theDISTINCTidentifier.protected voidtoTextEncapsulatedExpression(java.lang.Appendable writer)Prints out a string representation of this encapsulated information, 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.AbstractSingleEncapsulatedExpressionStateObject
addChildren, getQueryBNFId, getStateObject, hasStateObject, parse
-
Methods inherited from class org.eclipse.persistence.jpa.jpql.tools.model.query.AbstractEncapsulatedExpressionStateObject
getIdentifier, toTextInternal
-
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, getParent, getQueryBuilder, getRoot, getType, getType, getTypeHelper, getTypeRepository, hashCode, initialize, 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.tools.model.query.StateObject
accept
-
-
-
-
Field Detail
-
DISTINCT_PROPERTY
public static final java.lang.String DISTINCT_PROPERTY
Notifies the visibility of theDISTINCTidentifier has changed.- See Also:
- Constant Field Values
-
-
Constructor Detail
-
AggregateFunctionStateObject
protected AggregateFunctionStateObject(StateObject parent)
Creates a newAggregateFunctionStateObject.- Parameters:
parent- The parent of this state object, which cannot benull- Throws:
java.lang.NullPointerException- The given parent cannot benull
-
AggregateFunctionStateObject
protected AggregateFunctionStateObject(StateObject parent, boolean distinct, StateObject stateObject)
Creates a newAggregateStateObject.- Parameters:
parent- The parent of this state object, which cannot benulldistinct-trueto addDISTINCTto the query in order to have distinct values;falseif it is not requiredstateObject- TheStateObjectrepresenting the encapsulated expression- Throws:
java.lang.NullPointerException- The given parent cannot benull
-
AggregateFunctionStateObject
protected AggregateFunctionStateObject(StateObject parent, boolean distinct, java.lang.String path)
Creates a newAggregateFunctionStateObject.- Parameters:
parent- The parent of this state object, which cannot benulldistinct-trueto addDISTINCTto the query in order to have distinct values;falseif it is not requiredpath- Either the identification variable or the state field path expression- Throws:
java.lang.NullPointerException- The given parent cannot benull
-
AggregateFunctionStateObject
protected AggregateFunctionStateObject(StateObject parent, StateObject stateObject)
Creates a newAggregateStateObject.- Parameters:
parent- The parent of this state object, which cannot benullstateObject- TheStateObjectrepresenting the encapsulated expression- Throws:
java.lang.NullPointerException- The given parent cannot benull
-
AggregateFunctionStateObject
protected AggregateFunctionStateObject(StateObject parent, java.lang.String path)
Creates a newAggregateFunctionStateObject.- Parameters:
parent- The parent of this state object, which cannot benullpath- Either the identification variable or the state field path expression- Throws:
java.lang.NullPointerException- The given parent cannot benull
-
-
Method Detail
-
getExpression
public AggregateFunction 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 classAbstractSingleEncapsulatedExpressionStateObject- 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)
-
hasDistinct
public boolean hasDistinct()
Sets whether theDISTINCTkeyword should be part of the query, which is used to return only distinct (different) values.- Returns:
trueto addDISTINCTto the query in order to have distinct values;falseif it is not required
-
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 classAbstractSingleEncapsulatedExpressionStateObject- Parameters:
stateObject- TheStateObjectto compare its content to this one- Returns:
trueif both object are equivalent;falseotherwise
-
setDistinct
public void setDistinct(boolean distinct)
Sets whether theDISTINCTkeyword should be part of the query, which is used to return only distinct (different) values- Parameters:
distinct-trueto addDISTINCTto the query in order to have distinct values;falseif it is not required
-
setStateObject
public void setStateObject(StateObject stateObject)
Sets the givenStateObjectto represent the new encapsulated expression.- Overrides:
setStateObjectin classAbstractSingleEncapsulatedExpressionStateObject- Parameters:
stateObject- The new encapsulatedStateObject
-
toggleDistinct
public void toggleDistinct()
Reverses the visibility of theDISTINCTidentifier.
-
toTextEncapsulatedExpression
protected void toTextEncapsulatedExpression(java.lang.Appendable writer) throws java.io.IOExceptionPrints out a string representation of this encapsulated information, which should not be used to define atruestring representation of a JPQL query but should be used for debugging purposes.- Overrides:
toTextEncapsulatedExpressionin classAbstractSingleEncapsulatedExpressionStateObject- Parameters:
writer- The writer used to print out the string representation of the encapsulated information- Throws:
java.io.IOException- This should never happens, only required becauseAppendableis used instead ofStringBuilderfor instance
-
-