Class ClassIndexedSet<T>
- java.lang.Object
-
- java.util.AbstractCollection<E>
-
- java.util.AbstractSet<T>
-
- net.shibboleth.utilities.java.support.collection.ClassIndexedSet<T>
-
- Type Parameters:
T- the type of object stored by this class
- All Implemented Interfaces:
Iterable<T>,Collection<T>,Set<T>
- Direct Known Subclasses:
CriteriaSet
public class ClassIndexedSet<T> extends AbstractSet<T> implements Set<T>
Set implementation which provides indexed access to set members via their class, and which allows only one instance of a given class to be present in the set. Null members are not allowed.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description protected classClassIndexedSet.ClassIndexedSetIteratorIterator for set implementationClassIndexedSet.
-
Constructor Summary
Constructors Constructor Description ClassIndexedSet()Constructor.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description booleanadd(T o)booleanadd(T o, boolean replace)Add member to set, optionally replacing any existing instance of the same class.voidclear()booleancontains(Class<? extends T> clazz)Check whether set contains an instance of the specified class.booleanequals(Object obj)<X extends T>
Xget(Class<X> clazz)Get the set element specified by the class parameter.protected <X extends T>
Class<X>getIndexClass(X o)Get the index class of the specified object.inthashCode()Iterator<T>iterator()booleanremove(Object o)private voidremoveFromIndex(T o)Remove the specified object from the index.intsize()StringtoString()-
Methods inherited from class java.util.AbstractSet
removeAll
-
Methods inherited from class java.util.AbstractCollection
addAll, contains, containsAll, isEmpty, retainAll, toArray, toArray
-
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.util.Set
addAll, contains, containsAll, isEmpty, removeAll, retainAll, spliterator, toArray, toArray
-
-
-
-
Method Detail
-
add
public boolean add(T o)
- Specified by:
addin interfaceCollection<T>- Specified by:
addin interfaceSet<T>- Overrides:
addin classAbstractCollection<T>
-
add
public boolean add(@Nonnull T o, boolean replace)Add member to set, optionally replacing any existing instance of the same class.- Parameters:
o- the object to addreplace- flag indicating whether to replace an existing class type- Returns:
- true if object was added
-
clear
public void clear()
- Specified by:
clearin interfaceCollection<T>- Specified by:
clearin interfaceSet<T>- Overrides:
clearin classAbstractCollection<T>
-
remove
public boolean remove(@Nullable Object o)- Specified by:
removein interfaceCollection<T>- Specified by:
removein interfaceSet<T>- Overrides:
removein classAbstractCollection<T>
-
size
public int size()
- Specified by:
sizein interfaceCollection<T>- Specified by:
sizein interfaceSet<T>- Specified by:
sizein classAbstractCollection<T>
-
contains
public boolean contains(@Nullable Class<? extends T> clazz)Check whether set contains an instance of the specified class.- Parameters:
clazz- the class to check- Returns:
- true if set contains an instance of the specified class, false otherwise
-
get
@Nullable public <X extends T> X get(@Nullable Class<X> clazz)
Get the set element specified by the class parameter.- Type Parameters:
X- generic parameter which eliminates need for casting by the caller- Parameters:
clazz- the class to whose instance is to be retrieved- Returns:
- the element whose class is of the type specified
-
getIndexClass
@Nonnull protected <X extends T> Class<X> getIndexClass(@Nonnull X o)
Get the index class of the specified object. Subclasses may override to use a class index other than the main runtime class of the object.- Type Parameters:
X- generic parameter which eliminates need for casting by the caller- Parameters:
o- the object whose class index to determine- Returns:
- the class index value associated with the object instance
-
removeFromIndex
private void removeFromIndex(T o)
Remove the specified object from the index.- Parameters:
o- the object to remove
-
toString
public String toString()
- Overrides:
toStringin classAbstractCollection<T>
-
equals
public boolean equals(Object obj)
- Specified by:
equalsin interfaceCollection<T>- Specified by:
equalsin interfaceSet<T>- Overrides:
equalsin classAbstractSet<T>
-
hashCode
public int hashCode()
- Specified by:
hashCodein interfaceCollection<T>- Specified by:
hashCodein interfaceSet<T>- Overrides:
hashCodein classAbstractSet<T>
-
-