public AsyncGenerationJob build() { return new AsyncGenerationJob(this); } }
static Future<String> getFutureFor(final AsyncGenerationJob job) { synchronized (lock) { startAll(job); if (!codeGenerators.containsKey(job.getInterfaceType())) { throw new RuntimeException("no generator found for interface: " + job.getInterfaceType().getName()); } if (activeFutures.containsKey(job.getInterfaceType())) { return activeFutures.get(job.getInterfaceType()); } else { throw new RuntimeException("could not find future for interface: " + job.getInterfaceType().getName()); } } }
private static void notifyStarted(AsyncGenerationJob job) { if (startedNotifiedSet.contains(job)) { return; } startedNotifiedSet.add(job); job.notifyStarted(); } }
private static void startAll(final AsyncGenerationJob job) { synchronized (lock) { if (started && job.getGeneratorContext() != currentContext) { codeGenerators.clear(); activeFutures.clear(); CacheUtil.clearAll(); currentContext = job.getGeneratorContext(); job.getGeneratorContext().getTypeOracle().getType(generateAsync.value().getName()); codeGenerators.put(generateAsync.value(), asyncCodeGenerator); final Future<String> value = entry.getValue().generateAsync(job.getTreeLogger(), job.getGeneratorContext()); activeFutures.put(entry.getKey(), new FutureWrapper(entry.getKey(), value));
final PrintWriter printWriter = context.tryCreate(logger, packageName, className); if (printWriter != null) { final Future<String> future = AsyncGenerationJob.createBuilder() .treeLogger(logger) .generatorContext(context) .build() .submit();
private static void notifyStarting(AsyncGenerationJob job) { if (startingNotifiedSet.contains(job)) { return; } startingNotifiedSet.add(job); job.notifyStarting(); }
private static void startAll(final AsyncGenerationJob job) { synchronized (lock) { if (started && job.getGeneratorContext() != currentContext) { codeGenerators.clear(); activeFutures.clear(); CacheUtil.clearAll(); currentContext = job.getGeneratorContext(); job.getGeneratorContext().getTypeOracle().getType(generateAsync.value().getName()); codeGenerators.put(generateAsync.value(), asyncCodeGenerator); final Future<String> value = entry.getValue().generateAsync(job.getTreeLogger(), job.getGeneratorContext()); activeFutures.put(entry.getKey(), new FutureWrapper(entry.getKey(), value));
final PrintWriter printWriter = context.tryCreate(logger, packageName, className); if (printWriter != null) { final Future<String> future = AsyncGenerationJob.createBuilder() .treeLogger(logger) .generatorContext(context) .build() .submit();
private static void notifyStarting(AsyncGenerationJob job) { if (startingNotifiedSet.contains(job)) { return; } startingNotifiedSet.add(job); job.notifyStarting(); }
public AsyncGenerationJob build() { return new AsyncGenerationJob(this); } }
private static void notifyStarted(AsyncGenerationJob job) { if (startedNotifiedSet.contains(job)) { return; } startedNotifiedSet.add(job); job.notifyStarted(); } }
static Future<String> getFutureFor(final AsyncGenerationJob job) { synchronized (lock) { startAll(job); if (!codeGenerators.containsKey(job.getInterfaceType())) { throw new RuntimeException("no generator found for interface: " + job.getInterfaceType().getName()); } if (activeFutures.containsKey(job.getInterfaceType())) { return activeFutures.get(job.getInterfaceType()); } else { throw new RuntimeException("could not find future for interface: " + job.getInterfaceType().getName()); } } }