public final class Refs<T extends RefCounted<T>>
extends java.util.AbstractCollection<T>
implements java.lang.AutoCloseable
Constructor and Description |
---|
Refs() |
Refs(java.util.Map<T,Ref<T>> references) |
Modifier and Type | Method and Description |
---|---|
Refs<T> |
addAll(Refs<T> add)
Merge two sets of references, ensuring only one reference is retained between the two sets
|
void |
close()
See
release() |
Ref<T> |
get(T referenced) |
java.util.Iterator<T> |
iterator() |
static <T extends RefCounted<T>> |
ref(java.lang.Iterable<T> reference) |
void |
release()
Release ALL of the references held by this Refs collection
|
void |
release(java.util.Collection<T> release)
Release a retained Ref to all of the provided objects; if any is not held, an exception will be thrown
|
static void |
release(java.lang.Iterable<? extends Ref<?>> refs) |
void |
release(T referenced) |
boolean |
releaseIfHolds(T referenced)
Release the retained Ref to the provided object, if held, return false otherwise
|
static <T extends SelfRefCounted<T>> |
selfRefs(java.lang.Iterable<T> refs) |
int |
size() |
static <T extends RefCounted<T>> |
tryRef(java.lang.Iterable<T> reference)
Acquire a reference to all of the provided objects, or none
|
boolean |
tryRef(T t)
Attempt to take a reference to the provided object; if it has already been released, null will be returned
|
add, addAll, clear, contains, containsAll, isEmpty, remove, removeAll, retainAll, toArray, toArray, toString
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
public void release()
public void close()
release()
close
in interface java.lang.AutoCloseable
public Ref<T> get(T referenced)
referenced
- the object we have a Ref topublic void release(T referenced)
referenced
- the object we have a Ref topublic boolean releaseIfHolds(T referenced)
referenced
- the object we retain a Ref topublic void release(java.util.Collection<T> release)
release
- public boolean tryRef(T t)
t
- object to acquire a reference topublic java.util.Iterator<T> iterator()
iterator
in interface java.lang.Iterable<T extends RefCounted<T>>
iterator
in interface java.util.Collection<T extends RefCounted<T>>
iterator
in class java.util.AbstractCollection<T extends RefCounted<T>>
public int size()
size
in interface java.util.Collection<T extends RefCounted<T>>
size
in class java.util.AbstractCollection<T extends RefCounted<T>>
public Refs<T> addAll(Refs<T> add)
public static <T extends RefCounted<T>> Refs<T> tryRef(java.lang.Iterable<T> reference)
public static <T extends RefCounted<T>> Refs<T> ref(java.lang.Iterable<T> reference)
public static void release(java.lang.Iterable<? extends Ref<?>> refs)
public static <T extends SelfRefCounted<T>> java.lang.Iterable<Ref<T>> selfRefs(java.lang.Iterable<T> refs)
Copyright © 2016 The Apache Software Foundation