public abstract class AbstractDoubleEncapsulatedExpressionStateObject extends AbstractEncapsulatedExpressionStateObject
StateObject
represents a JPQL expression that has a JPQL identifier followed by
two an encapsulated expression with parenthesis, the two expression are separated by a comma.
expression ::= <identifier>(first_expression, second_expression)
ModExpressionStateObject
,
NullIfExpressionStateObject
,
AbstractDoubleEncapsulatedExpression
Modifier and Type | Field and Description |
---|---|
static java.lang.String |
FIRST_STATE_OBJECT_PROPERTY
Notifies the first
StateObject property has changed. |
static java.lang.String |
SECOND_STATE_OBJECT_PROPERTY
Notifies the second
StateObject property has changed. |
Modifier | Constructor and Description |
---|---|
protected |
AbstractDoubleEncapsulatedExpressionStateObject(StateObject parent)
Creates a new
AbstractDoubleEncapsulatedExpressionStateObject . |
protected |
AbstractDoubleEncapsulatedExpressionStateObject(StateObject parent,
StateObject firstStateObject,
StateObject secondStateObject)
Creates a new
AbstractDoubleEncapsulatedExpressionStateObject . |
|
AbstractDoubleEncapsulatedExpressionStateObject(StateObject parent,
java.lang.String firstJpqlFragment,
java.lang.String secondJpqlFragment)
Creates a new
AbstractDoubleEncapsulatedExpressionStateObject . |
Modifier and Type | Method and Description |
---|---|
protected void |
addChildren(java.util.List<StateObject> children)
Adds the children of this
StateObject to the given list. |
AbstractDoubleEncapsulatedExpression |
getExpression()
Returns the actual parsed object if this
StateObject representation of the JPQL query
was created by parsing an existing JPQL query. |
StateObject |
getFirst()
Returns the
StateObject representing the first expression. |
protected abstract java.lang.String |
getFirstQueryBNFId()
Returns the unique identifier of the BNF that will be used to parse a JPQL fragment as the
first encapsulated expression.
|
StateObject |
getSecond()
Returns the
StateObject representing the second expression. |
protected abstract java.lang.String |
getSecondQueryBNFId()
Returns the unique identifier of the BNF that will be used to parse a JPQL fragment as the
second encapsulated expression.
|
boolean |
hasFirst()
Determines whether the
StateObject representing the first encapsulated expression is
present or not. |
boolean |
hasSecond()
Determines whether the
StateObject representing the second 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 |
parseFirst(java.lang.String jpqlFragment)
Parses the given JPQL fragment, which will represent the first encapsulated expression.
|
void |
parseSecond(java.lang.String jpqlFragment)
Parses the given JPQL fragment, which will represent the second encapsulated expression.
|
void |
setFirst(StateObject firstStateObject)
Sets the given
StateObject to represent the first encapsulated expression. |
void |
setSecond(StateObject secondStateObject)
Sets the given
StateObject to represent the second 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 FIRST_STATE_OBJECT_PROPERTY
StateObject
property has changed.public static final java.lang.String SECOND_STATE_OBJECT_PROPERTY
StateObject
property has changed.protected AbstractDoubleEncapsulatedExpressionStateObject(StateObject parent)
AbstractDoubleEncapsulatedExpressionStateObject
.parent
- The parent of this state object, which cannot be null
java.lang.NullPointerException
- The given parent cannot be null
protected AbstractDoubleEncapsulatedExpressionStateObject(StateObject parent, StateObject firstStateObject, StateObject secondStateObject)
AbstractDoubleEncapsulatedExpressionStateObject
.parent
- The parent of this state object, which cannot be null
firstStateObject
- The StateObject
representing the first expressionsecondStateObject
- The StateObject
representing the second expressionjava.lang.NullPointerException
- The given parent cannot be null
public AbstractDoubleEncapsulatedExpressionStateObject(StateObject parent, java.lang.String firstJpqlFragment, java.lang.String secondJpqlFragment)
AbstractDoubleEncapsulatedExpressionStateObject
.parent
- The parent of this state object, which cannot be null
firstJpqlFragment
- The string representation of the first encapsulated expression to
parse and to convert into a StateObject
representationsecondJpqlFragment
- The string representation of the second encapsulated expression to
parse and to convert into a StateObject
representationjava.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 AbstractDoubleEncapsulatedExpression 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)public StateObject getFirst()
StateObject
representing the first expression.StateObject
or null
if none existsprotected abstract java.lang.String getFirstQueryBNFId()
public StateObject getSecond()
StateObject
representing the second expression.StateObject
or null
if none existsprotected abstract java.lang.String getSecondQueryBNFId()
public boolean hasFirst()
StateObject
representing the first encapsulated expression is
present or not.true
if the first StateObject
is not null
;
false
otherwisepublic boolean hasSecond()
StateObject
representing the second encapsulated expression is
present or not.true
if the second 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 parseFirst(java.lang.String jpqlFragment)
jpqlFragment
- The string representation of the first encapsulated expression to parse and
to convert into a StateObject
representationpublic void parseSecond(java.lang.String jpqlFragment)
jpqlFragment
- The string representation of the second encapsulated expression to parse and
to convert into a StateObject
representationpublic void setFirst(StateObject firstStateObject)
StateObject
to represent the first encapsulated expression.firstStateObject
- The new encapsulated StateObject
representing the first
expressionpublic void setSecond(StateObject secondStateObject)
StateObject
to represent the second encapsulated expression.secondStateObject
- The new encapsulated StateObject
representing the second
expressionprotected 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