net.walend.lyophil.collection
Class DelegatingMutableSet

java.lang.Object
  |
  +--net.walend.lyophil.collection.DelegatingMutableSet
All Implemented Interfaces:
Collection, CollectionOfFreezables, HasState, MutableCollection, MutableCollectionOfFreezables, MutableSet, MutableSetOfFreezables, java.io.Serializable, Set, SetOfFreezables
Direct Known Subclasses:
FreezableDelegatingMutableSet

public abstract class DelegatingMutableSet
extends java.lang.Object
implements MutableSetOfFreezables, java.io.Serializable

This abstract class implements MutableSet by delegating all methods to a contained MutableSet.

Since:
20010213
Author:
David Walend

Field Summary
private  MutableSetOfFreezables delegate
           
 
Fields inherited from interface net.walend.lyophil.collection.SetOfFreezables
EMPTY
 
Constructor Summary
DelegatingMutableSet()
           
DelegatingMutableSet(CollectionOfFreezables c)
           
 
Method Summary
 boolean add(Freezable f)
           
 boolean add(java.lang.Object f)
          Adds a Object to the MutableCollection.
 boolean addAll(Collection c)
          Adds all the Objects in c to this MutableCollection by using the add() method.
 boolean addAllIdentifiedBy(Collection c)
          Adds all the Freezables identified by c to this MutableCollection using the addIdentifiedBy method.
 boolean addIdentifiedBy(java.io.Serializable id)
          Adds a Freezable to the MutableCollection.
 void clear()
          Removes all of the Objects in this collection.
 boolean contains(Freezable f)
           
 boolean contains(java.lang.Object f)
          Returns true if this collection contains the specified Object.
 boolean containsAll(Collection c)
          Returns true if this collection contains all of the Objects in the specified collection.
 boolean containsAllIdentifiedBy(Collection collectionOfFreezables)
          Returns true if this collection contains the specified Freezables.
 boolean containsIdentifiedBy(java.io.Serializable id)
          Returns true if this collection contains the specified Freezable.
protected abstract  MutableSetOfFreezables createDelegate()
          Only called by DelegatingMutableSet's constructor.
 FreezableIterator freezableIterator()
          Returns an iterator over the Freezables in this collection.
protected  MutableSetOfFreezables getDelegate()
           
 Collection getIdentifiers()
          Returns a Collection of all the identifiers in this collection.
 Identitor getIdentitor()
          Returns the Identitor for this Collection.
 java.util.Collection getJavaCollection()
          Return a java.util.Collection of these Objects.
 java.util.Set getJavaSet()
          Return a java.util.Collection of these Objects.
 java.lang.Class getPrincipleInterface()
          Returns the class's principle interface for state comparisons.
 java.util.Iterator identifierIterator()
          Returns an iterator over the identifiers in this collection.
 boolean isEmpty()
          Returns true if this collection contains no elements.
 java.util.Iterator iterator()
          Returns an iterator over the Objects in this collection.
 boolean remove(Freezable f)
           
 boolean remove(java.lang.Object f)
          Removes a Object from the MutableCollection.
 boolean removeAll(Collection c)
          Removes all the Objects in c from this MutableCollection by using the remove() method.
 boolean removeAllIdentifiedBy(Collection c)
          Removes all the Freezables identified by c from this MutableCollection using the removeIdentifiedBy method.
 boolean removeIdentifiedBy(java.io.Serializable id)
          Removes a Freezable from the MutableCollection, based on that Freezable's identifier.
 boolean retainAll(Collection c)
          Retains only the Objects in this collection that are contained in c by using the contains() and remove() methods.
 boolean retainAllIdentifiedBy(Collection c)
          Removes all but the Freezables identified by c from this MutableCollection using the removeIdentifiedBy method.
 boolean sameContentsAs(Collection c)
          Returns true if this Collection's contents are equal to c's.
 boolean sameStateAs(HasState victem)
          If two HasStates have the same internal state, return true.
 int size()
          Returns the number of elements in this collection.
 java.lang.String toString()
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

delegate

private MutableSetOfFreezables delegate
Constructor Detail

DelegatingMutableSet

public DelegatingMutableSet()

DelegatingMutableSet

public DelegatingMutableSet(CollectionOfFreezables c)
Method Detail

createDelegate

protected abstract MutableSetOfFreezables createDelegate()
Only called by DelegatingMutableSet's constructor. Override this method to change the delegate MutableSet.


getDelegate

protected MutableSetOfFreezables getDelegate()

getIdentitor

public Identitor getIdentitor()
Description copied from interface: Collection
Returns the Identitor for this Collection.

Specified by:
getIdentitor in interface Collection

size

public int size()
Description copied from interface: Collection
Returns the number of elements in this collection. If this collection contains more than Integer.MAX_VALUE elements, returns Integer.MAX_VALUE.

Specified by:
size in interface Collection

isEmpty

public boolean isEmpty()
Description copied from interface: Collection
Returns true if this collection contains no elements.

Specified by:
isEmpty in interface Collection

contains

public boolean contains(java.lang.Object f)
Description copied from interface: Collection
Returns true if this collection contains the specified Object.

Specified by:
contains in interface Collection

contains

public boolean contains(Freezable f)

iterator

public java.util.Iterator iterator()
Description copied from interface: Collection
Returns an iterator over the Objects in this collection.

Specified by:
iterator in interface Collection

add

public boolean add(java.lang.Object f)
Description copied from interface: MutableCollection
Adds a Object to the MutableCollection. Sets will only add it to the Set if it's not already there.

Specified by:
add in interface MutableCollection
Following copied from interface: net.walend.collection.MutableCollection
Returns:
true if the MutableCollection changes, false if not.

add

public boolean add(Freezable f)

remove

public boolean remove(java.lang.Object f)
Description copied from interface: MutableCollection
Removes a Object from the MutableCollection.

Specified by:
remove in interface MutableCollection
Following copied from interface: net.walend.collection.MutableCollection
Returns:
true if the MutableCollection changes, false if not.

remove

public boolean remove(Freezable f)

containsAll

public boolean containsAll(Collection c)
Description copied from interface: Collection
Returns true if this collection contains all of the Objects in the specified collection. This method uses the contains() method.

Specified by:
containsAll in interface Collection

addAll

public boolean addAll(Collection c)
Description copied from interface: MutableCollection
Adds all the Objects in c to this MutableCollection by using the add() method. Returns true if this MutableCollection changes.

Specified by:
addAll in interface MutableCollection

removeAll

public boolean removeAll(Collection c)
Description copied from interface: MutableCollection
Removes all the Objects in c from this MutableCollection by using the remove() method. Returns true if this Colleciton changes.

Specified by:
removeAll in interface MutableCollection

clear

public void clear()
Description copied from interface: MutableCollection
Removes all of the Objects in this collection.

Specified by:
clear in interface MutableCollection

sameContentsAs

public boolean sameContentsAs(Collection c)
Description copied from interface: Collection
Returns true if this Collection's contents are equal to c's.

Specified by:
sameContentsAs in interface Collection

retainAll

public boolean retainAll(Collection c)
Description copied from interface: MutableCollection
Retains only the Objects in this collection that are contained in c by using the contains() and remove() methods. Returns true if this Colleciton changes.

Specified by:
retainAll in interface MutableCollection

getJavaCollection

public java.util.Collection getJavaCollection()
Description copied from interface: Collection
Return a java.util.Collection of these Objects.

Specified by:
getJavaCollection in interface Collection

getJavaSet

public java.util.Set getJavaSet()
Description copied from interface: Set
Return a java.util.Collection of these Objects.

Specified by:
getJavaSet in interface Set

toString

public java.lang.String toString()
Overrides:
toString in class java.lang.Object

getPrincipleInterface

public java.lang.Class getPrincipleInterface()
Description copied from interface: HasState
Returns the class's principle interface for state comparisons. If two objects have different principle interfaces, they never have the same state.

Specified by:
getPrincipleInterface in interface HasState

sameStateAs

public boolean sameStateAs(HasState victem)
Description copied from interface: HasState
If two HasStates have the same internal state, return true.

For objects with subobjects, Generally this method should only return true if the internal objects are equal. Implement a contentsHaveSameState() method to determine if the contents have the same state.

Specified by:
sameStateAs in interface HasState

containsIdentifiedBy

public boolean containsIdentifiedBy(java.io.Serializable id)
Returns true if this collection contains the specified Freezable. This method uses Serializable's equals() method.

Specified by:
containsIdentifiedBy in interface CollectionOfFreezables

containsAllIdentifiedBy

public boolean containsAllIdentifiedBy(Collection collectionOfFreezables)
Returns true if this collection contains the specified Freezables. This method uses Serializable's equals() method.

Specified by:
containsAllIdentifiedBy in interface CollectionOfFreezables

freezableIterator

public FreezableIterator freezableIterator()
Returns an iterator over the Freezables in this collection.

Specified by:
freezableIterator in interface CollectionOfFreezables

identifierIterator

public java.util.Iterator identifierIterator()
Returns an iterator over the identifiers in this collection.

Specified by:
identifierIterator in interface CollectionOfFreezables

getIdentifiers

public Collection getIdentifiers()
Returns a Collection of all the identifiers in this collection.

Specified by:
getIdentifiers in interface CollectionOfFreezables

addIdentifiedBy

public boolean addIdentifiedBy(java.io.Serializable id)
Adds a Freezable to the MutableCollection. Sets will only add it to the Set if it's not already there, based on the getIdentifier() and sameIdentifierAs() methods. Lists will tack it on the end of a list.

Specified by:
addIdentifiedBy in interface MutableCollectionOfFreezables
Returns:
true if the MutableCollection changes, false if not.
Throws:
java.lang.ClassCastException - class of the specified element prevents it from being added to this collection.
java.lang.IllegalArgumentException - some aspect of this element prevents it from being added to this collection.
ZombieIdentifierException - if f is not in the Freezer and this implementation checks on add.

removeIdentifiedBy

public boolean removeIdentifiedBy(java.io.Serializable id)
Removes a Freezable from the MutableCollection, based on that Freezable's identifier. This method uses the getIdentifier() and sameIdentifierAs() methods of the Freezables to find the right one.

Specified by:
removeIdentifiedBy in interface MutableCollectionOfFreezables
Returns:
true if the MutableCollection changes, false if not.

addAllIdentifiedBy

public boolean addAllIdentifiedBy(Collection c)
Adds all the Freezables identified by c to this MutableCollection using the addIdentifiedBy method. Returns true if this MutableCollection changes.

Specified by:
addAllIdentifiedBy in interface MutableCollectionOfFreezables
Throws:
java.lang.ClassCastException - if the class of an element of the specified collection prevents it from being added to this collection.
java.lang.IllegalArgumentException - some aspect of an element of the specified collection prevents it from being added to this collection.

removeAllIdentifiedBy

public boolean removeAllIdentifiedBy(Collection c)
Removes all the Freezables identified by c from this MutableCollection using the removeIdentifiedBy method. Returns true if this MutableCollection changes.

Specified by:
removeAllIdentifiedBy in interface MutableCollectionOfFreezables
Throws:
java.lang.ClassCastException - if the class of an element of the specified collection prevents it from being added to this collection.
java.lang.IllegalArgumentException - some aspect of an element of the specified collection prevents it from being added to this collection.

retainAllIdentifiedBy

public boolean retainAllIdentifiedBy(Collection c)
Removes all but the Freezables identified by c from this MutableCollection using the removeIdentifiedBy method. Returns true if this MutableCollection changes.

Specified by:
retainAllIdentifiedBy in interface MutableCollectionOfFreezables
Throws:
java.lang.ClassCastException - if the class of an element of the specified collection prevents it from being added to this collection.
java.lang.IllegalArgumentException - some aspect of an element of the specified collection prevents it from being added to this collection.


Copyright (c) 2000, 2001, David Walend