public void finish(final TreeLogger logger) throws UnableToCompleteException { getAst().getGeneratorContext().finish(logger); }
public void commit(TreeLogger logger) { if (logger == null) logger = this.logger; StandardGeneratorContext ctx = getGeneratorContext(); for (SourceBuilder<PrintWriter> builder : builders.values()) { PrintWriter pw = builder.getPayload(); pw.print(builder.toString()); ctx.commit(logger, pw); } builders.clear(); if (constPool != null) { constPool.commit(logger, ctx); constPool = null; } }
public TypeOracle getTypeOracle() { return getGeneratorContext().getTypeOracle(); }
Event rebindEvent = SpeedTracerLogger.start(DevModeEventType.REBIND, "Type Name", typeName); try { genCtx.setPropertyOracle(propOracle); genCtx.setRebindRuleResolver(this); Rule rule = getRebindRule(logger, typeName); genCtx.setCachedGeneratorResult(cachedResult); ArtifactSet newlyGeneratedArtifacts = genCtx.finish(logger); if (!newlyGeneratedArtifacts.isEmpty()) { artifactAcceptor.accept(logger, newlyGeneratedArtifacts);
"\""+digest+"\"})"); final StandardGeneratorContext gen = ast.getGeneratorContext(); final PrintWriter pw = gen.tryCreate(logger, ctx.out.getPackage(), ctx.out.getClassBuffer().getSimpleName()); src = ctx.out.toString(); pw.print(src); gen.commit(logger, pw); gen.finish(logger); logger.log(Type.INFO, src); try {
logger.log(logLevel(), "Loading injected result: " + provider.getName()); rebindResult = AsyncProxyGenerator.setupAsyncCallback(logger, ctx, ctx.getTypeOracle().findType(BinaryName.toSourceName(type.getName())), ((JDeclaredType)receiverLiteral.getRefType())); } catch (final ClassNotFoundException e) { ctx.finish(logger);
final RebindResult result = ctx.runGeneratorIncrementally(logger, generator, type.getName()); ctx.finish(logger); try { answers = Lists.create(ast.getRebindPermutationOracle().getAllPossibleRebindAnswers(logger, reqType)); ctx.finish(logger); } catch (final UnableToCompleteException e) { ast.error(x, "Failed to resolve '" + reqType + "' via deferred binding");
public JExpression doRebind(String clsName, ReflectionGeneratorContext params) throws UnableToCompleteException { // generate params.getLogger().log(Type.INFO, "Binding magic class for " + clsName); // JType type = params.getClazz().getRefType(); JDeclaredType type = params.getAst().searchForTypeBySource(params.getClazz().getRefType().getName()); StandardGeneratorContext ctx = params.getGeneratorContext(); Class<? extends Generator> generator = MagicClassGenerator.class; String result = ctx.runGenerator(params.getLogger(), generator, SourceUtil.toSourceName(type.getName())); ctx.finish(params.getLogger()); params.getLogger().log(Type.INFO, "Generated Class Enhancer: " + result); JDeclaredType success = params.getAst().searchForTypeBySource(result); //Okay, we've generated the correct magic class subtype; //Now pull off its static accessor method to grab our generated class. for (JMethod method : success.getMethods()) { if (method.isStatic() && method.getName().equals("enhanceClass")) { JMethodCall call = new JMethodCall(method.getSourceInfo(), null, method); call.addArg(params.getClazz().makeStatement().getExpr()); return call; } } params.getLogger().log(Type.ERROR, "Unable to load "+result+".enhanceClass()"); throw new UnableToCompleteException(); }
params.getAst().getGeneratorContext().setCurrentRebindBinaryTypeName(clsName); ctx.finish(params.getLogger());
public SourceBuilder<?> tryCreate(final int modifier, final String pkg, final String clsName) { final String fqcn = pkg + "." + clsName; SourceBuilder<PrintWriter> builder = builders.get(fqcn); if (builder == null) { final StandardGeneratorContext ctx = getGeneratorContext(); final PrintWriter writer = ctx.tryCreate(getLogger(), pkg, clsName); if (writer == null) { return null; } builder = new SourceBuilder<PrintWriter> (Modifier.toString(modifier)+" class "+clsName); builder.setPackage(pkg); builder.setPayload(writer); builders.put(fqcn, builder); } return builder; }
protected boolean shouldFailIfMissing(TreeLogger logger, UnifyAstView ast, JClassLiteral classLit) { PropertyOracle properties = ast.getGeneratorContext().getPropertyOracle(); try { if ("true".equals(properties.getConfigurationProperty("gwt.reflect.never.fail").getValues().get(0))) { return false; } } catch (BadPropertyValueException e) { e.printStackTrace(); return false; } return true; }
final RebindResult rebindResult = ctx.runGeneratorIncrementally(logger, generator, type.getName()); ctx.finish(logger);
Event rebindEvent = SpeedTracerLogger.start(DevModeEventType.REBIND, "Type Name", typeName); try { genCtx.setPropertyOracle(propOracle); genCtx.setRebindRuleResolver(this); Rule rule = getRebindRule(logger, typeName); genCtx.setCachedGeneratorResult(cachedResult); ArtifactSet newlyGeneratedArtifacts = genCtx.finish(logger); if (!newlyGeneratedArtifacts.isEmpty()) { artifactAcceptor.accept(logger, newlyGeneratedArtifacts);
PrintWriter printWriter = context.tryCreate(logger, packageName, generatedName); int unique = 0; String next = generatedName; while(printWriter == null){ next = generatedName+"_"+unique++; printWriter = context.tryCreate(logger, packageName, next); System.err.println("Trying for new name: "+packageName+"."+next); context.commit(logger, printWriter);
public SourceBuilder<?> tryCreate(int modifier, String pkg, String clsName) { String fqcn = pkg + "." + clsName; SourceBuilder<PrintWriter> builder = builders.get(fqcn); if (builder == null) { StandardGeneratorContext ctx = getGeneratorContext(); PrintWriter writer = ctx.tryCreate(getLogger(), pkg, clsName); if (writer == null) { return null; } builder = new SourceBuilder<PrintWriter> (Modifier.toString(modifier)+" class "+clsName); builder.setPackage(pkg); builder.setPayload(writer); builders.put(fqcn, builder); } return builder; }
PropertyOracle props = rpo.getGeneratorContext().getPropertyOracle(); ConfigurationProperty methods = props.getConfigurationProperty("gwt.magic.methods"); Map<Class<?>, MagicMethodGenerator> generators = new HashMap<Class<?>, MagicMethodGenerator>();
try { answers = Lists.create(rpo.getAllPossibleRebindAnswers(logger, reqType)); rpo.getGeneratorContext().finish(logger); } catch (UnableToCompleteException e) { error(x, "Failed to resolve '" + reqType + "' via deferred binding");
final RebindResult result = ctx.runGeneratorIncrementally(logger, generator, type.getName()); ctx.finish(logger);