public abstract class AbstractSingleEncapsulatedExpressionStateObject extends AbstractEncapsulatedExpressionStateObject
StateObject represents a JPQL expression that has a JPQL identifier followed by
an encapsulated expression with parenthesis.
expression ::= <identifier>(expression)AbstractSingleEncapsulatedExpression| Modifier and Type | Field and Description |
|---|---|
static java.lang.String |
STATE_OBJECT_PROPERTY
Notifies the encapsulated
StateObject has changed. |
| Modifier | Constructor and Description |
|---|---|
protected |
AbstractSingleEncapsulatedExpressionStateObject(StateObject parent)
Creates a new
AbstractSingleEncapsulatedExpressionStateObject. |
protected |
AbstractSingleEncapsulatedExpressionStateObject(StateObject parent,
StateObject stateObject)
Creates a new
AbstractSingleEncapsulatedExpressionStateObject. |
protected |
AbstractSingleEncapsulatedExpressionStateObject(StateObject parent,
java.lang.String jpqlFragment)
Creates a new
AbstractSingleEncapsulatedExpressionStateObject. |
| Modifier and Type | Method and Description |
|---|---|
protected void |
addChildren(java.util.List<StateObject> children)
Adds the children of this
StateObject to the given list. |
AbstractSingleEncapsulatedExpression |
getExpression()
Returns the actual parsed object if this
StateObject representation of the JPQL query
was created by parsing an existing JPQL query. |
protected abstract java.lang.String |
getQueryBNFId()
Returns the unique identifier of the
JPQLQueryBNF that will determine how to parse the encapsulated expression. |
StateObject |
getStateObject()
Returns the encapsulated
StateObject. |
boolean |
hasStateObject()
Determines whether the
StateObject representing the encapsulated expression is present
or not. |
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 |
parse(java.lang.String jpqlFragment)
Parses the given JPQL fragment, which represents the encapsulated expression, and creates the
StateObject. |
protected void |
setStateObject(StateObject stateObject)
Sets the given
StateObject to represent the new encapsulated expression. |
protected void |
toTextEncapsulatedExpression(java.lang.Appendable writer)
Prints out a string representation of this encapsulated information, which should not be used
to define a
true string representation of a JPQL query but should be used for
debugging purposes. |
getIdentifier, toTextInternalacceptUnknownVisitor, 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, toTextclone, finalize, getClass, notify, notifyAll, wait, wait, waitacceptpublic static final java.lang.String STATE_OBJECT_PROPERTY
StateObject has changed.protected AbstractSingleEncapsulatedExpressionStateObject(StateObject parent)
AbstractSingleEncapsulatedExpressionStateObject.parent - The parent of this state object, which cannot be nulljava.lang.NullPointerException - The given parent cannot be nullprotected AbstractSingleEncapsulatedExpressionStateObject(StateObject parent, StateObject stateObject)
AbstractSingleEncapsulatedExpressionStateObject.parent - The parent of this state object, which cannot be nullstateObject - The StateObject representing the encapsulated expressionjava.lang.NullPointerException - The given parent cannot be nullprotected AbstractSingleEncapsulatedExpressionStateObject(StateObject parent, java.lang.String jpqlFragment)
AbstractSingleEncapsulatedExpressionStateObject.parent - The parent of this state object, which cannot be nulljpqlFragment - The portion of the query representing the encapsulated expressionjava.lang.NullPointerException - The given parent cannot be nullprotected void addChildren(java.util.List<StateObject> children)
StateObject to the given list.addChildren in class AbstractStateObjectchildren - The list used to store the childrenpublic AbstractSingleEncapsulatedExpression getExpression()
StateObject representation of the JPQL query
was created by parsing an existing JPQL query.getExpression in interface StateObjectgetExpression in class AbstractEncapsulatedExpressionStateObjectStateObject
or null when the JPQL query is manually created (i.e. not from a string)protected abstract java.lang.String getQueryBNFId()
JPQLQueryBNF that will determine how to parse the encapsulated expression.null ID of the BNFpublic StateObject getStateObject()
StateObject.StateObjectpublic boolean hasStateObject()
StateObject representing the encapsulated expression is present
or not.true if the encapsulated StateObject is not null;
false otherwisepublic boolean isEquivalent(StateObject stateObject)
StateObject is equivalent to this one, i.e. the
information of both StateObject is the same.isEquivalent in interface StateObjectisEquivalent in class AbstractStateObjectstateObject - The StateObject to compare its content to this onetrue if both object are equivalent; false otherwisepublic void parse(java.lang.String jpqlFragment)
StateObject.jpqlFragment - The portion of the query representing the encapsulated expressionprotected void setStateObject(StateObject stateObject)
StateObject to represent the new encapsulated expression.stateObject - The new encapsulated StateObjectprotected void toTextEncapsulatedExpression(java.lang.Appendable writer)
throws java.io.IOException
true string representation of a JPQL query but should be used for
debugging purposes.toTextEncapsulatedExpression in class AbstractEncapsulatedExpressionStateObjectwriter - The writer used to print out the string representation of the encapsulated
informationjava.io.IOException - This should never happens, only required because Appendable is
used instead of StringBuilder for instance