package org.jruby.util.collections;
import org.jruby.Ruby;
/**
* A proxy cache that uses Java 7's ClassValue.
*/
public class Java7ClassValue<T> extends ClassValue<T> {
public Java7ClassValue(ClassValueCalculator<T> calculator) {
super(calculator);
}
public T get(Class cls) {
return proxy.get(cls);
}
private final java.lang.ClassValue<T> proxy = new java.lang.ClassValue<T>() {
@Override
protected T computeValue(Class<?> type) {
return calculator.computeValue(type);
}
};
}