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, toTextInternal
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
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
accept
public 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 null
java.lang.NullPointerException
- The given parent cannot be null
protected AbstractSingleEncapsulatedExpressionStateObject(StateObject parent, StateObject stateObject)
AbstractSingleEncapsulatedExpressionStateObject
.parent
- The parent of this state object, which cannot be null
stateObject
- The StateObject
representing the encapsulated expressionjava.lang.NullPointerException
- The given parent cannot be null
protected AbstractSingleEncapsulatedExpressionStateObject(StateObject parent, java.lang.String jpqlFragment)
AbstractSingleEncapsulatedExpressionStateObject
.parent
- The parent of this state object, which cannot be null
jpqlFragment
- The portion of the query representing the encapsulated expressionjava.lang.NullPointerException
- The given parent cannot be null
protected void addChildren(java.util.List<StateObject> children)
StateObject
to the given list.addChildren
in class AbstractStateObject
children
- 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 StateObject
getExpression
in class AbstractEncapsulatedExpressionStateObject
StateObject
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
.StateObject
public 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 StateObject
isEquivalent
in class AbstractStateObject
stateObject
- 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 StateObject
protected 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 AbstractEncapsulatedExpressionStateObject
writer
- 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