# Class ResourceSet<T>

java.lang.Object
java.util.AbstractCollection<T>
java.util.AbstractSet<T>
java.util.HashSet<T>
org.apache.catalina.util.ResourceSet<T>

Type Parameters:
  `T` - The type of elements in the Set

All Implemented Interfaces:
  `Serializable, Cloneable, Iterable<T>, Collection<T>, Set<T>`

public final class ResourceSet<T> extends HashSet<T>
Extended implementation of HashSet that includes a `locked` property. This class can be used to safely expose resource path sets to user classes without having to clone them in order to avoid modifications. When first created, a `ResourceMap` is not locked.

See Also:
  - Serialized Form

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `ResourceSet()`
  Construct a new, empty set with the default initial capacity and load factor.
  `ResourceSet(int initialCapacity)`
  Construct a new, empty set with the specified initial capacity and default load factor.
  `ResourceSet(int initialCapacity, float loadFactor)`
  Construct a new, empty set with the specified initial capacity and load factor.
  `ResourceSet(Collection<T> coll)`
  Construct a new set with the same contents as the existing collection.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `boolean`
  `add(T o)`
  `void`
  `clear()`
  `boolean`
  `isLocked()`
  `boolean`
  `remove(Object o)`
  `void`
  `setLocked(boolean locked)`
  Set the locked state of this parameter map.

  ### Methods inherited from class HashSet

  `clone, contains, isEmpty, iterator, newHashSet, size, spliterator, toArray, toArray`

  ### Methods inherited from class AbstractSet

  `equals, hashCode, removeAll`

  ### Methods inherited from class AbstractCollection

  `addAll, containsAll, retainAll, toString`

  ### Methods inherited from class Object

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

  ### Methods inherited from interface Collection

  `parallelStream, removeIf, stream, toArray`

  ### Methods inherited from interface Iterable

  `forEach`

  ### Methods inherited from interface Set

  `addAll, containsAll, equals, hashCode, removeAll, retainAll`

- ## Constructor Details

  - ### ResourceSet

    public ResourceSet()
    Construct a new, empty set with the default initial capacity and load factor.

  - ### ResourceSet

    public ResourceSet(int initialCapacity)
    Construct a new, empty set with the specified initial capacity and default load factor.
    Parameters:
      `initialCapacity` - The initial capacity of this set

  - ### ResourceSet

    public ResourceSet(int initialCapacity, float loadFactor)
    Construct a new, empty set with the specified initial capacity and load factor.
    Parameters:
      `initialCapacity` - The initial capacity of this set
      `loadFactor` - The load factor of this set

  - ### ResourceSet

    public ResourceSet(Collection<T> coll)
    Construct a new set with the same contents as the existing collection.
    Parameters:
      `coll` - The collection whose contents we should copy

- ## Method Details

  - ### isLocked

    public boolean isLocked()
    Returns:
      the locked state of this parameter map.

  - ### setLocked

    public void setLocked(boolean locked)
    Set the locked state of this parameter map.
    Parameters:
      `locked` - The new locked state

  - ### add

    public boolean add(T o)
    Specified by:
      `add` in interface `Collection<T>`
    Specified by:
      `add` in interface `Set<T>`
    Overrides:
      `add` in class `HashSet<T>`
    Throws:
      `IllegalStateException` - if this set is currently locked

  - ### clear

    public void clear()
    Specified by:
      `clear` in interface `Collection<T>`
    Specified by:
      `clear` in interface `Set<T>`
    Overrides:
      `clear` in class `HashSet<T>`
    Throws:
      `IllegalStateException` - if this set is currently locked

  - ### remove

    public boolean remove(Object o)
    Specified by:
      `remove` in interface `Collection<T>`
    Specified by:
      `remove` in interface `Set<T>`
    Overrides:
      `remove` in class `HashSet<T>`
    Throws:
      `IllegalStateException` - if this set is currently locked