Package com.google.gwt.core.ext.linker

## Class ArtifactSet

- java.lang.Object
- - com.google.gwt.core.ext.linker.ArtifactSet

- All Implemented Interfaces:
    `java.io.Serializable`, `java.lang.Iterable<Artifact<?>>`, `java.util.Collection<Artifact<?>>`, `java.util.Set<Artifact<?>>`, `java.util.SortedSet<Artifact<?>>`

      public final class ArtifactSet
      extends java.lang.Object
      implements java.util.SortedSet<Artifact<?>>, java.io.Serializable

  Provides stable ordering and de-duplication of artifacts.
  See Also:
    Serialized Form

- - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `ArtifactSet()` |
    `ArtifactSet​(java.util.Collection<? extends Artifact<?>> copyFrom)` |

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `boolean` | `add​(Artifact<?> o)` |
    `boolean` | `addAll​(java.util.Collection<? extends Artifact<?>> c)` |
    `void` | `clear()` |
    `java.util.Comparator<? super Artifact<?>>` | `comparator()` |
    `boolean` | `contains​(java.lang.Object o)` |
    `boolean` | `containsAll​(java.util.Collection<?> c)` |
    `boolean` | `equals​(java.lang.Object o)` |
    `<T extends Artifact<? super T>> java.util.SortedSet<T>` | `find​(java.lang.Class<T> artifactType)` | Find all Artifacts assignable to some base type.
    `Artifact<?>` | `first()` |
    `void` | `freeze()` | Prevent further modification of the ArtifactSet.
    `int` | `hashCode()` |
    `java.util.SortedSet<Artifact<?>>` | `headSet​(Artifact<?> toElement)` |
    `boolean` | `isEmpty()` |
    `java.util.Iterator<Artifact<?>>` | `iterator()` |
    `Artifact<?>` | `last()` |
    `boolean` | `remove​(java.lang.Object o)` |
    `boolean` | `removeAll​(java.util.Collection<?> c)` |
    `boolean` | `replace​(Artifact<?> artifact)` | Possibly replace an existing Artifact.
    `boolean` | `retainAll​(java.util.Collection<?> c)` |
    `int` | `size()` |
    `java.util.SortedSet<Artifact<?>>` | `subSet​(Artifact<?> fromElement, Artifact<?> toElement)` |
    `java.util.SortedSet<Artifact<?>>` | `tailSet​(Artifact<?> fromElement)` |
    `java.lang.Object[]` | `toArray()` |
    `<T> T[]` | `toArray​(T[] a)` |
    `java.lang.String` | `toString()` |

    - ### Methods inherited from class java.lang.Object

      `clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

    - ### Methods inherited from interface java.util.Collection

      `parallelStream, removeIf, stream, toArray`

    - ### Methods inherited from interface java.lang.Iterable

      `forEach`

    - ### Methods inherited from interface java.util.SortedSet

      `spliterator`

- - ### Constructor Detail

    - #### ArtifactSet

          public ArtifactSet()

    - #### ArtifactSet

          public ArtifactSet​(java.util.Collection<? extends Artifact<?>> copyFrom)

  - ### Method Detail

    - #### add

          public boolean add​(Artifact<?> o)

      Specified by:
        `add` in interface `java.util.Collection<Artifact<?>>`
      Specified by:
        `add` in interface `java.util.Set<Artifact<?>>`

    - #### addAll

          public boolean addAll​(java.util.Collection<? extends Artifact<?>> c)

      Specified by:
        `addAll` in interface `java.util.Collection<Artifact<?>>`
      Specified by:
        `addAll` in interface `java.util.Set<Artifact<?>>`

    - #### clear

          public void clear()

      Specified by:
        `clear` in interface `java.util.Collection<Artifact<?>>`
      Specified by:
        `clear` in interface `java.util.Set<Artifact<?>>`

    - #### comparator

          public java.util.Comparator<? super Artifact<?>> comparator()

      Specified by:
        `comparator` in interface `java.util.SortedSet<Artifact<?>>`

    - #### contains

          public boolean contains​(java.lang.Object o)

      Specified by:
        `contains` in interface `java.util.Collection<Artifact<?>>`
      Specified by:
        `contains` in interface `java.util.Set<Artifact<?>>`

    - #### containsAll

          public boolean containsAll​(java.util.Collection<?> c)

      Specified by:
        `containsAll` in interface `java.util.Collection<Artifact<?>>`
      Specified by:
        `containsAll` in interface `java.util.Set<Artifact<?>>`

    - #### equals

          public boolean equals​(java.lang.Object o)

      Specified by:
        `equals` in interface `java.util.Collection<Artifact<?>>`
      Specified by:
        `equals` in interface `java.util.Set<Artifact<?>>`
      Overrides:
        `equals` in class `java.lang.Object`

    - #### find

          public <T extends Artifact<? super T>> java.util.SortedSet<T> find​(java.lang.Class<T> artifactType)

      Find all Artifacts assignable to some base type. The returned value will be a snapshot of the values in the ArtifactSet. An example of how this could be used:

             for (EmittedArtifact ea : artifactSet.find(EmittedArtifact.class)) {
               ...
             }

      Type Parameters:
        `T` - the desired type of Artifact
      Parameters:
        `artifactType` - the desired type of Artifact
      Returns:
        all Artifacts in the ArtifactSet assignable to the desired type

    - #### first

          public Artifact<?> first()

      Specified by:
        `first` in interface `java.util.SortedSet<Artifact<?>>`

    - #### freeze

          public void freeze()

      Prevent further modification of the ArtifactSet. Any attempts to alter the ArtifactSet after invoking this method will result in an UnsupportedOperationException.

    - #### hashCode

          public int hashCode()

      Specified by:
        `hashCode` in interface `java.util.Collection<Artifact<?>>`
      Specified by:
        `hashCode` in interface `java.util.Set<Artifact<?>>`
      Overrides:
        `hashCode` in class `java.lang.Object`

    - #### headSet

          public java.util.SortedSet<Artifact<?>> headSet​(Artifact<?> toElement)

      Specified by:
        `headSet` in interface `java.util.SortedSet<Artifact<?>>`

    - #### isEmpty

          public boolean isEmpty()

      Specified by:
        `isEmpty` in interface `java.util.Collection<Artifact<?>>`
      Specified by:
        `isEmpty` in interface `java.util.Set<Artifact<?>>`

    - #### iterator

          public java.util.Iterator<Artifact<?>> iterator()

      Specified by:
        `iterator` in interface `java.util.Collection<Artifact<?>>`
      Specified by:
        `iterator` in interface `java.lang.Iterable<Artifact<?>>`
      Specified by:
        `iterator` in interface `java.util.Set<Artifact<?>>`

    - #### last

          public Artifact<?> last()

      Specified by:
        `last` in interface `java.util.SortedSet<Artifact<?>>`

    - #### remove

          public boolean remove​(java.lang.Object o)

      Specified by:
        `remove` in interface `java.util.Collection<Artifact<?>>`
      Specified by:
        `remove` in interface `java.util.Set<Artifact<?>>`

    - #### removeAll

          public boolean removeAll​(java.util.Collection<?> c)

      Specified by:
        `removeAll` in interface `java.util.Collection<Artifact<?>>`
      Specified by:
        `removeAll` in interface `java.util.Set<Artifact<?>>`

    - #### replace

          public boolean replace​(Artifact<?> artifact)

      Possibly replace an existing Artifact.
      Parameters:
        `artifact` - the replacement Artifact
      Returns:
        `true` if an equivalent Artifact was already present.

    - #### retainAll

          public boolean retainAll​(java.util.Collection<?> c)

      Specified by:
        `retainAll` in interface `java.util.Collection<Artifact<?>>`
      Specified by:
        `retainAll` in interface `java.util.Set<Artifact<?>>`

    - #### size

          public int size()

      Specified by:
        `size` in interface `java.util.Collection<Artifact<?>>`
      Specified by:
        `size` in interface `java.util.Set<Artifact<?>>`

    - #### subSet

          public java.util.SortedSet<Artifact<?>> subSet​(Artifact<?> fromElement,
                                                         Artifact<?> toElement)

      Specified by:
        `subSet` in interface `java.util.SortedSet<Artifact<?>>`

    - #### tailSet

          public java.util.SortedSet<Artifact<?>> tailSet​(Artifact<?> fromElement)

      Specified by:
        `tailSet` in interface `java.util.SortedSet<Artifact<?>>`

    - #### toArray

          public java.lang.Object[] toArray()

      Specified by:
        `toArray` in interface `java.util.Collection<Artifact<?>>`
      Specified by:
        `toArray` in interface `java.util.Set<Artifact<?>>`

    - #### toArray

          public <T> T[] toArray​(T[] a)

      Specified by:
        `toArray` in interface `java.util.Collection<Artifact<?>>`
      Specified by:
        `toArray` in interface `java.util.Set<Artifact<?>>`

    - #### toString

          public java.lang.String toString()

      Overrides:
        `toString` in class `java.lang.Object`