diff options
Diffstat (limited to 'java/dagger/internal/codegen/writing/MembersInjectorGenerator.java')
-rw-r--r-- | java/dagger/internal/codegen/writing/MembersInjectorGenerator.java | 16 |
1 files changed, 11 insertions, 5 deletions
diff --git a/java/dagger/internal/codegen/writing/MembersInjectorGenerator.java b/java/dagger/internal/codegen/writing/MembersInjectorGenerator.java index 8630ce6ca..df618b070 100644 --- a/java/dagger/internal/codegen/writing/MembersInjectorGenerator.java +++ b/java/dagger/internal/codegen/writing/MembersInjectorGenerator.java @@ -61,6 +61,7 @@ import dagger.internal.codegen.langmodel.DaggerTypes; import dagger.internal.codegen.writing.InjectionMethods.InjectionSiteMethod; import dagger.model.DependencyRequest; import java.util.Map.Entry; +import java.util.Optional; import javax.annotation.processing.Filer; import javax.inject.Inject; import javax.lang.model.SourceVersion; @@ -86,15 +87,20 @@ public final class MembersInjectorGenerator extends SourceFileGenerator<MembersI } @Override + public ClassName nameGeneratedType(MembersInjectionBinding binding) { + return membersInjectorNameForType(binding.membersInjectedType()); + } + + @Override public Element originatingElement(MembersInjectionBinding binding) { return binding.membersInjectedType(); } @Override - public ImmutableList<TypeSpec.Builder> topLevelTypes(MembersInjectionBinding binding) { + public Optional<TypeSpec.Builder> write(MembersInjectionBinding binding) { // Empty members injection bindings are special and don't need source files. if (binding.injectionSites().isEmpty()) { - return ImmutableList.of(); + return Optional.empty(); } // Members injectors for classes with no local injection sites and no @Inject @@ -102,7 +108,7 @@ public final class MembersInjectorGenerator extends SourceFileGenerator<MembersI if (!binding.hasLocalInjectionSites() && injectedConstructors(binding.membersInjectedType()).isEmpty() && assistedInjectedConstructors(binding.membersInjectedType()).isEmpty()) { - return ImmutableList.of(); + return Optional.empty(); } @@ -112,7 +118,7 @@ public final class MembersInjectorGenerator extends SourceFileGenerator<MembersI "tried to generate a MembersInjector for a binding of a resolved generic type: %s", binding); - ClassName generatedTypeName = membersInjectorNameForType(binding.membersInjectedType()); + ClassName generatedTypeName = nameGeneratedType(binding); ImmutableList<TypeVariableName> typeParameters = bindingTypeElementTypeVariableNames(binding); TypeSpec.Builder injectorTypeBuilder = classBuilder(generatedTypeName) @@ -216,6 +222,6 @@ public final class MembersInjectorGenerator extends SourceFileGenerator<MembersI gwtIncompatibleAnnotation(binding).ifPresent(injectorTypeBuilder::addAnnotation); - return ImmutableList.of(injectorTypeBuilder); + return Optional.of(injectorTypeBuilder); } } |