class WeakValue extends WeakReference<T> implements Weak<T> {

    @Override
    public T orThrow() {
        T value = get();
        if (value != null) {
            return value;
        } else {
            throw new NoSuchElementException("Value was reclaimed");
        }
    }

      WeakValue(T referent);

}