Interface StateObject
-
- All Known Subinterfaces:
DeclarationStateObject
,ListHolderStateObject<T>
,VariableDeclarationStateObject
- All Known Implementing Classes:
AbsExpressionStateObject
,AbstractConditionalClauseStateObject
,AbstractDoubleEncapsulatedExpressionStateObject
,AbstractEncapsulatedExpressionStateObject
,AbstractFromClauseStateObject
,AbstractIdentificationVariableDeclarationStateObject
,AbstractListHolderStateObject
,AbstractModifyClauseStateObject
,AbstractModifyStatementStateObject
,AbstractPathExpressionStateObject
,AbstractRangeVariableDeclarationStateObject
,AbstractSchemaNameStateObject
,AbstractSelectClauseStateObject
,AbstractSelectStatementStateObject
,AbstractSingleEncapsulatedExpressionStateObject
,AbstractStateObject
,AbstractTripleEncapsulatedExpressionStateObject
,AdditionExpressionStateObject
,AggregateFunctionStateObject
,AllOrAnyExpressionStateObject
,AndExpressionStateObject
,ArithmeticExpressionStateObject
,ArithmeticFactorStateObject
,AvgFunctionStateObject
,BadExpressionStateObject
,BetweenExpressionStateObject
,CaseExpressionStateObject
,CoalesceExpressionStateObject
,CollectionExpressionStateObject
,CollectionMemberDeclarationStateObject
,CollectionMemberExpressionStateObject
,CollectionValuedPathExpressionStateObject
,ComparisonExpressionStateObject
,CompoundExpressionStateObject
,ConcatExpressionStateObject
,ConstructorExpressionStateObject
,CountFunctionStateObject
,DateTimeStateObject
,DeleteClauseStateObject
,DeleteStatementStateObject
,DerivedPathIdentificationVariableDeclarationStateObject
,DerivedPathVariableDeclarationStateObject
,DivisionExpressionStateObject
,EmptyCollectionComparisonExpressionStateObject
,EncapsulatedIdentificationVariableExpressionStateObject
,EntityTypeLiteralStateObject
,EntryExpressionStateObject
,EnumTypeStateObject
,ExistsExpressionStateObject
,FromClauseStateObject
,FunctionExpressionStateObject
,GroupByClauseStateObject
,HavingClauseStateObject
,IdentificationVariableDeclarationStateObject
,IdentificationVariableStateObject
,IndexExpressionStateObject
,InExpressionStateObject
,InputParameterStateObject
,JoinStateObject
,JPQLQueryStateObject
,KeyExpressionStateObject
,KeywordExpressionStateObject
,LengthExpressionStateObject
,LikeExpressionStateObject
,LocateExpressionStateObject
,LogicalExpressionStateObject
,LowerExpressionStateObject
,MaxFunctionStateObject
,MinFunctionStateObject
,ModExpressionStateObject
,MultiplicationExpressionStateObject
,NotExpressionStateObject
,NullComparisonExpressionStateObject
,NullIfExpressionStateObject
,NumericLiteralStateObject
,ObjectExpressionStateObject
,OrderByClauseStateObject
,OrderByItemStateObject
,OrExpressionStateObject
,RangeVariableDeclarationStateObject
,ResultVariableStateObject
,SelectClauseStateObject
,SelectStatementStateObject
,SimpleFromClauseStateObject
,SimpleSelectClauseStateObject
,SimpleSelectStatementStateObject
,SimpleStateObject
,SizeExpressionStateObject
,SqrtExpressionStateObject
,StateFieldPathExpressionStateObject
,StringLiteralStateObject
,SubExpressionStateObject
,SubstringExpressionStateObject
,SubtractionExpressionStateObject
,SumFunctionStateObject
,TreatExpressionStateObject
,TrimExpressionStateObject
,TypeExpressionStateObject
,UnknownExpressionStateObject
,UpdateClauseStateObject
,UpdateItemStateObject
,UpdateStatementStateObject
,UpperExpressionStateObject
,ValueExpressionStateObject
,WhenClauseStateObject
,WhereClauseStateObject
public interface StateObject
AStateObject
is an editable representation of a JPQL query.IJPQLQueryBuilder
can be used to create the state model from an existing JPQL query.- Version:
- 2.5
- Author:
- Pascal Filion
- Since:
- 2.4
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description void
accept(StateObjectVisitor visitor)
Visits thisStateObject
by the givenvisitor
.void
addPropertyChangeListener(java.lang.String propertyName, IPropertyChangeListener<?> listener)
Registers the givenIPropertyChangeListener
for the specified property.java.lang.Iterable<StateObject>
children()
Returns the ordered children of thisStateObject
.void
decorate(StateObject decorator)
Decorates thisStateObject
with the given decorator.IdentificationVariableStateObject
findIdentificationVariable(java.lang.String identificationVariable)
Returns theIdentificationVariableStateObject
representing the given identification variable.DeclarationStateObject
getDeclaration()
Returns the declaration clause which defines the domain of the query by declaring identification variables.StateObject
getDecorator()
Returns theStateObject
decorating this one if one has been set, which means the behavior of thisStateObject
is modified by the decorator.Expression
getExpression()
Returns the actual parsed object if thisStateObject
representation of the JPQL query was created by parsing an existing JPQL query.JPQLGrammar
getGrammar()
Returns the grammar that defines how to parse a JPQL query.IManagedTypeProvider
getManagedTypeProvider()
Returns the provider of managed types.StateObject
getParent()
Returns the parent of thisStateObject
.IJPQLQueryBuilder
getQueryBuilder()
Returns theIJPQLQueryBuilder
that is responsible to create various part of theStateObject
hierarchy.JPQLQueryStateObject
getRoot()
Returns the root of theStateObject
hierarchy.boolean
isDecorated()
Determines whether thisStateObject
is being decorated by anotherStateObject
, which means the behavior is modified by the given one.boolean
isEquivalent(StateObject stateObject)
Determines whether the givenStateObject
is equivalent to this one, i.e. the information of bothStateObject
is the same.void
removePropertyChangeListener(java.lang.String propertyName, IPropertyChangeListener<?> listener)
Unregisters the givenIPropertyChangeListener
that was registered for the specified property.void
setParent(StateObject parent)
Sets the givenStateObject
to become the parent of this one.void
toString(java.lang.Appendable writer)
Prints out a string representation of thisStateObject
, which should not be used to define atrue
string representation of a JPQL query but should be used for debugging purposes.void
toText(java.lang.Appendable writer)
Prints out a string representation of thisStateObject
, which should not be used to define atrue
string representation of a JPQL query but should be used for debugging purposes.
-
-
-
Method Detail
-
accept
void accept(StateObjectVisitor visitor)
Visits thisStateObject
by the givenvisitor
.- Parameters:
visitor
- Thevisitor
to visit this object
-
addPropertyChangeListener
void addPropertyChangeListener(java.lang.String propertyName, IPropertyChangeListener<?> listener)
Registers the givenIPropertyChangeListener
for the specified property. The listener will be notified only for changes to the specified property.- Parameters:
propertyName
- The name of the property for which the listener was registeredlistener
- The listener to be notified upon changes- Throws:
java.lang.NullPointerException
-IPropertyChangeListener
cannot benull
java.lang.IllegalArgumentException
- The listener is already registered with the property name
-
children
java.lang.Iterable<StateObject> children()
Returns the ordered children of thisStateObject
.- Returns:
- The children of this
StateObject
or an empty iterable this state object does not have children
-
decorate
void decorate(StateObject decorator)
Decorates thisStateObject
with the given decorator. It means the behavior of thisStateObject
is modified by the given one. By default, thisStateObject
becomes the parent of the given one.- Parameters:
decorator
- TheStateObject
decorating this one
-
findIdentificationVariable
IdentificationVariableStateObject findIdentificationVariable(java.lang.String identificationVariable)
Returns theIdentificationVariableStateObject
representing the given identification variable.- Parameters:
identificationVariable
- The name of the identification variable to retrieve its state object- Returns:
- The
IdentificationVariableStateObject
defining the given identification variable
-
getDeclaration
DeclarationStateObject getDeclaration()
Returns the declaration clause which defines the domain of the query by declaring identification variables.- Returns:
- The declaration clause of which this
StateObject
is a child; i.e. either the top-level declaration if this is part of the top query or the sub-level declaration if this is part of a subquery
-
getDecorator
StateObject getDecorator()
Returns theStateObject
decorating this one if one has been set, which means the behavior of thisStateObject
is modified by the decorator.- Returns:
- The
StateObject
decorating this one
-
getExpression
Expression getExpression()
Returns the actual parsed object if thisStateObject
representation of the JPQL query was created by parsing an existing JPQL query.- 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)
-
getGrammar
JPQLGrammar getGrammar()
Returns the grammar that defines how to parse a JPQL query.- Returns:
- The grammar that was used to parse the JPQL query
-
getManagedTypeProvider
IManagedTypeProvider getManagedTypeProvider()
Returns the provider of managed types.- Returns:
- The provider that gives access to the managed types
-
getParent
StateObject getParent()
Returns the parent of thisStateObject
.- Returns:
- Returns the parent of this
StateObject
, which isnull
only when this is the root of the hierarchy
-
getQueryBuilder
IJPQLQueryBuilder getQueryBuilder()
Returns theIJPQLQueryBuilder
that is responsible to create various part of theStateObject
hierarchy.- Returns:
- The builder that created this
StateObject
from a JPQL query or that gives access to various sub-builders
-
getRoot
JPQLQueryStateObject getRoot()
Returns the root of theStateObject
hierarchy.- Returns:
- The root of the state model representing the JPQL query
-
isDecorated
boolean isDecorated()
Determines whether thisStateObject
is being decorated by anotherStateObject
, which means the behavior is modified by the given one. returntrue
if thisStateObject
is being decorated;false
otherwise
-
isEquivalent
boolean isEquivalent(StateObject stateObject)
Determines whether the givenStateObject
is equivalent to this one, i.e. the information of bothStateObject
is the same.- Parameters:
stateObject
- TheStateObject
to compare its content to this one- Returns:
true
if both object are equivalent;false
otherwise
-
removePropertyChangeListener
void removePropertyChangeListener(java.lang.String propertyName, IPropertyChangeListener<?> listener)
Unregisters the givenIPropertyChangeListener
that was registered for the specified property. The listener will no longer be notified when the property changes.- Parameters:
propertyName
- The name of the property for which the listener was registeredlistener
- The listener to unregister- Throws:
java.lang.NullPointerException
-IPropertyChangeListener
cannot benull
java.lang.IllegalArgumentException
- The listener was never registered with the property name
-
setParent
void setParent(StateObject parent)
Sets the givenStateObject
to become the parent of this one.- Parameters:
parent
- The new parentStateObject
of this one, which cannot benull
-
toString
void toString(java.lang.Appendable writer)
Prints out a string representation of thisStateObject
, which should not be used to define atrue
string representation of a JPQL query but should be used for debugging purposes.Important: If this
StateObject
is decorated by another one, thentoString(Appendable)
from that decorator is invoked, otherwise the information contained in this one will be printed out.- Parameters:
writer
- The writer used to print out the string representation- See Also:
toText(Appendable)
-
toText
void toText(java.lang.Appendable writer)
Prints out a string representation of thisStateObject
, which should not be used to define atrue
string representation of a JPQL query but should be used for debugging purposes.Important: Even if this
StateObject
is decorated by another one, the decorator will not be used to print out a string representation of this one.- Parameters:
writer
- The writer used to print out the string representation- See Also:
toString(Appendable)
-
-