## 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
`CompositeCollection.CollectionMutator`

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`
  See Also:
    `Set.equals(java.lang.Object)`

### hashCode

    public int hashCode()

  Specified by:
    `hashCode` in interface `Set`
  See Also:
    `Set.hashCode()`

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