Package org.geotools.util
Class CheckedHashSet<E>
- Object
-
- AbstractCollection<E>
-
- AbstractSet<E>
-
- HashSet<E>
-
- LinkedHashSet<E>
-
- CheckedHashSet<E>
-
- Type Parameters:
E
- The type of elements in the set.
- All Implemented Interfaces:
Serializable
,Cloneable
,Iterable<E>
,Collection<E>
,Set<E>
,Cloneable
,CheckedCollection<E>
public class CheckedHashSet<E> extends LinkedHashSet<E> implements CheckedCollection<E>, Cloneable
A checked and synchronizedSet
. Type checks are performed at run-time in addition of compile-time checks. The synchronization lock can be modified at runtime by overriding thegetLock()
method.This class is similar to using the wrappers provided in
Collections
, minus the cost of indirection levels and with the addition of overrideable methods.- Since:
- 2.1
- Author:
- Jody Garnett (Refractions Research), Martin Desruisseaux (IRD)
- See Also:
Collections.checkedSet(java.util.Set<E>, java.lang.Class<E>)
,Collections.synchronizedSet(java.util.Set<T>)
, Serialized Form
-
-
Constructor Summary
Constructors Constructor Description CheckedHashSet(Class<E> type)
Constructs a set of the specified type.CheckedHashSet(Class<E> type, int capacity)
Constructs a set of the specified type and initial capacity.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description boolean
add(E element)
Adds the specified element to this set if it is not already present.boolean
addAll(Collection<? extends E> collection)
Appends all of the elements in the specified collection to this set.protected void
checkWritePermission()
Checks if changes in this collection are allowed.void
clear()
Removes all of the elements from this set.CheckedHashSet<E>
clone()
Returns a shallow copy of this set.boolean
contains(Object o)
Returnstrue
if this set contains the specified element.protected void
ensureValidType(E element)
Checks the type of the specified object.boolean
equals(Object o)
Compares the specified object with this set for equality.Class<E>
getElementType()
Returns the element type given at construction time.protected Object
getLock()
Returns the synchronization lock.int
hashCode()
Returns the hash code value for this set.boolean
isEmpty()
Returnstrue
if this set contains no elements.Iterator<E>
iterator()
Returns an iterator over the elements in this set.boolean
remove(Object o)
Removes the pecified element from this set.boolean
removeAll(Collection<?> c)
Removes all of this set's elements that are also contained in the specified collection.boolean
retainAll(Collection<?> c)
Retains only the elements in this set that are contained in the specified collection.int
size()
Returns the number of elements in this set.Object[]
toArray()
Returns an array containing all of the elements in this set.<T> T[]
toArray(T[] a)
Returns an array containing all of the elements in this set.String
toString()
Returns a string representation of this set.-
Methods inherited from class LinkedHashSet
spliterator
-
Methods inherited from class AbstractCollection
containsAll
-
Methods inherited from interface Collection
parallelStream, removeIf, stream, toArray
-
Methods inherited from interface Set
containsAll
-
-
-
-
Method Detail
-
getElementType
public Class<E> getElementType()
Returns the element type given at construction time.- Specified by:
getElementType
in interfaceCheckedCollection<E>
- Returns:
- The element type.
- Since:
- 2.4
-
ensureValidType
protected void ensureValidType(E element) throws IllegalArgumentException
Checks the type of the specified object. The default implementation ensure that the object is assignable to the type specified at construction time.- Parameters:
element
- the object to check, ornull
.- Throws:
IllegalArgumentException
- if the specified element is not of the expected type.
-
checkWritePermission
protected void checkWritePermission() throws UnsupportedOperationException
Checks if changes in this collection are allowed. This method is automatically invoked after this collection got the lock and before any operation that may change the content. The default implementation does nothing (i.e. this collection is modifiable). Subclasses should override this method if they want to control write access.- Throws:
UnsupportedOperationException
- if this collection is unmodifiable.- Since:
- 2.5
-
getLock
protected Object getLock()
Returns the synchronization lock. The default implementation returnsthis
. Subclasses that override this method should be careful to update the lock reference when this set is cloned.- Returns:
- The synchronization lock.
- Since:
- 2.5
-
size
public int size()
Returns the number of elements in this set.
-
isEmpty
public boolean isEmpty()
Returnstrue
if this set contains no elements.
-
contains
public boolean contains(Object o)
Returnstrue
if this set contains the specified element.
-
add
public boolean add(E element) throws IllegalArgumentException, UnsupportedOperationException
Adds the specified element to this set if it is not already present.- Specified by:
add
in interfaceCollection<E>
- Specified by:
add
in interfaceSet<E>
- Overrides:
add
in classHashSet<E>
- Parameters:
element
- element to be added to this set.- Returns:
true
if the set did not already contain the specified element.- Throws:
IllegalArgumentException
- if the specified element is not of the expected type.UnsupportedOperationException
- if this collection is unmodifiable.
-
addAll
public boolean addAll(Collection<? extends E> collection) throws IllegalArgumentException, UnsupportedOperationException
Appends all of the elements in the specified collection to this set.- Specified by:
addAll
in interfaceCollection<E>
- Specified by:
addAll
in interfaceSet<E>
- Overrides:
addAll
in classAbstractCollection<E>
- Parameters:
collection
- the elements to be inserted into this set.- Returns:
true
if this set changed as a result of the call.- Throws:
IllegalArgumentException
- if at least one element is not of the expected type.UnsupportedOperationException
- if this collection is unmodifiable.
-
remove
public boolean remove(Object o) throws UnsupportedOperationException
Removes the pecified element from this set.- Specified by:
remove
in interfaceCollection<E>
- Specified by:
remove
in interfaceSet<E>
- Overrides:
remove
in classHashSet<E>
- Throws:
UnsupportedOperationException
- if this collection is unmodifiable.
-
removeAll
public boolean removeAll(Collection<?> c) throws UnsupportedOperationException
Removes all of this set's elements that are also contained in the specified collection.- Specified by:
removeAll
in interfaceCollection<E>
- Specified by:
removeAll
in interfaceSet<E>
- Overrides:
removeAll
in classAbstractSet<E>
- Throws:
UnsupportedOperationException
- if this collection is unmodifiable.
-
retainAll
public boolean retainAll(Collection<?> c) throws UnsupportedOperationException
Retains only the elements in this set that are contained in the specified collection.- Specified by:
retainAll
in interfaceCollection<E>
- Specified by:
retainAll
in interfaceSet<E>
- Overrides:
retainAll
in classAbstractCollection<E>
- Throws:
UnsupportedOperationException
- if this collection is unmodifiable.
-
clear
public void clear() throws UnsupportedOperationException
Removes all of the elements from this set.- Specified by:
clear
in interfaceCollection<E>
- Specified by:
clear
in interfaceSet<E>
- Overrides:
clear
in classHashSet<E>
- Throws:
UnsupportedOperationException
- if this collection is unmodifiable.
-
toArray
public Object[] toArray()
Returns an array containing all of the elements in this set.- Specified by:
toArray
in interfaceCollection<E>
- Specified by:
toArray
in interfaceSet<E>
- Overrides:
toArray
in classAbstractCollection<E>
-
toArray
public <T> T[] toArray(T[] a)
Returns an array containing all of the elements in this set.- Specified by:
toArray
in interfaceCollection<E>
- Specified by:
toArray
in interfaceSet<E>
- Overrides:
toArray
in classAbstractCollection<E>
- Type Parameters:
T
- The type of array elements.
-
toString
public String toString()
Returns a string representation of this set.- Overrides:
toString
in classAbstractCollection<E>
-
equals
public boolean equals(Object o)
Compares the specified object with this set for equality.- Specified by:
equals
in interfaceCollection<E>
- Specified by:
equals
in interfaceSet<E>
- Overrides:
equals
in classAbstractSet<E>
-
hashCode
public int hashCode()
Returns the hash code value for this set.- Specified by:
hashCode
in interfaceCollection<E>
- Specified by:
hashCode
in interfaceSet<E>
- Overrides:
hashCode
in classAbstractSet<E>
-
clone
public CheckedHashSet<E> clone()
Returns a shallow copy of this set.
-
-