Class AbstractListHolderStateObject<T extends StateObject>
java.lang.Object
org.eclipse.persistence.jpa.jpql.tools.model.query.AbstractStateObject
org.eclipse.persistence.jpa.jpql.tools.model.query.AbstractListHolderStateObject<T>
- All Implemented Interfaces:
ListHolderStateObject<T>,StateObject
- Direct Known Subclasses:
AbstractFromClauseStateObject,AbstractIdentificationVariableDeclarationStateObject,CaseExpressionStateObject,ConcatExpressionStateObject,ConstructorExpressionStateObject,GroupByClauseStateObject,InExpressionStateObject,OrderByClauseStateObject
public abstract class AbstractListHolderStateObject<T extends StateObject>
extends AbstractStateObject
implements ListHolderStateObject<T>
The abstraction definition of a
StateObject that holds onto a list of children, the
methods defined in ListHolderStateObject are automatically handled here.- Since:
- 2.4
- Version:
- 2.4
-
Constructor Summary
ConstructorsModifierConstructorDescriptionprotectedCreates a newAbstractListHolderStateObject.protectedAbstractListHolderStateObject(StateObject parent, List<? extends T> items) Creates a newAbstractListHolderStateObject.protectedAbstractListHolderStateObject(StateObject parent, T... items) Creates a newAbstractListHolderStateObject. -
Method Summary
Modifier and TypeMethodDescriptionprotected voidaddChildren(List<StateObject> children) Adds the children of thisStateObjectto the given list.<S extends T>
SaddItem(S item) Adds the givenStateObjectas a child of this one.voidAdds the given list ofStateObjectsas children of this one.voidaddListChangeListener(String listName, IListChangeListener<T> listener) Registers the givenIListChangeListenerfor the specified list.protected booleanareChildrenEquivalent(AbstractListHolderStateObject<? extends StateObject> stateObject) Determines whether the children of thisStateObjectare equivalent to the children of the given one, i.e.booleancanMoveDown(T stateObject) Determines whether the givenStateObjectcan be moved down by one position in the list owned by its parent.booleanDetermines whether the givenStateObjectcan be moved up by one position in the list owned by its parent.getItem(int index) Returns theStateObjectat the given positions from the listbooleanhasItems()Determines whether thisStateObjecthas any children.protected voidInitializes this state object.ListIterable<? extends T> items()Returns anListIterableover the children.intReturns the number of children this list holder has.protected abstract StringlistName()Returns the name that is uniquely identifying the list.Moves the givenStateObjectdown by one position in the list owned by its parent.Moves the givenStateObjectup by one position in the list owned by its parent.voidremoveItem(T stateObject) Removes the givenStateObjectfrom the list of children.voidremoveItems(Collection<T> items) Removes the givenStateObjectfrom the list of children.voidremoveListChangeListener(String listName, IListChangeListener<T> listener) Unregisters the givenIListChangeListenerthat was registered for the specified list.protected voidtoStringItems(Appendable writer, boolean useComma) Adds to the given writer a crude string representation of the children of this one.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, getExpression, getGrammar, getManagedTypeProvider, getParent, getQueryBuilder, getRoot, getType, getType, getTypeHelper, getTypeRepository, hashCode, isDecorated, isEquivalent, parent, parent, parent, removePropertyChangeListener, setExpression, setParent, toString, toString, toStringInternal, toStringItems, toText, toTextInternalMethods 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
accept, addPropertyChangeListener, children, decorate, findIdentificationVariable, getDeclaration, getDecorator, getExpression, getGrammar, getManagedTypeProvider, getParent, getQueryBuilder, getRoot, isDecorated, isEquivalent, removePropertyChangeListener, setParent, toString, toText
-
Constructor Details
-
AbstractListHolderStateObject
Creates a newAbstractListHolderStateObject.- Parameters:
parent- The parent of this state object, which cannot benull- Throws:
NullPointerException- The given parent cannot benull
-
AbstractListHolderStateObject
Creates a newAbstractListHolderStateObject.- Parameters:
parent- The parent of this state object, which cannot benullitems- The list ofStateObjectsto add as children to this one- Throws:
NullPointerException- The given parent cannot benull
-
AbstractListHolderStateObject
Creates a newAbstractListHolderStateObject.- Parameters:
parent- The parent of this state object, which cannot benullitems- The list ofStateObjectsto add as children to this one- Throws:
NullPointerException- The given parent cannot benull
-
-
Method Details
-
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<T extends 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<T extends 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<T extends 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
protected boolean areChildrenEquivalent(AbstractListHolderStateObject<? extends StateObject> stateObject) 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<T extends StateObject>- Parameters:
stateObject- 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<T extends StateObject>- Parameters:
stateObject- TheStateObjectthat could potentially be moved up- Returns:
trueif the object can be moved up by one unit;falseotherwise
-
getItem
Description copied from interface:ListHolderStateObjectReturns theStateObjectat the given positions from the list- Specified by:
getItemin interfaceListHolderStateObject<T extends 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<T extends StateObject>- Returns:
trueif thisStateObjecthas children;falseotherwise
-
initialize
protected void initialize()Description copied from class:AbstractStateObjectInitializes this state object.- Overrides:
initializein classAbstractStateObject
-
items
Description copied from interface:ListHolderStateObjectReturns anListIterableover the children.- Specified by:
itemsin interfaceListHolderStateObject<T extends 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<T extends StateObject>- Returns:
- The count of
StateObjectsthat are children of this one
-
listName
Returns the name that is uniquely identifying the list.- Returns:
- The unique name identifying the list
-
moveDown
Description copied from interface:ListHolderStateObjectMoves the givenStateObjectdown by one position in the list owned by its parent.- Specified by:
moveDownin interfaceListHolderStateObject<T extends 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<T extends StateObject>- Parameters:
item- TheStateObjectto move up in the list- Returns:
- The given item
-
removeItem
Description copied from interface:ListHolderStateObjectRemoves the givenStateObjectfrom the list of children.- Specified by:
removeItemin interfaceListHolderStateObject<T extends StateObject>- Parameters:
stateObject- The childStateObjectto not longer be a child
-
removeItems
Description copied from interface:ListHolderStateObjectRemoves the givenStateObjectfrom the list of children.- Specified by:
removeItemsin interfaceListHolderStateObject<T extends 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<T extends StateObject>- Parameters:
listName- The name of the list for which the listener was registeredlistener- The listener to unregister
-
toStringItems
Adds to the given writer a crude string representation of the children of this one.- Parameters:
writer- The writer used to print out the string representationuseComma- Determines whether a comma should be added after each item, except after the last one- Throws:
IOException- This should never happens, only required becauseAppendableis used instead ofStringBuilderfor instance
-