Class WeakObjectRegistry<K, E extends K>
java.lang.Object
java.util.AbstractCollection<E>
java.util.AbstractSet<E>
org.eclipse.rdf4j.sail.memory.model.WeakObjectRegistry<K,E>
- All Implemented Interfaces:
Iterable<E>, Collection<E>, Set<E>
An object registry that uses weak references to keep track of the stored objects. The registry can be used to
retrieve stored objects using another, equivalent object. As such, it can be used to prevent the use of duplicates in
another data structure, reducing memory usage. The objects that are being stored should properly implement the
Object.equals(Object) and Object.hashCode() methods.-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionprivate static classstatic class -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final WeakObjectRegistry.AdderBasedReadWriteLock[]private static final org.slf4j.Loggerprivate final Map<E, WeakReference<E>>[]The hash map that is used to store the objects. -
Constructor Summary
ConstructorsConstructorDescriptionConstructs a new, empty object registry.WeakObjectRegistry(int cacheSize, Collection<? extends E> c) Constructs a new WeakObjectRegistry containing the elements in the specified collection. -
Method Summary
Methods inherited from class AbstractSet
equals, hashCode, removeAllMethods inherited from class AbstractCollection
addAll, containsAll, isEmpty, retainAll, toArray, toArray, toStringMethods inherited from interface Collection
parallelStream, removeIf, stream, toArrayMethods inherited from interface Set
addAll, containsAll, isEmpty, retainAll, spliterator, toArray, toArray
-
Field Details
-
logger
private static final org.slf4j.Logger logger -
objectMap
-
locks
-
-
Constructor Details
-
WeakObjectRegistry
public WeakObjectRegistry()Constructs a new, empty object registry. -
WeakObjectRegistry
Constructs a new WeakObjectRegistry containing the elements in the specified collection.- Parameters:
c- The collection whose elements are to be placed into this object registry.- Throws:
NullPointerException- If the specified collection is null.
-
-
Method Details
-
get
-
getIndex
-
closeableIterator
-
iterator
-
size
public int size()- Specified by:
sizein interfaceCollection<K>- Specified by:
sizein interfaceSet<K>- Specified by:
sizein classAbstractCollection<E extends K>
-
contains
-
add
-
getOrAdd
-
remove
-
clear
public void clear()- Specified by:
clearin interfaceCollection<K>- Specified by:
clearin interfaceSet<K>- Overrides:
clearin classAbstractCollection<E extends K>
-