public interface StateObject
StateObject is an editable representation of a JPQL query.
IJPQLQueryBuilder can be used to
create the state model from an existing JPQL query.
| Modifier and Type | Method and Description |
|---|---|
void |
accept(StateObjectVisitor visitor)
Visits this
StateObject by the given visitor. |
void |
addPropertyChangeListener(java.lang.String propertyName,
IPropertyChangeListener<?> listener)
Registers the given
IPropertyChangeListener for the specified property. |
java.lang.Iterable<StateObject> |
children()
Returns the ordered children of this
StateObject. |
void |
decorate(StateObject decorator)
Decorates this
StateObject with the given decorator. |
IdentificationVariableStateObject |
findIdentificationVariable(java.lang.String identificationVariable)
Returns the
IdentificationVariableStateObject 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 the
StateObject decorating this one if one has been set, which means the
behavior of this StateObject is modified by the decorator. |
Expression |
getExpression()
Returns the actual parsed object if this
StateObject 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 this
StateObject. |
IJPQLQueryBuilder |
getQueryBuilder()
Returns the
IJPQLQueryBuilder that is responsible to create various part of the StateObject hierarchy. |
JPQLQueryStateObject |
getRoot()
Returns the root of the
StateObject hierarchy. |
boolean |
isDecorated()
Determines whether this
StateObject is being decorated by another StateObject,
which means the behavior is modified by the given one. |
boolean |
isEquivalent(StateObject stateObject)
Determines whether the given
StateObject is equivalent to this one, i.e. the
information of both StateObject is the same. |
void |
removePropertyChangeListener(java.lang.String propertyName,
IPropertyChangeListener<?> listener)
Unregisters the given
IPropertyChangeListener that was registered for the specified
property. |
void |
setParent(StateObject parent)
Sets the given
StateObject to become the parent of this one. |
void |
toString(java.lang.Appendable writer)
Prints out a string representation of this
StateObject, which should not be used to
define a true 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 this
StateObject, which should not be used to
define a true string representation of a JPQL query but should be used for
debugging purposes. |
void accept(StateObjectVisitor visitor)
StateObject by the given visitor.visitor - The visitor to visit this objectvoid addPropertyChangeListener(java.lang.String propertyName,
IPropertyChangeListener<?> listener)
IPropertyChangeListener for the specified property. The listener
will be notified only for changes to the specified property.propertyName - The name of the property for which the listener was registeredlistener - The listener to be notified upon changesjava.lang.NullPointerException - IPropertyChangeListener cannot be nulljava.lang.IllegalArgumentException - The listener is already registered with the property namejava.lang.Iterable<StateObject> children()
StateObject.StateObject or an empty iterable this state object does
not have childrenvoid decorate(StateObject decorator)
StateObject with the given decorator. It means the behavior of this
StateObject is modified by the given one. By default, this StateObject
becomes the parent of the given one.decorator - The StateObject decorating this oneIdentificationVariableStateObject findIdentificationVariable(java.lang.String identificationVariable)
IdentificationVariableStateObject representing the given identification
variable.identificationVariable - The name of the identification variable to retrieve its state objectIdentificationVariableStateObject defining the given identification variableDeclarationStateObject getDeclaration()
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 subqueryStateObject getDecorator()
StateObject decorating this one if one has been set, which means the
behavior of this StateObject is modified by the decorator.StateObject decorating this oneExpression getExpression()
StateObject representation of the JPQL query
was created by parsing an existing JPQL query.StateObject
or null when the JPQL query is manually created (i.e. not from a string)JPQLGrammar getGrammar()
IManagedTypeProvider getManagedTypeProvider()
StateObject getParent()
StateObject.StateObject, which is null only when
this is the root of the hierarchyIJPQLQueryBuilder getQueryBuilder()
IJPQLQueryBuilder that is responsible to create various part of the StateObject hierarchy.StateObject from a JPQL query or that gives
access to various sub-buildersJPQLQueryStateObject getRoot()
StateObject hierarchy.boolean isDecorated()
StateObject is being decorated by another StateObject,
which means the behavior is modified by the given one.
return true if this StateObject is being decorated; false
otherwiseboolean isEquivalent(StateObject stateObject)
StateObject is equivalent to this one, i.e. the
information of both StateObject is the same.stateObject - The StateObject to compare its content to this onetrue if both object are equivalent; false otherwisevoid removePropertyChangeListener(java.lang.String propertyName,
IPropertyChangeListener<?> listener)
IPropertyChangeListener that was registered for the specified
property. The listener will no longer be notified when the property changes.propertyName - The name of the property for which the listener was registeredlistener - The listener to unregisterjava.lang.NullPointerException - IPropertyChangeListener cannot be nulljava.lang.IllegalArgumentException - The listener was never registered with the property namevoid setParent(StateObject parent)
StateObject to become the parent of this one.parent - The new parent StateObject of this one, which cannot be nullvoid toString(java.lang.Appendable writer)
StateObject, which should not be used to
define a true string representation of a JPQL query but should be used for
debugging purposes.
Important: If this StateObject is decorated by another one, then toString(Appendable) from that decorator is invoked, otherwise the information contained in
this one will be printed out.
writer - The writer used to print out the string representationtoText(Appendable)void toText(java.lang.Appendable writer)
StateObject, which should not be used to
define a true 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.
writer - The writer used to print out the string representationtoString(Appendable)