cons = generatorClass.getConstructor();
} catch (NoSuchMethodException e) {
throw new RuntimeException("Metadata generator " + generatorClassName + " does not have a public " +
"no-arg constructor", e);
}
MetadataGenerator generator;
try {
generator = (MetadataGenerator)cons.newInstance();
} catch (IllegalAccessException | InstantiationException e) {
throw new RuntimeException("Error instantiating metadata generator " + generatorClassName, e);
} catch (InvocationTargetException e) {
throw new RuntimeException("Error instantiating metadata generator " + generatorClassName,
e.getTargetException());
}
DefaultMetadataGeneratorContext metadataContext = new DefaultMetadataGeneratorContext(context.getClassSource(),
context.getClassLoader(), context.getProperties(), context);
// Generate resource loader
Resource resource = generator.generateMetadata(metadataContext, methodRef);
writer.append("if (!window.hasOwnProperty(\"").appendMethodBody(methodRef).append("$$resource\")) {")
.indent().softNewLine();
writer.append("window.").appendMethodBody(methodRef).append("$$resource = ");
ResourceWriterHelper.write(writer, resource);
writer.append(';').softNewLine();