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)
- Version:
- 2.4
- See Also:
LocateExpressionStateObject
,SubstringExpressionStateObject
,AbstractTripleEncapsulatedExpression
- Author:
- Pascal Filion
- Since:
- 2.4
-
-
Field Summary
Fields Modifier and Type Field Description static java.lang.String
FIRST_STATE_OBJECT_PROPERTY
Notifies the firstStateObject
property has changed.static java.lang.String
SECOND_STATE_OBJECT_PROPERTY
Notifies the secondStateObject
property has changed.static java.lang.String
THIRD_STATE_OBJECT_PROPERTY
Notifies the thirdStateObject
property has changed.
-
Constructor Summary
Constructors Modifier Constructor Description protected
AbstractTripleEncapsulatedExpressionStateObject(StateObject parent)
Creates a newAbstractTripleEncapsulatedExpressionStateObject
.protected
AbstractTripleEncapsulatedExpressionStateObject(StateObject parent, java.lang.String firstJpqlFragment, java.lang.String secondJpqlFragment, java.lang.String thirdJpqlFragment)
Creates a newAbstractTripleEncapsulatedExpressionStateObject
.protected
AbstractTripleEncapsulatedExpressionStateObject(StateObject parent, StateObject firstStateObject, StateObject secondStateObject, StateObject thirdStateObject)
Creates a newAbstractTripleEncapsulatedExpressionStateObject
.
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description protected void
addChildren(java.util.List<StateObject> children)
Adds the children of thisStateObject
to the given list.AbstractTripleEncapsulatedExpression
getExpression()
Returns the actual parsed object if thisStateObject
representation of the JPQL query was created by parsing an existing JPQL query.StateObject
getFirst()
Returns theStateObject
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 theStateObject
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.StateObject
getThird()
Returns theStateObject
representing the third expression.protected abstract java.lang.String
getThirdQueryBNFId()
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
hasSecond()
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. the information of bothStateObject
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
parseThird(java.lang.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
toTextEncapsulatedExpression(java.lang.Appendable writer)
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 Detail
-
FIRST_STATE_OBJECT_PROPERTY
public static final java.lang.String FIRST_STATE_OBJECT_PROPERTY
Notifies the firstStateObject
property has changed.- See Also:
- Constant Field Values
-
SECOND_STATE_OBJECT_PROPERTY
public static final java.lang.String SECOND_STATE_OBJECT_PROPERTY
Notifies the secondStateObject
property has changed.- See Also:
- Constant Field Values
-
THIRD_STATE_OBJECT_PROPERTY
public static final java.lang.String THIRD_STATE_OBJECT_PROPERTY
Notifies the thirdStateObject
property has changed.- See Also:
- Constant Field Values
-
-
Constructor Detail
-
AbstractTripleEncapsulatedExpressionStateObject
protected AbstractTripleEncapsulatedExpressionStateObject(StateObject parent)
Creates a newAbstractTripleEncapsulatedExpressionStateObject
.- Parameters:
parent
- The parent of this state object, which cannot benull
- Throws:
java.lang.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:
java.lang.NullPointerException
- The given parent cannot benull
-
AbstractTripleEncapsulatedExpressionStateObject
protected AbstractTripleEncapsulatedExpressionStateObject(StateObject parent, java.lang.String firstJpqlFragment, java.lang.String secondJpqlFragment, java.lang.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:
java.lang.NullPointerException
- The given parent cannot benull
-
-
Method Detail
-
addChildren
protected void addChildren(java.util.List<StateObject> children)
Adds the children of thisStateObject
to the given list.- Overrides:
addChildren
in classAbstractStateObject
- Parameters:
children
- The list used to store the children
-
getExpression
public AbstractTripleEncapsulatedExpression getExpression()
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
public StateObject getFirst()
Returns theStateObject
representing the first expression.- Returns:
- The first encapsulated
StateObject
ornull
if none exists
-
getFirstQueryBNFId
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.- Returns:
- The query BNF ID for the first encapsulated expression
-
getSecond
public StateObject getSecond()
Returns theStateObject
representing the second expression.- Returns:
- The second encapsulated
StateObject
ornull
if none exists
-
getSecondQueryBNFId
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.- Returns:
- The query BNF ID for the second encapsulated expression
-
getThird
public StateObject getThird()
Returns theStateObject
representing the third expression.- Returns:
- The third encapsulated
StateObject
ornull
if none exists
-
getThirdQueryBNFId
protected abstract java.lang.String 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
public boolean isEquivalent(StateObject 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
public void parseFirst(java.lang.String jpqlFragment)
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
public void parseSecond(java.lang.String jpqlFragment)
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
public void parseThird(java.lang.String jpqlFragment)
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
public void setFirst(StateObject firstStateObject)
Sets the givenStateObject
to represent the first encapsulated expression.- Parameters:
firstStateObject
- The new encapsulatedStateObject
representing the first expression
-
setSecond
public void setSecond(StateObject secondStateObject)
Sets the givenStateObject
to represent the second encapsulated expression.- Parameters:
secondStateObject
- The new encapsulatedStateObject
representing the second expression
-
setThird
public void setThird(StateObject thirdStateObject)
Sets the givenStateObject
to represent the third encapsulated expression.- Parameters:
thirdStateObject
- The new encapsulatedStateObject
representing the third expression
-
toTextEncapsulatedExpression
protected void toTextEncapsulatedExpression(java.lang.Appendable writer) throws java.io.IOException
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:
java.io.IOException
- This should never happens, only required becauseAppendable
is used instead ofStringBuilder
for instance
-
-