Class AbstractDoubleEncapsulatedExpressionStateObject
- 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.AbstractDoubleEncapsulatedExpressionStateObject
-
- All Implemented Interfaces:
StateObject
- Direct Known Subclasses:
ModExpressionStateObject
,NullIfExpressionStateObject
public abstract class AbstractDoubleEncapsulatedExpressionStateObject extends AbstractEncapsulatedExpressionStateObject
ThisStateObject
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.BNF:expression ::= <identifier>(first_expression, second_expression)
- Version:
- 2.4
- See Also:
ModExpressionStateObject
,NullIfExpressionStateObject
,AbstractDoubleEncapsulatedExpression
- 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.
-
Constructor Summary
Constructors Modifier Constructor Description protected
AbstractDoubleEncapsulatedExpressionStateObject(StateObject parent)
Creates a newAbstractDoubleEncapsulatedExpressionStateObject
.AbstractDoubleEncapsulatedExpressionStateObject(StateObject parent, java.lang.String firstJpqlFragment, java.lang.String secondJpqlFragment)
Creates a newAbstractDoubleEncapsulatedExpressionStateObject
.protected
AbstractDoubleEncapsulatedExpressionStateObject(StateObject parent, StateObject firstStateObject, StateObject secondStateObject)
Creates a newAbstractDoubleEncapsulatedExpressionStateObject
.
-
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.AbstractDoubleEncapsulatedExpression
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.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
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
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.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
-
-
Constructor Detail
-
AbstractDoubleEncapsulatedExpressionStateObject
protected AbstractDoubleEncapsulatedExpressionStateObject(StateObject parent)
Creates a newAbstractDoubleEncapsulatedExpressionStateObject
.- Parameters:
parent
- The parent of this state object, which cannot benull
- Throws:
java.lang.NullPointerException
- The given parent cannot benull
-
AbstractDoubleEncapsulatedExpressionStateObject
protected AbstractDoubleEncapsulatedExpressionStateObject(StateObject parent, StateObject firstStateObject, StateObject secondStateObject)
Creates a newAbstractDoubleEncapsulatedExpressionStateObject
.- Parameters:
parent
- The parent of this state object, which cannot benull
firstStateObject
- TheStateObject
representing the first expressionsecondStateObject
- TheStateObject
representing the second expression- Throws:
java.lang.NullPointerException
- The given parent cannot benull
-
AbstractDoubleEncapsulatedExpressionStateObject
public AbstractDoubleEncapsulatedExpressionStateObject(StateObject parent, java.lang.String firstJpqlFragment, java.lang.String secondJpqlFragment)
Creates a newAbstractDoubleEncapsulatedExpressionStateObject
.- 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
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 AbstractDoubleEncapsulatedExpression 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
-
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
-
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
-
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
-
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
-
-