@Override
protected String generate(final TreeLogger treeLogger, final GeneratorContext context) {
logger.info("Generating {}.{}...", SERIALIZER_PACKAGE_NAME, SERIALIZER_CLASS_NAME);
final String source = NonGwtEventQualifierSerializerGenerator.generateSource(TranslatableAnnotationUtils.getTranslatableQualifiers(context.getTypeOracle()));
logger.info("Generating class file for server.");
if (EnvUtil.isProdMode()) {
if (OutputDirectoryUtil.OUTPUT_DIR.isPresent()) {
logger.info("Output directory set to {}. Attempting to write class file to this directory.", OutputDirectoryUtil.OUTPUT_DIR.get());
generateAndWriteToDir(OutputDirectoryUtil.OUTPUT_DIR.get(), source);
}
else {
logger.info("No output directory set. Attempting to discover target directory and write class file.");
generateAndWriteToDiscoveredDirs(context, source);
}
}
else {
logger.info("Running in JUnit or Classic Dev Mode. Attempting to generate class in tmp directory {}", OUTPUT_TMP);
final String tmpPath = new File(OUTPUT_TMP).getAbsolutePath();
OutputDirectoryUtil.generateClassFileInTmpDir(SERIALIZER_PACKAGE_NAME, SERIALIZER_CLASS_NAME, source, tmpPath);
}
return source;
}