public abstract class AbstractListHolderStateObject<T extends StateObject> extends AbstractStateObject implements ListHolderStateObject<T>
StateObject
that holds onto a list of children, the
methods defined in ListHolderStateObject
are automatically handled here.Modifier | Constructor and Description |
---|---|
protected |
AbstractListHolderStateObject(StateObject parent)
Creates a new
AbstractListHolderStateObject . |
protected |
AbstractListHolderStateObject(StateObject parent,
java.util.List<? extends T> items)
Creates a new
AbstractListHolderStateObject . |
protected |
AbstractListHolderStateObject(StateObject parent,
T... items)
Creates a new
AbstractListHolderStateObject . |
Modifier and Type | Method and Description |
---|---|
protected void |
addChildren(java.util.List<StateObject> children)
Adds the children of this
StateObject to the given list. |
<S extends T> |
addItem(S item)
Adds the given
StateObject as a child of this one. |
void |
addItems(java.util.List<? extends T> items)
Adds the given list of
StateObjects as children of this one. |
void |
addListChangeListener(java.lang.String listName,
IListChangeListener<T> listener)
Registers the given
IListChangeListener for the specified list. |
protected boolean |
areChildrenEquivalent(AbstractListHolderStateObject<? extends StateObject> stateObject)
Determines whether the children of this
StateObject are equivalent to the children
of the given one, i.e. the information of the StateObjects is the same. |
boolean |
canMoveDown(T stateObject)
Determines whether the given
StateObject can be moved down by one position in the
list owned by its parent. |
boolean |
canMoveUp(T stateObject)
Determines whether the given
StateObject can be moved up by one position in the list
owned by its parent. |
T |
getItem(int index)
Returns the
StateObject at the given positions from the list |
boolean |
hasItems()
Determines whether this
StateObject has any children. |
protected void |
initialize()
Initializes this state object.
|
ListIterable<? extends T> |
items()
Returns an
IterableListIterator 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 given
StateObject down by one position in the list owned by its parent. |
T |
moveUp(T item)
Moves the given
StateObject up by one position in the list owned by its parent. |
void |
removeItem(T stateObject)
Removes the given
StateObject from the list of children. |
void |
removeItems(java.util.Collection<T> items)
Removes the given
StateObject from the list of children. |
void |
removeListChangeListener(java.lang.String listName,
IListChangeListener<T> listener)
Unregisters the given
IListChangeListener 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.
|
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
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
accept, addPropertyChangeListener, children, decorate, findIdentificationVariable, getDeclaration, getDecorator, getExpression, getGrammar, getManagedTypeProvider, getParent, getQueryBuilder, getRoot, isDecorated, isEquivalent, removePropertyChangeListener, setParent, toString, toText
protected AbstractListHolderStateObject(StateObject parent)
AbstractListHolderStateObject
.parent
- The parent of this state object, which cannot be null
java.lang.NullPointerException
- The given parent cannot be null
protected AbstractListHolderStateObject(StateObject parent, java.util.List<? extends T> items)
AbstractListHolderStateObject
.parent
- The parent of this state object, which cannot be null
items
- The list of StateObjects
to add as children to this onejava.lang.NullPointerException
- The given parent cannot be null
protected AbstractListHolderStateObject(StateObject parent, T... items)
AbstractListHolderStateObject
.parent
- The parent of this state object, which cannot be null
items
- The list of StateObjects
to add as children to this onejava.lang.NullPointerException
- The given parent cannot be null
protected void addChildren(java.util.List<StateObject> children)
StateObject
to the given list.addChildren
in class AbstractStateObject
children
- The list used to store the childrenpublic <S extends T> S addItem(S item)
StateObject
as a child of this one.addItem
in interface ListHolderStateObject<T extends StateObject>
item
- The child StateObject
to become a child of this one
return The given itempublic void addItems(java.util.List<? extends T> items)
StateObjects
as children of this one.addItems
in interface ListHolderStateObject<T extends StateObject>
items
- The StateObjects
to become children of this onepublic void addListChangeListener(java.lang.String listName, IListChangeListener<T> listener)
IListChangeListener
for the specified list. The listener will be
notified only when items are added, removed, moved from the list.addListChangeListener
in interface ListHolderStateObject<T extends StateObject>
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 changesprotected boolean areChildrenEquivalent(AbstractListHolderStateObject<? extends StateObject> stateObject)
StateObject
are equivalent to the children
of the given one, i.e. the information of the StateObjects
is the same.stateObject
- The StateObject
to compare its children to this one's childrentrue
if both have equivalent children; false
otherwisepublic boolean canMoveDown(T stateObject)
StateObject
can be moved down by one position in the
list owned by its parent.canMoveDown
in interface ListHolderStateObject<T extends StateObject>
stateObject
- The StateObject
that could potentially be moved downtrue
if the object can be moved down by one unit; false
otherwisepublic boolean canMoveUp(T stateObject)
StateObject
can be moved up by one position in the list
owned by its parent.canMoveUp
in interface ListHolderStateObject<T extends StateObject>
stateObject
- The StateObject
that could potentially be moved uptrue
if the object can be moved up by one unit; false
otherwisepublic T getItem(int index)
StateObject
at the given positions from the listgetItem
in interface ListHolderStateObject<T extends StateObject>
index
- The position of the StateObject
to retrieveStateObject
at the given positionpublic boolean hasItems()
StateObject
has any children.hasItems
in interface ListHolderStateObject<T extends StateObject>
true
if this StateObject
has children; false
otherwiseprotected void initialize()
initialize
in class AbstractStateObject
public ListIterable<? extends T> items()
IterableListIterator
over the children.items
in interface ListHolderStateObject<T extends StateObject>
IterableListIterator
that is iterating over the childrenpublic int itemsSize()
itemsSize
in interface ListHolderStateObject<T extends StateObject>
StateObjects
that are children of this oneprotected abstract java.lang.String listName()
public T moveDown(T item)
StateObject
down by one position in the list owned by its parent.moveDown
in interface ListHolderStateObject<T extends StateObject>
item
- The StateObject
to move down in the listpublic T moveUp(T item)
StateObject
up by one position in the list owned by its parent.moveUp
in interface ListHolderStateObject<T extends StateObject>
item
- The StateObject
to move up in the listpublic void removeItem(T stateObject)
StateObject
from the list of children.removeItem
in interface ListHolderStateObject<T extends StateObject>
stateObject
- The child StateObject
to not longer be a childpublic void removeItems(java.util.Collection<T> items)
StateObject
from the list of children.removeItems
in interface ListHolderStateObject<T extends StateObject>
items
- The StateObjects
to remove from this onepublic void removeListChangeListener(java.lang.String listName, IListChangeListener<T> listener)
IListChangeListener
that was registered for the specified list.
The listener will no longer be notified only when items are added, removed, moved from the
list.removeListChangeListener
in interface ListHolderStateObject<T extends StateObject>
listName
- The name of the list for which the listener was registeredlistener
- The listener to unregisterprotected void toStringItems(java.lang.Appendable writer, boolean useComma) throws java.io.IOException
writer
- The writer used to print out the string representationuseComma
- Determines whether a comma should be added after each item, except after the
last onejava.io.IOException
- This should never happens, only required because Appendable
is
used instead of StringBuilder
for instance