Class CoalesceExpressionStateObject
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.CoalesceExpressionStateObject
- All Implemented Interfaces:
ListHolderStateObject<StateObject>,StateObject
public class CoalesceExpressionStateObject
extends AbstractEncapsulatedExpressionStateObject
implements ListHolderStateObject<StateObject>
A
COALESCE expression returns null if all its arguments evaluate
to null, and the value of the first non-null argument otherwise.
The return type is the type returned by the arguments if they are all of the same type, otherwise it is undetermined.
BNF:
coalesce_expression::= COALESCE(scalar_expression {, scalar_expression}+)- Since:
- 2.4
- Version:
- 2.4
- See Also:
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final StringNotifies the content of the state object list has changed. -
Constructor Summary
ConstructorsConstructorDescriptionCreates a newCoalesceExpressionStateObject.CoalesceExpressionStateObject(StateObject parent, String... items) Creates a newCoalesceExpressionStateObject.CoalesceExpressionStateObject(StateObject parent, List<StateObject> items) Creates a newCoalesceExpressionStateObject.CoalesceExpressionStateObject(StateObject parent, StateObject... items) Creates a newCoalesceExpressionStateObject. -
Method Summary
Modifier and TypeMethodDescriptionvoidaccept(StateObjectVisitor visitor) Visits thisStateObjectby the givenvisitor.protected voidaddChildren(List<StateObject> children) Adds the children of thisStateObjectto the given list.<S extends StateObject>
SaddItem(S item) Adds the givenStateObjectas a child of this one.voidaddItems(List<? extends StateObject> items) Adds the given list ofStateObjectsas children of this one.voidaddListChangeListener(String listName, IListChangeListener<StateObject> listener) Registers the givenIListChangeListenerfor the specified list.protected booleanareChildrenEquivalent(CoalesceExpressionStateObject stateObject) Determines whether the children of thisStateObjectare equivalent to the children of the given one, i.e.booleancanMoveDown(StateObject item) Determines whether the givenStateObjectcan be moved down by one position in the list owned by its parent.booleancanMoveUp(StateObject item) Determines whether the givenStateObjectcan be moved up by one position in the list owned by its parent.Returns the actual parsed object if thisStateObjectrepresentation of the JPQL query was created by parsing an existing JPQL query.Returns the JPQL identifier of the expression represented by thisAbstractSingleEncapsulatedExpressionStateObject.getItem(int index) Returns theStateObjectat the given positions from the listbooleanhasItems()Determines whether thisStateObjecthas any children.protected voidInitializes this state object.booleanisEquivalent(StateObject stateObject) Determines whether the givenStateObjectis equivalent to this one, i.e.items()Returns anListIterableover the children.intReturns the number of children this list holder has.moveDown(StateObject item) Moves the givenStateObjectdown by one position in the list owned by its parent.moveUp(StateObject item) Moves the givenStateObjectup by one position in the list owned by its parent.voidParses the given JPQL fragment, which represents a single encapsulated expression, and creates theStateObject.protected voidparseItemInternal(String... items) Parses the given list of JPQL fragments, which represents each of the encapsulated expressions, and creates theStateObjects.voidparseItems(String... items) Parses the given JPQL fragments, which represent individual expression, and creates theStateObjects.voidparseItems(ListIterator<String> items) Parses the given JPQL fragments, which represent individual expression, and creates theStateObjects.voidremoveItem(StateObject item) Removes the givenStateObjectfrom the list of children.voidremoveItems(Collection<StateObject> items) Removes the givenStateObjectfrom the list of children.voidremoveListChangeListener(String listName, IListChangeListener<StateObject> listener) Unregisters the givenIListChangeListenerthat was registered for the specified list.voidsetExpression(CoalesceExpression expression) Keeps a reference of theparsed objectobject, which should only be done when this object is instantiated during the conversion of a parsed JPQL query intoStateObjects.protected voidPrints out a string representation of this encapsulated information, which should not be used to define atruestring 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
toTextInternalMethods 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, isDecorated, parent, parent, parent, removePropertyChangeListener, setExpression, setParent, toString, toString, toStringInternal, toStringItems, toTextMethods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, waitMethods inherited from interface org.eclipse.persistence.jpa.jpql.tools.model.query.StateObject
addPropertyChangeListener, children, decorate, findIdentificationVariable, getDeclaration, getDecorator, getGrammar, getManagedTypeProvider, getParent, getQueryBuilder, getRoot, isDecorated, removePropertyChangeListener, setParent, toString, toText
-
Field Details
-
STATE_OBJECTS_LIST
Notifies the content of the state object list has changed.- See Also:
-
-
Constructor Details
-
CoalesceExpressionStateObject
Creates a newCoalesceExpressionStateObject.- Parameters:
parent- The parent of this state object, which cannot benull- Throws:
NullPointerException- The given parent cannot benull
-
CoalesceExpressionStateObject
Creates a newCoalesceExpressionStateObject.- Parameters:
parent- The parent of this state object, which cannot benullitems- The list ofStateObjectsrepresenting the encapsulated expressions- Throws:
NullPointerException- The given parent cannot benull
-
CoalesceExpressionStateObject
Creates a newCoalesceExpressionStateObject.- Parameters:
parent- The parent of this state object, which cannot benullitems- The list ofStateObjectsrepresenting the encapsulated expressions- Throws:
NullPointerException- The given parent cannot benull
-
CoalesceExpressionStateObject
Creates a newCoalesceExpressionStateObject.- Parameters:
parent- The parent of this state object, which cannot benullitems- The list of expression to parse into theirStateObject- Throws:
NullPointerException- The given parent cannot benull
-
-
Method Details
-
accept
Description copied from interface:StateObjectVisits thisStateObjectby the givenvisitor.- Specified by:
acceptin interfaceStateObject- Parameters:
visitor- Thevisitorto visit this object
-
addChildren
Description copied from class:AbstractStateObjectAdds the children of thisStateObjectto the given list.- Overrides:
addChildrenin classAbstractStateObject- Parameters:
children- The list used to store the children
-
addItem
Description copied from interface:ListHolderStateObjectAdds the givenStateObjectas a child of this one.- Specified by:
addItemin interfaceListHolderStateObject<StateObject>- Parameters:
item- The childStateObjectto become a child of this one return The given item
-
addItems
Description copied from interface:ListHolderStateObjectAdds the given list ofStateObjectsas children of this one.- Specified by:
addItemsin interfaceListHolderStateObject<StateObject>- Parameters:
items- TheStateObjectsto become children of this one
-
addListChangeListener
Description copied from interface:ListHolderStateObjectRegisters the givenIListChangeListenerfor the specified list. The listener will be notified only when items are added, removed, moved from the list.- Specified by:
addListChangeListenerin interfaceListHolderStateObject<StateObject>- Parameters:
listName- The name of the list for which the listener will be notified when the content of the list has changedlistener- The listener to be notified upon changes
-
areChildrenEquivalent
Determines whether the children of thisStateObjectare equivalent to the children of the given one, i.e. the information of theStateObjectsis the same.- Parameters:
stateObject- TheStateObjectto compare its children to this one's children- Returns:
trueif both have equivalent children;falseotherwise
-
canMoveDown
Description copied from interface:ListHolderStateObjectDetermines whether the givenStateObjectcan be moved down by one position in the list owned by its parent.- Specified by:
canMoveDownin interfaceListHolderStateObject<StateObject>- Parameters:
item- TheStateObjectthat could potentially be moved down- Returns:
trueif the object can be moved down by one unit;falseotherwise
-
canMoveUp
Description copied from interface:ListHolderStateObjectDetermines whether the givenStateObjectcan be moved up by one position in the list owned by its parent.- Specified by:
canMoveUpin interfaceListHolderStateObject<StateObject>- Parameters:
item- TheStateObjectthat could potentially be moved up- Returns:
trueif the object can be moved up by one unit;falseotherwise
-
getExpression
Description copied from interface:StateObjectReturns the actual parsed object if thisStateObjectrepresentation of the JPQL query was created by parsing an existing JPQL query.- Specified by:
getExpressionin interfaceStateObject- Overrides:
getExpressionin classAbstractEncapsulatedExpressionStateObject- Returns:
- The parsed object when a JPQL query is parsed and converted into a
StateObjectornullwhen the JPQL query is manually created (i.e. not from a string)
-
getIdentifier
Description copied from class:AbstractEncapsulatedExpressionStateObjectReturns the JPQL identifier of the expression represented by thisAbstractSingleEncapsulatedExpressionStateObject.- Specified by:
getIdentifierin classAbstractEncapsulatedExpressionStateObject- Returns:
- The JPQL identifier that is shown before the left parenthesis
-
getItem
Description copied from interface:ListHolderStateObjectReturns theStateObjectat the given positions from the list- Specified by:
getItemin interfaceListHolderStateObject<StateObject>- Parameters:
index- The position of theStateObjectto retrieve- Returns:
- The
StateObjectat the given position
-
hasItems
public boolean hasItems()Description copied from interface:ListHolderStateObjectDetermines whether thisStateObjecthas any children.- Specified by:
hasItemsin interfaceListHolderStateObject<StateObject>- Returns:
trueif thisStateObjecthas children;falseotherwise
-
initialize
protected void initialize()Description copied from class:AbstractStateObjectInitializes this state object.- Overrides:
initializein classAbstractStateObject
-
isEquivalent
Description copied from interface:StateObjectDetermines whether the givenStateObjectis equivalent to this one, i.e. the information of bothStateObjectis the same.- Specified by:
isEquivalentin interfaceStateObject- Overrides:
isEquivalentin classAbstractStateObject- Parameters:
stateObject- TheStateObjectto compare its content to this one- Returns:
trueif both object are equivalent;falseotherwise
-
items
Description copied from interface:ListHolderStateObjectReturns anListIterableover the children.- Specified by:
itemsin interfaceListHolderStateObject<StateObject>- Returns:
- An
ListIterablethat is iterating over the children
-
itemsSize
public int itemsSize()Description copied from interface:ListHolderStateObjectReturns the number of children this list holder has.- Specified by:
itemsSizein interfaceListHolderStateObject<StateObject>- Returns:
- The count of
StateObjectsthat are children of this one
-
moveDown
Description copied from interface:ListHolderStateObjectMoves the givenStateObjectdown by one position in the list owned by its parent.- Specified by:
moveDownin interfaceListHolderStateObject<StateObject>- Parameters:
item- TheStateObjectto move down in the list- Returns:
- The given item
-
moveUp
Description copied from interface:ListHolderStateObjectMoves the givenStateObjectup by one position in the list owned by its parent.- Specified by:
moveUpin interfaceListHolderStateObject<StateObject>- Parameters:
item- TheStateObjectto move up in the list- Returns:
- The given item
-
parseItem
Parses the given JPQL fragment, which represents a single encapsulated expression, and creates theStateObject.- Parameters:
jpqlFragment- The portion of the query representing a single encapsulated expression
-
parseItemInternal
Parses the given list of JPQL fragments, which represents each of the encapsulated expressions, and creates theStateObjects.- Parameters:
items- The list of expression to parse into theirStateObject
-
parseItems
Parses the given JPQL fragments, which represent individual expression, and creates theStateObjects.- Parameters:
items- The portion of the query representing a single encapsulated expression
-
parseItems
Parses the given JPQL fragments, which represent individual expression, and creates theStateObjects.- Parameters:
items- The portion of the query representing a single encapsulated expression
-
removeItem
Description copied from interface:ListHolderStateObjectRemoves the givenStateObjectfrom the list of children.- Specified by:
removeItemin interfaceListHolderStateObject<StateObject>- Parameters:
item- The childStateObjectto not longer be a child
-
removeItems
Description copied from interface:ListHolderStateObjectRemoves the givenStateObjectfrom the list of children.- Specified by:
removeItemsin interfaceListHolderStateObject<StateObject>- Parameters:
items- TheStateObjectsto remove from this one
-
removeListChangeListener
Description copied from interface:ListHolderStateObjectUnregisters the givenIListChangeListenerthat was registered for the specified list. The listener will no longer be notified only when items are added, removed, moved from the list.- Specified by:
removeListChangeListenerin interfaceListHolderStateObject<StateObject>- Parameters:
listName- The name of the list for which the listener was registeredlistener- The listener to unregister
-
setExpression
Keeps a reference of theparsed objectobject, which should only be done when this object is instantiated during the conversion of a parsed JPQL query intoStateObjects.- Parameters:
expression- Theparsed objectrepresenting aCASEexpression
-
toTextEncapsulatedExpression
Description copied from class:AbstractEncapsulatedExpressionStateObjectPrints out a string representation of this encapsulated information, which should not be used to define atruestring representation of a JPQL query but should be used for debugging purposes.- Specified by:
toTextEncapsulatedExpressionin classAbstractEncapsulatedExpressionStateObject- Parameters:
writer- The writer used to print out the string representation of the encapsulated information- Throws:
IOException- This should never happens, only required becauseAppendableis used instead ofStringBuilderfor instance
-