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 theSELECT
clause 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.String
DISTINCT_PROPERTY
Notifies the visibility of theDISTINCT
identifier has changed.-
Fields inherited from class org.eclipse.persistence.jpa.jpql.tools.model.query.AbstractSingleEncapsulatedExpressionStateObject
STATE_OBJECT_PROPERTY
-
-
Constructor Summary
Constructors Modifier Constructor Description protected
AggregateFunctionStateObject(StateObject parent)
Creates a newAggregateFunctionStateObject
.protected
AggregateFunctionStateObject(StateObject parent, boolean distinct, java.lang.String path)
Creates a newAggregateFunctionStateObject
.protected
AggregateFunctionStateObject(StateObject parent, boolean distinct, StateObject stateObject)
Creates a newAggregateStateObject
.protected
AggregateFunctionStateObject(StateObject parent, java.lang.String path)
Creates a newAggregateFunctionStateObject
.protected
AggregateFunctionStateObject(StateObject parent, StateObject stateObject)
Creates a newAggregateStateObject
.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description AggregateFunction
getExpression()
Returns the actual parsed object if thisStateObject
representation of the JPQL query was created by parsing an existing JPQL query.boolean
hasDistinct()
Sets whether theDISTINCT
keyword should be part of the query, which is used to return only distinct (different) values.boolean
isEquivalent(StateObject stateObject)
Determines whether the givenStateObject
is equivalent to this one, i.e. the information of bothStateObject
is the same.void
setDistinct(boolean distinct)
Sets whether theDISTINCT
keyword should be part of the query, which is used to return only distinct (different) valuesvoid
setStateObject(StateObject stateObject)
Sets the givenStateObject
to represent the new encapsulated expression.void
toggleDistinct()
Reverses the visibility of theDISTINCT
identifier.protected void
toTextEncapsulatedExpression(java.lang.Appendable writer)
Prints out a string representation of this encapsulated information, which should not be used to define atrue
string 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 theDISTINCT
identifier 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 benull
distinct
-true
to addDISTINCT
to the query in order to have distinct values;false
if it is not requiredstateObject
- TheStateObject
representing 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 benull
distinct
-true
to addDISTINCT
to the query in order to have distinct values;false
if 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 benull
stateObject
- TheStateObject
representing 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 benull
path
- 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 thisStateObject
representation of the JPQL query was created by parsing an existing JPQL query.- Specified by:
getExpression
in interfaceStateObject
- Overrides:
getExpression
in classAbstractSingleEncapsulatedExpressionStateObject
- Returns:
- The parsed object when a JPQL query is parsed and converted into a
StateObject
ornull
when the JPQL query is manually created (i.e. not from a string)
-
hasDistinct
public boolean hasDistinct()
Sets whether theDISTINCT
keyword should be part of the query, which is used to return only distinct (different) values.- Returns:
true
to addDISTINCT
to the query in order to have distinct values;false
if it is not required
-
isEquivalent
public boolean isEquivalent(StateObject stateObject)
Determines whether the givenStateObject
is equivalent to this one, i.e. the information of bothStateObject
is the same.- Specified by:
isEquivalent
in interfaceStateObject
- Overrides:
isEquivalent
in classAbstractSingleEncapsulatedExpressionStateObject
- Parameters:
stateObject
- TheStateObject
to compare its content to this one- Returns:
true
if both object are equivalent;false
otherwise
-
setDistinct
public void setDistinct(boolean distinct)
Sets whether theDISTINCT
keyword should be part of the query, which is used to return only distinct (different) values- Parameters:
distinct
-true
to addDISTINCT
to the query in order to have distinct values;false
if it is not required
-
setStateObject
public void setStateObject(StateObject stateObject)
Sets the givenStateObject
to represent the new encapsulated expression.- Overrides:
setStateObject
in classAbstractSingleEncapsulatedExpressionStateObject
- Parameters:
stateObject
- The new encapsulatedStateObject
-
toggleDistinct
public void toggleDistinct()
Reverses the visibility of theDISTINCT
identifier.
-
toTextEncapsulatedExpression
protected void toTextEncapsulatedExpression(java.lang.Appendable writer) throws java.io.IOException
Prints out a string representation of this encapsulated information, which should not be used to define atrue
string representation of a JPQL query but should be used for debugging purposes.- Overrides:
toTextEncapsulatedExpression
in 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 becauseAppendable
is used instead ofStringBuilder
for instance
-
-