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 class
ClassIndexedSet.ClassIndexedSetIterator
Iterator for set implementationClassIndexedSet
. -
Field Summary
-
Constructor Summary
Constructors Constructor Description ClassIndexedSet()
Constructor. -
Method Summary
Modifier and Type Method Description boolean
add(T o)
boolean
add(T o, boolean replace)
Add member to set, optionally replacing any existing instance of the same class.void
clear()
boolean
contains(Class<? extends T> clazz)
Check whether set contains an instance of the specified class.boolean
equals(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.int
hashCode()
Iterator<T>
iterator()
boolean
remove(Object o)
private void
removeFromIndex(T o)
Remove the specified object from the index.int
size()
String
toString()
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
-
Field Details
-
set
Storage for set members. -
index
Storage for index of class -> member.
-
-
Constructor Details
-
ClassIndexedSet
public ClassIndexedSet()Constructor.
-
-
Method Details
-
add
- Specified by:
add
in interfaceCollection<T>
- Specified by:
add
in interfaceSet<T>
- Overrides:
add
in classAbstractCollection<T>
-
add
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:
clear
in interfaceCollection<T>
- Specified by:
clear
in interfaceSet<T>
- Overrides:
clear
in classAbstractCollection<T>
-
remove
- Specified by:
remove
in interfaceCollection<T>
- Specified by:
remove
in interfaceSet<T>
- Overrides:
remove
in classAbstractCollection<T>
-
iterator
-
size
public int size()- Specified by:
size
in interfaceCollection<T>
- Specified by:
size
in interfaceSet<T>
- Specified by:
size
in classAbstractCollection<T>
-
contains
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
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
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
Remove the specified object from the index.- Parameters:
o
- the object to remove
-
toString
- Overrides:
toString
in classAbstractCollection<T>
-
equals
- Specified by:
equals
in interfaceCollection<T>
- Specified by:
equals
in interfaceSet<T>
- Overrides:
equals
in classAbstractSet<T>
-
hashCode
public int hashCode()- Specified by:
hashCode
in interfaceCollection<T>
- Specified by:
hashCode
in interfaceSet<T>
- Overrides:
hashCode
in classAbstractSet<T>
-