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 aStateObject
that holds onto a list of children, the methods defined inListHolderStateObject
are automatically handled here.- Version:
- 2.4
- Author:
- Pascal Filion
- Since:
- 2.4
-
-
Constructor Summary
Constructors Modifier Constructor Description protected
AbstractListHolderStateObject(StateObject parent)
Creates a newAbstractListHolderStateObject
.protected
AbstractListHolderStateObject(StateObject parent, java.util.List<? extends T> items)
Creates a newAbstractListHolderStateObject
.protected
AbstractListHolderStateObject(StateObject parent, T... items)
Creates a newAbstractListHolderStateObject
.
-
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.<S extends T>
SaddItem(S item)
Adds the givenStateObject
as a child of this one.void
addItems(java.util.List<? extends T> items)
Adds the given list ofStateObjects
as children of this one.void
addListChangeListener(java.lang.String listName, IListChangeListener<T> listener)
Registers the givenIListChangeListener
for the specified list.protected boolean
areChildrenEquivalent(AbstractListHolderStateObject<? extends StateObject> stateObject)
Determines whether the children of thisStateObject
are equivalent to the children of the given one, i.e. the information of theStateObjects
is the same.boolean
canMoveDown(T stateObject)
Determines whether the givenStateObject
can be moved down by one position in the list owned by its parent.boolean
canMoveUp(T stateObject)
Determines whether the givenStateObject
can be moved up by one position in the list owned by its parent.T
getItem(int index)
Returns theStateObject
at the given positions from the listboolean
hasItems()
Determines whether thisStateObject
has any children.protected void
initialize()
Initializes this state object.ListIterable<? extends T>
items()
Returns anListIterable
over the children.int
itemsSize()
Returns the number of children this list holder has.protected abstract java.lang.String
listName()
Returns the name that is uniquely identifying the list.T
moveDown(T item)
Moves the givenStateObject
down by one position in the list owned by its parent.T
moveUp(T item)
Moves the givenStateObject
up by one position in the list owned by its parent.void
removeItem(T stateObject)
Removes the givenStateObject
from the list of children.void
removeItems(java.util.Collection<T> items)
Removes the givenStateObject
from the list of children.void
removeListChangeListener(java.lang.String listName, IListChangeListener<T> listener)
Unregisters the givenIListChangeListener
that was registered for the specified list.protected void
toStringItems(java.lang.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, toTextInternal
-
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, addPropertyChangeListener, children, decorate, findIdentificationVariable, getDeclaration, getDecorator, getExpression, getGrammar, getManagedTypeProvider, getParent, getQueryBuilder, getRoot, isDecorated, isEquivalent, removePropertyChangeListener, setParent, toString, toText
-
-
-
-
Constructor Detail
-
AbstractListHolderStateObject
protected AbstractListHolderStateObject(StateObject parent)
Creates a newAbstractListHolderStateObject
.- Parameters:
parent
- The parent of this state object, which cannot benull
- Throws:
java.lang.NullPointerException
- The given parent cannot benull
-
AbstractListHolderStateObject
protected AbstractListHolderStateObject(StateObject parent, java.util.List<? extends T> items)
Creates a newAbstractListHolderStateObject
.- Parameters:
parent
- The parent of this state object, which cannot benull
items
- The list ofStateObjects
to add as children to this one- Throws:
java.lang.NullPointerException
- The given parent cannot benull
-
AbstractListHolderStateObject
protected AbstractListHolderStateObject(StateObject parent, T... items)
Creates a newAbstractListHolderStateObject
.- Parameters:
parent
- The parent of this state object, which cannot benull
items
- The list ofStateObjects
to add as children to this one- 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
-
addItem
public <S extends T> S addItem(S item)
Adds the givenStateObject
as a child of this one.- Specified by:
addItem
in interfaceListHolderStateObject<T extends StateObject>
- Parameters:
item
- The childStateObject
to become a child of this one return The given item
-
addItems
public void addItems(java.util.List<? extends T> items)
Adds the given list ofStateObjects
as children of this one.- Specified by:
addItems
in interfaceListHolderStateObject<T extends StateObject>
- Parameters:
items
- TheStateObjects
to become children of this one
-
addListChangeListener
public void addListChangeListener(java.lang.String listName, IListChangeListener<T> listener)
Registers the givenIListChangeListener
for the specified list. The listener will be notified only when items are added, removed, moved from the list.- Specified by:
addListChangeListener
in 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 thisStateObject
are equivalent to the children of the given one, i.e. the information of theStateObjects
is the same.- Parameters:
stateObject
- TheStateObject
to compare its children to this one's children- Returns:
true
if both have equivalent children;false
otherwise
-
canMoveDown
public boolean canMoveDown(T stateObject)
Determines whether the givenStateObject
can be moved down by one position in the list owned by its parent.- Specified by:
canMoveDown
in interfaceListHolderStateObject<T extends StateObject>
- Parameters:
stateObject
- TheStateObject
that could potentially be moved down- Returns:
true
if the object can be moved down by one unit;false
otherwise
-
canMoveUp
public boolean canMoveUp(T stateObject)
Determines whether the givenStateObject
can be moved up by one position in the list owned by its parent.- Specified by:
canMoveUp
in interfaceListHolderStateObject<T extends StateObject>
- Parameters:
stateObject
- TheStateObject
that could potentially be moved up- Returns:
true
if the object can be moved up by one unit;false
otherwise
-
getItem
public T getItem(int index)
Returns theStateObject
at the given positions from the list- Specified by:
getItem
in interfaceListHolderStateObject<T extends StateObject>
- Parameters:
index
- The position of theStateObject
to retrieve- Returns:
- The
StateObject
at the given position
-
hasItems
public boolean hasItems()
Determines whether thisStateObject
has any children.- Specified by:
hasItems
in interfaceListHolderStateObject<T extends StateObject>
- Returns:
true
if thisStateObject
has children;false
otherwise
-
initialize
protected void initialize()
Initializes this state object.- Overrides:
initialize
in classAbstractStateObject
-
items
public ListIterable<? extends T> items()
Returns anListIterable
over the children.- Specified by:
items
in interfaceListHolderStateObject<T extends StateObject>
- Returns:
- An
ListIterable
that is iterating over the children
-
itemsSize
public int itemsSize()
Returns the number of children this list holder has.- Specified by:
itemsSize
in interfaceListHolderStateObject<T extends StateObject>
- Returns:
- The count of
StateObjects
that are children of this one
-
listName
protected abstract java.lang.String listName()
Returns the name that is uniquely identifying the list.- Returns:
- The unique name identifying the list
-
moveDown
public T moveDown(T item)
Moves the givenStateObject
down by one position in the list owned by its parent.- Specified by:
moveDown
in interfaceListHolderStateObject<T extends StateObject>
- Parameters:
item
- TheStateObject
to move down in the list- Returns:
- The given item
-
moveUp
public T moveUp(T item)
Moves the givenStateObject
up by one position in the list owned by its parent.- Specified by:
moveUp
in interfaceListHolderStateObject<T extends StateObject>
- Parameters:
item
- TheStateObject
to move up in the list- Returns:
- The given item
-
removeItem
public void removeItem(T stateObject)
Removes the givenStateObject
from the list of children.- Specified by:
removeItem
in interfaceListHolderStateObject<T extends StateObject>
- Parameters:
stateObject
- The childStateObject
to not longer be a child
-
removeItems
public void removeItems(java.util.Collection<T> items)
Removes the givenStateObject
from the list of children.- Specified by:
removeItems
in interfaceListHolderStateObject<T extends StateObject>
- Parameters:
items
- TheStateObjects
to remove from this one
-
removeListChangeListener
public void removeListChangeListener(java.lang.String listName, IListChangeListener<T> listener)
Unregisters the givenIListChangeListener
that 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:
removeListChangeListener
in interfaceListHolderStateObject<T extends StateObject>
- Parameters:
listName
- The name of the list for which the listener was registeredlistener
- The listener to unregister
-
toStringItems
protected void toStringItems(java.lang.Appendable writer, boolean useComma) throws java.io.IOException
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:
java.io.IOException
- This should never happens, only required becauseAppendable
is used instead ofStringBuilder
for instance
-
-