}
TimestampedObject<Class<? extends T>> providerRef = loadClass(name);
//
Resource script = getResource(name);
//
if (script != null) {
if (providerRef != null) {
if (script.getTimestamp() != providerRef.getTimestamp()) {
providerRef = null;
}
}
//
if (providerRef == null) {
//
String source;
try {
source = new String(script.getContent(), "UTF-8");
}
catch (UnsupportedEncodingException e) {
throw new CommandException(ErrorKind.INTERNAL, "Could not compile command script " + name, e);
}
//
Class<? extends T> clazz = classFactory.parse(name, source);
providerRef = new TimestampedObject<Class<? extends T>>(script.getTimestamp(), clazz);
saveClass(name, providerRef);
}
}
//