EclipseLink 2.4.2, build 'v20130514-5956486' API Reference

org.eclipse.persistence.jpa.jpql.model.query
Class AbstractListHolderStateObject<T extends StateObject>

java.lang.Object
  extended by org.eclipse.persistence.jpa.jpql.model.query.AbstractStateObject
      extended by org.eclipse.persistence.jpa.jpql.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.

Version:
2.4
Author:
Pascal Filion
Since:
2.4

Constructor Summary
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.
 
Method Summary
protected  void addChildren(java.util.List<StateObject> children)
          Adds the children of this StateObject to the given list.
<S extends T>
S
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.
 IterableListIterator<? 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.
 
Methods inherited from class org.eclipse.persistence.jpa.jpql.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.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 new AbstractListHolderStateObject.

Parameters:
parent - The parent of this state object, which cannot be null
Throws:
java.lang.NullPointerException - The given parent cannot be null

AbstractListHolderStateObject

protected AbstractListHolderStateObject(StateObject parent,
                                        java.util.List<? extends T> items)
Creates a new AbstractListHolderStateObject.

Parameters:
parent - The parent of this state object, which cannot be null
items - The list of StateObjects to add as children to this one
Throws:
java.lang.NullPointerException - The given parent cannot be null

AbstractListHolderStateObject

protected AbstractListHolderStateObject(StateObject parent,
                                        T... items)
Creates a new AbstractListHolderStateObject.

Parameters:
parent - The parent of this state object, which cannot be null
items - The list of StateObjects to add as children to this one
Throws:
java.lang.NullPointerException - The given parent cannot be null
Method Detail

addChildren

protected void addChildren(java.util.List<StateObject> children)
Adds the children of this StateObject to the given list.

Overrides:
addChildren in class AbstractStateObject
Parameters:
children - The list used to store the children

addItem

public <S extends T> S addItem(S item)
Adds the given StateObject as a child of this one.

Specified by:
addItem in interface ListHolderStateObject<T extends StateObject>
Parameters:
item - The child StateObject 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 of StateObjects as children of this one.

Specified by:
addItems in interface ListHolderStateObject<T extends StateObject>
Parameters:
items - The StateObjects to become children of this one

addListChangeListener

public void addListChangeListener(java.lang.String listName,
                                  IListChangeListener<T> listener)
Registers the given IListChangeListener for the specified list. The listener will be notified only when items are added, removed, moved from the list.

Specified by:
addListChangeListener in interface ListHolderStateObject<T extends StateObject>
Parameters:
listName - The name of the list for which the listener will be notified when the content of the list has changed
listener - The listener to be notified upon changes

areChildrenEquivalent

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.

Parameters:
stateObject - The StateObject 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 given StateObject can be moved down by one position in the list owned by its parent.

Specified by:
canMoveDown in interface ListHolderStateObject<T extends StateObject>
Parameters:
stateObject - The StateObject 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 given StateObject can be moved up by one position in the list owned by its parent.

Specified by:
canMoveUp in interface ListHolderStateObject<T extends StateObject>
Parameters:
stateObject - The StateObject 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 the StateObject at the given positions from the list

Specified by:
getItem in interface ListHolderStateObject<T extends StateObject>
Parameters:
index - The position of the StateObject to retrieve
Returns:
The StateObject at the given position

hasItems

public boolean hasItems()
Determines whether this StateObject has any children.

Specified by:
hasItems in interface ListHolderStateObject<T extends StateObject>
Returns:
true if this StateObject has children; false otherwise

initialize

protected void initialize()
Initializes this state object.

Overrides:
initialize in class AbstractStateObject

items

public IterableListIterator<? extends T> items()
Returns an IterableListIterator over the children.

Specified by:
items in interface ListHolderStateObject<T extends StateObject>
Returns:
An IterableListIterator that is iterating over the children

itemsSize

public int itemsSize()
Returns the number of children this list holder has.

Specified by:
itemsSize in interface ListHolderStateObject<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 given StateObject down by one position in the list owned by its parent.

Specified by:
moveDown in interface ListHolderStateObject<T extends StateObject>
Parameters:
item - The StateObject to move down in the list
Returns:
The given item

moveUp

public T moveUp(T item)
Moves the given StateObject up by one position in the list owned by its parent.

Specified by:
moveUp in interface ListHolderStateObject<T extends StateObject>
Parameters:
item - The StateObject to move up in the list
Returns:
The given item

removeItem

public void removeItem(T stateObject)
Removes the given StateObject from the list of children.

Specified by:
removeItem in interface ListHolderStateObject<T extends StateObject>
Parameters:
stateObject - The child StateObject to not longer be a child

removeItems

public void removeItems(java.util.Collection<T> items)
Removes the given StateObject from the list of children.

Specified by:
removeItems in interface ListHolderStateObject<T extends StateObject>
Parameters:
items - The StateObjects to remove from this one

removeListChangeListener

public void removeListChangeListener(java.lang.String listName,
                                     IListChangeListener<T> listener)
Unregisters the given 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.

Specified by:
removeListChangeListener in interface ListHolderStateObject<T extends StateObject>
Parameters:
listName - The name of the list for which the listener was registered
listener - 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 representation
useComma - 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 because Appendable is used instead of StringBuilder for instance

EclipseLink 2.4.2, build 'v20130514-5956486' API Reference