org.apache.commons.collections.set
Class CompositeSet

java.lang.Object
  |
  +--org.apache.commons.collections.collection.CompositeCollection
        |
        +--org.apache.commons.collections.set.CompositeSet
All Implemented Interfaces:
Collection, Set

public class CompositeSet
extends CompositeCollection
implements Set

Decorates a set of other sets to provide a single unified view.

Changes made to this set will actually be made on the decorated set. Add and remove operations require the use of a pluggable strategy. If no strategy is provided then add and remove are unsupported.

Since:
Commons Collections 3.0
Version:
$Revision: 1.3 $ $Date: 2004/02/18 01:14:27 $
Author:
Brian McCallister

Nested Class Summary
static interface CompositeSet.SetMutator
          Define callbacks for mutation operations.
 
Nested classes inherited from class org.apache.commons.collections.collection.CompositeCollection
 
Field Summary
 
Fields inherited from class org.apache.commons.collections.collection.CompositeCollection
all, mutator
 
Constructor Summary
CompositeSet()
          Create an empty CompositeSet
CompositeSet(Set set)
          Create a CompositeSet with just set composited
CompositeSet(Set[] sets)
          Create a composite set with sets as the initial set of composited Sets
 
Method Summary
 void addComposited(Collection c)
          Add a Set to this composite
 void addComposited(Collection[] comps)
          Add an array of sets to this composite
 void addComposited(Collection c, Collection d)
          Add two sets to this composite
 boolean equals(Object obj)
           
 int hashCode()
           
 boolean remove(Object obj)
          If a CollectionMutator is defined for this CompositeSet then this method will be called anyway.
 void setMutator(CompositeCollection.CollectionMutator mutator)
          This can receive either a CompositeCollection.CollectionMutator or a CompositeSet.SetMutator.
 
Methods inherited from class org.apache.commons.collections.collection.CompositeCollection
add, addAll, clear, contains, containsAll, getCollections, isEmpty, iterator, removeAll, removeComposited, retainAll, size, toArray, toArray, toCollection
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface java.util.Set
add, addAll, clear, contains, containsAll, isEmpty, iterator, removeAll, retainAll, size, toArray, toArray
 

Constructor Detail

CompositeSet

public CompositeSet()
Create an empty CompositeSet


CompositeSet

public CompositeSet(Set set)
Create a CompositeSet with just set composited

Parameters:
set - The initial set in the composite

CompositeSet

public CompositeSet(Set[] sets)
Create a composite set with sets as the initial set of composited Sets

Method Detail

addComposited

public void addComposited(Collection c)
Add a Set to this composite

Overrides:
addComposited in class CompositeCollection
Parameters:
c - Must implement Set
Throws:
IllegalArgumentException - if c does not implement java.util.Set or if a SetMutator is set, but fails to resolve a collision
UnsupportedOperationException - if there is no SetMutator set, or a CollectionMutator is set instead of a SetMutator
See Also:
CompositeCollection.CollectionMutator, CompositeSet.SetMutator

addComposited

public void addComposited(Collection c,
                          Collection d)
Add two sets to this composite

Overrides:
addComposited in class CompositeCollection
Parameters:
c - the first collection to add
d - the second collection to add
Throws:
IllegalArgumentException - if c or d does not implement java.util.Set

addComposited

public void addComposited(Collection[] comps)
Add an array of sets to this composite

Overrides:
addComposited in class CompositeCollection
Parameters:
comps -
Throws:
IllegalArgumentException - if any of the collections in comps do not implement Set

setMutator

public void setMutator(CompositeCollection.CollectionMutator mutator)
This can receive either a CompositeCollection.CollectionMutator or a CompositeSet.SetMutator. If a CompositeCollection.CollectionMutator is used than conflicts when adding composited sets will throw IllegalArgumentException

Overrides:
setMutator in class CompositeCollection
Parameters:
mutator - the mutator to use

remove

public boolean remove(Object obj)
If a CollectionMutator is defined for this CompositeSet then this method will be called anyway.

Specified by:
remove in interface Set
Overrides:
remove in class CompositeCollection
Parameters:
obj - Object to be removed
Returns:
true if the object is removed, false otherwise

equals

public boolean equals(Object obj)
Specified by:
equals in interface Set
Overrides:
equals in class Object
See Also:
Set.equals(java.lang.Object)

hashCode

public int hashCode()
Specified by:
hashCode in interface Set
Overrides:
hashCode in class Object
See Also:
Set.hashCode()


Copyright © 2001-2004 Apache Software Foundation. All Rights Reserved.