@Override
public String generate(TreeLogger logger, GeneratorContext ctx,
String requestedClass) throws UnableToCompleteException {
// Initialize dependencies
TypeOracle oracle = ctx.getTypeOracle();
classCollection = new ClassCollection(oracle);
ginjectorInspector = new GinjectorInspector(classCollection, ctx, logger);
presenterInspector = new PresenterInspector(oracle, logger, classCollection,
ginjectorInspector);
proxyOutputterFactory = new ProxyOutputterFactory(oracle, logger, classCollection,
ginjectorInspector, presenterInspector);
// Find the requested class
JClassType proxyInterface = oracle.findType(requestedClass);
if (proxyInterface == null) {
logger.log(TreeLogger.ERROR, "Unable to find metadata for type '"
+ requestedClass + "'", null);