package co.codewizards.cloudstore.ls.core.invoke;
import static co.codewizards.cloudstore.core.util.AssertUtil.*;
import java.util.HashMap;
import java.util.Map;
public class ClassInfoMap {
// class-info on the proxies' side. the ClassManager is used on the real objects' side.
private final Map<Integer, ClassInfo> classId2ClassInfo = new HashMap<>();
public ClassInfoMap() {
}
public ClassInfo getClassInfoOrFail(int classId) {
final ClassInfo classInfo = getClassInfo(classId);
if (classInfo == null)
throw new IllegalArgumentException("There is no ClassInfo for classId=" + classId);
return classInfo;
}
public synchronized ClassInfo getClassInfo(final int classId) {
return classId2ClassInfo.get(classId);
}
public synchronized ClassInfo putClassInfo(final ClassInfo classInfo) {
assertNotNull(classInfo, "classInfo");
return classId2ClassInfo.put(classInfo.getClassId(), classInfo);
}
}