Class NullIfExpressionStateObject
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
org.eclipse.persistence.jpa.jpql.tools.model.query.NullIfExpressionStateObject
- All Implemented Interfaces:
StateObject
NULLIF
returns the first expression if the two expressions are not equal. If
the expressions are equal, NULLIF
returns a null value of the type of the
first expression.
NULLIF
is equivalent to a searched CASE
expression in
which the two expressions are equal and the resulting expression is NULL
.
Returns the same type as the first expression.
BNF: nullif_expression::= NULLIF(scalar_expression, scalar_expression)
- Since:
- 2.4
- Version:
- 2.4
- See Also:
-
Field Summary
Fields inherited from class org.eclipse.persistence.jpa.jpql.tools.model.query.AbstractDoubleEncapsulatedExpressionStateObject
FIRST_STATE_OBJECT_PROPERTY, SECOND_STATE_OBJECT_PROPERTY
-
Constructor Summary
ConstructorDescriptionCreates a newNullIfExpressionStateObject
.NullIfExpressionStateObject
(StateObject parent, String firstJpqlFragment, String secondJpqlFragment) Creates a newNullIfExpressionStateObject
.NullIfExpressionStateObject
(StateObject parent, StateObject firstStateObject, StateObject secondStateObject) Creates a newNullIfExpressionStateObject
. -
Method Summary
Modifier and TypeMethodDescriptionvoid
accept
(StateObjectVisitor visitor) Visits thisStateObject
by the givenvisitor
.Returns the actual parsed object if thisStateObject
representation of the JPQL query was created by parsing an existing JPQL query.protected String
Returns the unique identifier of the BNF that will be used to parse a JPQL fragment as the first encapsulated expression.Returns the JPQL identifier of the expression represented by thisAbstractSingleEncapsulatedExpressionStateObject
.protected String
Returns the unique identifier of the BNF that will be used to parse a JPQL fragment as the second encapsulated expression.void
setExpression
(NullIfExpression expression) Keeps a reference of theparsed object
object, which should only be done when this object is instantiated during the conversion of a parsed JPQL query intoStateObjects
.Methods inherited from class org.eclipse.persistence.jpa.jpql.tools.model.query.AbstractDoubleEncapsulatedExpressionStateObject
addChildren, getFirst, getSecond, hasFirst, hasSecond, isEquivalent, parseFirst, parseSecond, setFirst, setSecond, toTextEncapsulatedExpression
Methods inherited from class org.eclipse.persistence.jpa.jpql.tools.model.query.AbstractEncapsulatedExpressionStateObject
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
-
Constructor Details
-
NullIfExpressionStateObject
Creates a newNullIfExpressionStateObject
.- Parameters:
parent
- The parent of this state object, which cannot benull
- Throws:
NullPointerException
- The given parent cannot benull
-
NullIfExpressionStateObject
public NullIfExpressionStateObject(StateObject parent, StateObject firstStateObject, StateObject secondStateObject) Creates a newNullIfExpressionStateObject
.- Parameters:
parent
- The parent of this state object, which cannot benull
firstStateObject
- TheStateObject
representing the first expressionsecondStateObject
- TheStateObject
representing the second expression- Throws:
NullPointerException
- The given parent cannot benull
-
NullIfExpressionStateObject
public NullIfExpressionStateObject(StateObject parent, String firstJpqlFragment, String secondJpqlFragment) Creates a newNullIfExpressionStateObject
.- 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:
NullPointerException
- The given parent cannot benull
-
-
Method Details
-
accept
Description copied from interface:StateObject
Visits thisStateObject
by the givenvisitor
.- Parameters:
visitor
- Thevisitor
to visit this object
-
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 classAbstractDoubleEncapsulatedExpressionStateObject
- 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)
-
getFirstQueryBNFId
Description copied from class:AbstractDoubleEncapsulatedExpressionStateObject
Returns the unique identifier of the BNF that will be used to parse a JPQL fragment as the first encapsulated expression.- Specified by:
getFirstQueryBNFId
in classAbstractDoubleEncapsulatedExpressionStateObject
- Returns:
- The query BNF ID for the first encapsulated expression
-
getIdentifier
Description copied from class:AbstractEncapsulatedExpressionStateObject
Returns the JPQL identifier of the expression represented by thisAbstractSingleEncapsulatedExpressionStateObject
.- Specified by:
getIdentifier
in classAbstractEncapsulatedExpressionStateObject
- Returns:
- The JPQL identifier that is shown before the left parenthesis
-
getSecondQueryBNFId
Description copied from class:AbstractDoubleEncapsulatedExpressionStateObject
Returns the unique identifier of the BNF that will be used to parse a JPQL fragment as the second encapsulated expression.- Specified by:
getSecondQueryBNFId
in classAbstractDoubleEncapsulatedExpressionStateObject
- Returns:
- The query BNF ID for the second encapsulated expression
-
setExpression
Keeps a reference of theparsed object
object, which should only be done when this object is instantiated during the conversion of a parsed JPQL query intoStateObjects
.- Parameters:
expression
- Theparsed object
representing aNULLIF
expression
-