package openmods.reflection;
import openmods.Log;
public class SafeClassLoad {
public final String clsName;
private Class<?> loaded;
public SafeClassLoad(String clsName) {
this.clsName = clsName;
}
public static SafeClassLoad create(String clsName) {
return new SafeClassLoad(clsName);
}
public void load() {
if (loaded == null) loaded = ReflectionHelper.getClass(clsName);
}
public Class<?> get() {
load();
return loaded;
}
public boolean tryLoad() {
return tryLoad(true);
}
public boolean tryLoad(boolean silent) {
try {
load();
return true;
} catch (Throwable t) {
if (!silent) Log.warn(t, "Loading class %s failed", clsName);
return false;
}
}
@Override
public String toString() {
return "delayed " + clsName;
}
}