Class AbstractTripleEncapsulatedExpressionStateObject
java.lang.Object
org.eclipse.persistence.jpa.jpql.tools.model.query.AbstractStateObject
org.eclipse.persistence.jpa.jpql.tools.model.query.AbstractEncapsulatedExpressionStateObject
org.eclipse.persistence.jpa.jpql.tools.model.query.AbstractTripleEncapsulatedExpressionStateObject
- All Implemented Interfaces:
StateObject
- Direct Known Subclasses:
LocateExpressionStateObject
,SubstringExpressionStateObject
public abstract class AbstractTripleEncapsulatedExpressionStateObject
extends AbstractEncapsulatedExpressionStateObject
This state object takes care of parsing an expression that encapsulates three expressions
separated by a comma.
BNF: expression ::= <identifier>(first_expression, second_expression, third_expression)
- Since:
- 2.4
- Version:
- 2.4
- See Also:
-
Field Summary
Modifier and TypeFieldDescriptionstatic final String
Notifies the firstStateObject
property has changed.static final String
Notifies the secondStateObject
property has changed.static final String
Notifies the thirdStateObject
property has changed. -
Constructor Summary
ModifierConstructorDescriptionprotected
Creates a newAbstractTripleEncapsulatedExpressionStateObject
.protected
AbstractTripleEncapsulatedExpressionStateObject
(StateObject parent, String firstJpqlFragment, String secondJpqlFragment, String thirdJpqlFragment) Creates a newAbstractTripleEncapsulatedExpressionStateObject
.protected
AbstractTripleEncapsulatedExpressionStateObject
(StateObject parent, StateObject firstStateObject, StateObject secondStateObject, StateObject thirdStateObject) Creates a newAbstractTripleEncapsulatedExpressionStateObject
. -
Method Summary
Modifier and TypeMethodDescriptionprotected void
addChildren
(List<StateObject> children) Adds the children of thisStateObject
to the given list.Returns the actual parsed object if thisStateObject
representation of the JPQL query was created by parsing an existing JPQL query.getFirst()
Returns theStateObject
representing the first expression.protected abstract String
Returns the unique identifier of the BNF that will be used to parse a JPQL fragment as the first encapsulated expression.Returns theStateObject
representing the second expression.protected abstract String
Returns the unique identifier of the BNF that will be used to parse a JPQL fragment as the second encapsulated expression.getThird()
Returns theStateObject
representing the third expression.protected abstract String
Returns the unique identifier of the BNF that will be used to parse a JPQL fragment as the third encapsulated expression.boolean
hasFirst()
Determines whether theStateObject
representing the first encapsulated expression is present or not.boolean
Determines whether theStateObject
representing the second encapsulated expression is present or not.boolean
hasThird()
Determines whether theStateObject
representing the third encapsulated expression is present or not.boolean
isEquivalent
(StateObject stateObject) Determines whether the givenStateObject
is equivalent to this one, i.e.void
parseFirst
(String jpqlFragment) Parses the given JPQL fragment, which will represent the first encapsulated expression.void
parseSecond
(String jpqlFragment) Parses the given JPQL fragment, which will represent the second encapsulated expression.void
parseThird
(String jpqlFragment) Parses the given JPQL fragment, which will represent the third encapsulated expression.void
setFirst
(StateObject firstStateObject) Sets the givenStateObject
to represent the first encapsulated expression.void
setSecond
(StateObject secondStateObject) Sets the givenStateObject
to represent the second encapsulated expression.void
setThird
(StateObject thirdStateObject) Sets the givenStateObject
to represent the third encapsulated expression.protected void
Prints out a string representation of this encapsulated information, which should not be used to define atrue
string representation of a JPQL query but should be used for debugging purposes.Methods inherited from class org.eclipse.persistence.jpa.jpql.tools.model.query.AbstractEncapsulatedExpressionStateObject
getIdentifier, toTextInternal
Methods inherited from class org.eclipse.persistence.jpa.jpql.tools.model.query.AbstractStateObject
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
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
Methods inherited from interface org.eclipse.persistence.jpa.jpql.tools.model.query.StateObject
accept
-
Field Details
-
FIRST_STATE_OBJECT_PROPERTY
Notifies the firstStateObject
property has changed.- See Also:
-
SECOND_STATE_OBJECT_PROPERTY
Notifies the secondStateObject
property has changed.- See Also:
-
THIRD_STATE_OBJECT_PROPERTY
Notifies the thirdStateObject
property has changed.- See Also:
-
-
Constructor Details
-
AbstractTripleEncapsulatedExpressionStateObject
Creates a newAbstractTripleEncapsulatedExpressionStateObject
.- Parameters:
parent
- The parent of this state object, which cannot benull
- Throws:
NullPointerException
- The given parent cannot benull
-
AbstractTripleEncapsulatedExpressionStateObject
protected AbstractTripleEncapsulatedExpressionStateObject(StateObject parent, StateObject firstStateObject, StateObject secondStateObject, StateObject thirdStateObject) Creates a newAbstractTripleEncapsulatedExpressionStateObject
.- Parameters:
parent
- The parent of this state object, which cannot benull
firstStateObject
- TheStateObject
of the first encapsulated expressionsecondStateObject
- TheStateObject
of the second encapsulated expressionthirdStateObject
- TheStateObject
of the third encapsulated expression- Throws:
NullPointerException
- The given parent cannot benull
-
AbstractTripleEncapsulatedExpressionStateObject
protected AbstractTripleEncapsulatedExpressionStateObject(StateObject parent, String firstJpqlFragment, String secondJpqlFragment, String thirdJpqlFragment) Creates a newAbstractTripleEncapsulatedExpressionStateObject
.- Parameters:
parent
- The parent of this state object, which cannot benull
firstJpqlFragment
- The string representation of the first encapsulated expression to parse and to convert into aStateObject
representationsecondJpqlFragment
- The string representation of the second encapsulated expression to parse and to convert into aStateObject
representationthirdJpqlFragment
- The string representation of the third encapsulated expression to parse and to convert into aStateObject
representation- Throws:
NullPointerException
- The given parent cannot benull
-
-
Method Details
-
addChildren
Description copied from class:AbstractStateObject
Adds the children of thisStateObject
to the given list.- Overrides:
addChildren
in classAbstractStateObject
- Parameters:
children
- The list used to store the children
-
getExpression
Description copied from interface:StateObject
Returns the actual parsed object if thisStateObject
representation of the JPQL query was created by parsing an existing JPQL query.- Specified by:
getExpression
in interfaceStateObject
- Overrides:
getExpression
in classAbstractEncapsulatedExpressionStateObject
- 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)
-
getFirst
Returns theStateObject
representing the first expression.- Returns:
- The first encapsulated
StateObject
ornull
if none exists
-
getFirstQueryBNFId
Returns the unique identifier of the BNF that will be used to parse a JPQL fragment as the first encapsulated expression.- Returns:
- The query BNF ID for the first encapsulated expression
-
getSecond
Returns theStateObject
representing the second expression.- Returns:
- The second encapsulated
StateObject
ornull
if none exists
-
getSecondQueryBNFId
Returns the unique identifier of the BNF that will be used to parse a JPQL fragment as the second encapsulated expression.- Returns:
- The query BNF ID for the second encapsulated expression
-
getThird
Returns theStateObject
representing the third expression.- Returns:
- The third encapsulated
StateObject
ornull
if none exists
-
getThirdQueryBNFId
Returns the unique identifier of the BNF that will be used to parse a JPQL fragment as the third encapsulated expression.- Returns:
- The query BNF ID for the third encapsulated expression
-
hasFirst
public boolean hasFirst()Determines whether theStateObject
representing the first encapsulated expression is present or not.- Returns:
true
if the firstStateObject
is notnull
;false
otherwise
-
hasSecond
public boolean hasSecond()Determines whether theStateObject
representing the second encapsulated expression is present or not.- Returns:
true
if the secondStateObject
is notnull
;false
otherwise
-
hasThird
public boolean hasThird()Determines whether theStateObject
representing the third encapsulated expression is present or not.- Returns:
true
if the thirdStateObject
is notnull
;false
otherwise
-
isEquivalent
Description copied from interface:StateObject
Determines whether the givenStateObject
is equivalent to this one, i.e. the information of bothStateObject
is the same.- Specified by:
isEquivalent
in interfaceStateObject
- Overrides:
isEquivalent
in classAbstractStateObject
- Parameters:
stateObject
- TheStateObject
to compare its content to this one- Returns:
true
if both object are equivalent;false
otherwise
-
parseFirst
Parses the given JPQL fragment, which will represent the first encapsulated expression.- Parameters:
jpqlFragment
- The string representation of the first encapsulated expression to parse and to convert into aStateObject
representation
-
parseSecond
Parses the given JPQL fragment, which will represent the second encapsulated expression.- Parameters:
jpqlFragment
- The string representation of the second encapsulated expression to parse and to convert into aStateObject
representation
-
parseThird
Parses the given JPQL fragment, which will represent the third encapsulated expression.- Parameters:
jpqlFragment
- The string representation of the third encapsulated expression to parse and to convert into aStateObject
representation
-
setFirst
Sets the givenStateObject
to represent the first encapsulated expression.- Parameters:
firstStateObject
- The new encapsulatedStateObject
representing the first expression
-
setSecond
Sets the givenStateObject
to represent the second encapsulated expression.- Parameters:
secondStateObject
- The new encapsulatedStateObject
representing the second expression
-
setThird
Sets the givenStateObject
to represent the third encapsulated expression.- Parameters:
thirdStateObject
- The new encapsulatedStateObject
representing the third expression
-
toTextEncapsulatedExpression
Description copied from class:AbstractEncapsulatedExpressionStateObject
Prints out a string representation of this encapsulated information, which should not be used to define atrue
string representation of a JPQL query but should be used for debugging purposes.- Specified by:
toTextEncapsulatedExpression
in classAbstractEncapsulatedExpressionStateObject
- Parameters:
writer
- The writer used to print out the string representation of the encapsulated information- Throws:
IOException
- This should never happens, only required becauseAppendable
is used instead ofStringBuilder
for instance
-