diff --git a/java/dagger/android/processor/AndroidProcessor.java b/java/dagger/android/processor/AndroidProcessor.java index 357f7dea4e1..c664a5870eb 100644 --- a/java/dagger/android/processor/AndroidProcessor.java +++ b/java/dagger/android/processor/AndroidProcessor.java @@ -53,10 +53,17 @@ public final class AndroidProcessor extends BasicAnnotationProcessor { private static final String FLAG_EXPERIMENTAL_USE_STRING_KEYS = "dagger.android.experimentalUseStringKeys"; + private static final String FLAG_FORMAT_GENERATED_SOURCES = + "dagger.formatGeneratedSource"; @Override protected Iterable steps() { - Filer filer = new FormattingFiler(processingEnv.getFiler()); + Filer filer; + if (formatGeneratedSources()) { + filer = new FormattingFiler(processingEnv.getFiler()); + } else { + filer = processingEnv.getFiler(); + } Messager messager = processingEnv.getMessager(); Elements elements = processingEnv.getElementUtils(); Types types = processingEnv.getTypeUtils(); @@ -92,6 +99,27 @@ private boolean useStringKeys() { } } + private boolean formatGeneratedSources() { + if (!processingEnv.getOptions().containsKey(FLAG_FORMAT_GENERATED_SOURCES)) { + return false; + } + String flagValue = processingEnv.getOptions().get(FLAG_FORMAT_GENERATED_SOURCES); + if (Ascii.equalsIgnoreCase(flagValue, "enabled")) { + return true; + } else if (flagValue == null || Ascii.equalsIgnoreCase(flagValue, "disabled")) { + return false; + } else { + processingEnv + .getMessager() + .printMessage( + ERROR, + String.format( + "Unknown flag value: %s. %s must be set to either 'enabled' or 'disabled'.", + flagValue, FLAG_FORMAT_GENERATED_SOURCES)); + return false; + } + } + @Override public Set getSupportedOptions() { return ImmutableSet.of(FLAG_EXPERIMENTAL_USE_STRING_KEYS);