## 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:
  java.lang.Iterable, java.util.Collection, java.util.Set

    public class CompositeSet

extends CompositeCollection
implements java.util.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 operations require the use of a pluggable strategy. If no strategy is provided then add is unsupported.

Since:
  Commons Collections 3.0
Version:
  $Revision: 646777 $ $Date: 2008-04-10 13:33:15 +0100 (Thu, 10 Apr 2008) $
Author:
  Brian McCallister

Nested Class Summary
`static interface` `CompositeSet.SetMutator` Define callbacks for mutation operations.

Nested classes/interfaces 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(java.util.Set set)` Create a CompositeSet with just `set` composited
`CompositeSet(java.util.Set[] sets)` Create a composite set with sets as the initial set of composited Sets

Method Summary
`void` `addComposited(java.util.Collection c)` Add a Set to this composite
`void` `addComposited(java.util.Collection[] comps)` Add an array of sets to this composite
`void` `addComposited(java.util.Collection c, java.util.Collection d)` Add two sets to this composite
`boolean` `equals(java.lang.Object obj)`
`int` `hashCode()`
`boolean` `remove(java.lang.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(java.util.Set set)

  Create a CompositeSet with just `set` composited

  Parameters:
    `set` - The initial set in the composite

### CompositeSet

    public CompositeSet(java.util.Set[] sets)

  Create a composite set with sets as the initial set of composited Sets

Method Detail

### addComposited

    public void addComposited(java.util.Collection c)

  Add a Set to this composite

  Overrides:
    `addComposited` in class `CompositeCollection`
  Parameters:
    `c` - Must implement Set
  Throws:
    `java.lang.IllegalArgumentException` - if c does not implement java.util.Set or if a SetMutator is set, but fails to resolve a collision
    `java.lang.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(java.util.Collection c,
                              java.util.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:
    `java.lang.IllegalArgumentException` - if c or d does not implement java.util.Set

### addComposited

    public void addComposited(java.util.Collection[] comps)

  Add an array of sets to this composite

  Overrides:
    `addComposited` in class `CompositeCollection`
  Parameters:
    `comps` -
  Throws:
    `java.lang.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(java.lang.Object obj)

  If a `CollectionMutator` is defined for this CompositeSet then this method will be called anyway.

  Specified by:
    `remove` in interface `java.util.Collection`
  Specified by:
    `remove` in interface `java.util.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(java.lang.Object obj)

  Specified by:
    `equals` in interface `java.util.Collection`
  Specified by:
    `equals` in interface `java.util.Set`
  Overrides:
    `equals` in class `java.lang.Object`
  See Also:
    `Set.equals(java.lang.Object)`

### hashCode

    public int hashCode()

  Specified by:
    `hashCode` in interface `java.util.Collection`
  Specified by:
    `hashCode` in interface `java.util.Set`
  Overrides:
    `hashCode` in class `java.lang.Object`
  See Also:
    `Set.hashCode()`

Copyright © 2001-2008 The Apache Software Foundation. All Rights Reserved.