Package org.apache.catalina.util

## Class ResourceSet<T>

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

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

All Implemented Interfaces:
  `java.io.Serializable`, `java.lang.Cloneable`, `java.lang.Iterable<T>`, `java.util.Collection<T>`, `java.util.Set<T>`

    public final class ResourceSet<T>
    extends java.util.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.

Author:
  Craig R. McClanahan
See Also:
  Serialized Form

### Constructor Summary

Constructors
`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​(java.util.Collection<T> coll)` Construct a new set with the same contents as the existing collection.

### Method Summary

All Methods Instance Methods Concrete Methods
`boolean` `add​(T o)` Add the specified element to this set if it is not already present.
`void` `clear()` Remove all of the elements from this set.
`boolean` `isLocked()`
`boolean` `remove​(java.lang.Object o)` Remove the given element from this set if it is present.
`void` `setLocked​(boolean locked)` Set the locked state of this parameter map.

### Methods inherited from class java.util.HashSet

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

### Methods inherited from class java.util.AbstractSet

`equals, hashCode, removeAll`

### Methods inherited from class java.util.AbstractCollection

`addAll, containsAll, retainAll, toArray, toArray, toString`

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

`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.Set

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

### Constructor Detail

#### 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​(java.util.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 Detail

#### 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)

Add the specified element to this set if it is not already present. Return `true` if the element was added.

Specified by:
  `add` in interface `java.util.Collection<T>`
Specified by:
  `add` in interface `java.util.Set<T>`
Overrides:
  `add` in class `java.util.HashSet<T>`
Parameters:
  `o` - The object to be added
Throws:
  `java.lang.IllegalStateException` - if this ResourceSet is locked

#### clear

    public void clear()

Remove all of the elements from this set.

Specified by:
  `clear` in interface `java.util.Collection<T>`
Specified by:
  `clear` in interface `java.util.Set<T>`
Overrides:
  `clear` in class `java.util.HashSet<T>`
Throws:
  `java.lang.IllegalStateException` - if this ResourceSet is locked

#### remove

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

Remove the given element from this set if it is present. Return `true` if the element was removed.

Specified by:
  `remove` in interface `java.util.Collection<T>`
Specified by:
  `remove` in interface `java.util.Set<T>`
Overrides:
  `remove` in class `java.util.HashSet<T>`
Parameters:
  `o` - The object to be removed
Throws:
  `java.lang.IllegalStateException` - if this ResourceSet is locked