java.lang.Object | |
↳ | com.pnfsoftware.jeb.util.collect.ReferenceCounter<K> |
A simple, thread-safe object reference counter. A counter can be associated to any object of the
provided K
type.
Note that this utility class has nothing to do with Garbage Collection reference counting.
Public Constructors | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
ReferenceCounter()
Create a new reference counter.
|
Public Methods | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
synchronized void |
clear()
Reset the reference counter.
| ||||||||||
synchronized Map<K, Integer> | copyToMap() | ||||||||||
synchronized int |
dec(K key)
Unrecord an object, ie decrement its reference counter by one.
| ||||||||||
synchronized String |
formatAllReferences()
Format all references in descending order.
| ||||||||||
synchronized String |
formatTopReferences(int top)
Format the top references (= descending order) counted referenced by the counter.
| ||||||||||
synchronized int |
get(K key)
Get the reference counter for an object.
| ||||||||||
synchronized Map<K, Integer> |
getAsMap()
Get a read-only map of (referenced object -> count).
| ||||||||||
synchronized int |
getCount()
Get the total count for all the references actively counted by this counter.
| ||||||||||
synchronized boolean |
has(K key)
Check if an object is currently referenced, ie its reference counter is greater or equal than
zero.
| ||||||||||
synchronized int |
inc(K key)
Record an object, ie increment its reference counter.
| ||||||||||
synchronized boolean |
isEmpty()
Determine whether there are references actively tracked by this counter.
| ||||||||||
synchronized Set<K> | keys() | ||||||||||
synchronized void | load(Collection<? extends K> coll) | ||||||||||
synchronized boolean |
remove(K key)
Remove an object from tracking.
| ||||||||||
synchronized int |
size()
Get the number of references actively counted by this counter.
| ||||||||||
synchronized String | toString() |
[Expand]
Inherited Methods | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
From class
java.lang.Object
|
Create a new reference counter.
Reset the reference counter.
Unrecord an object, ie decrement its reference counter by one. If the object is currently untracked, an exception will be raised.
key | object |
---|
IllegalArgumentException | if the object is not present |
---|
Format all references in descending order.
Format the top references (= descending order) counted referenced by the counter.
top | the number of top references to format; a negative number means to format all references |
---|
Get the reference counter for an object.
key | object |
---|
Get a read-only map of (referenced object -> count). To be used in a "this counter"-synchronized block.
Get the total count for all the references actively counted by this counter.
Check if an object is currently referenced, ie its reference counter is greater or equal than zero.
key | object |
---|
Record an object, ie increment its reference counter. Will raise an IllegalStateException if the counter exceeds the capacity of a signed integer.
key | object |
---|
Determine whether there are references actively tracked by this counter.
Remove an object from tracking. This method is equivalent to decrementing the object counter until zero.
key | object |
---|
Get the number of references actively counted by this counter.