3131import static dagger .internal .codegen .javapoet .AnnotationSpecs .Suppression .RAWTYPES ;
3232import static dagger .internal .codegen .javapoet .AnnotationSpecs .Suppression .UNCHECKED ;
3333import static dagger .internal .codegen .javapoet .AnnotationSpecs .suppressWarnings ;
34- import static dagger .internal .codegen .javapoet .CodeBlocks .makeParametersCodeBlock ;
3534import static dagger .internal .codegen .javapoet .CodeBlocks .parameterNames ;
3635import static dagger .internal .codegen .javapoet .TypeNames .factoryOf ;
3736import static dagger .internal .codegen .model .BindingKind .INJECTION ;
4948import com .google .common .collect .ImmutableList ;
5049import com .google .common .collect .ImmutableMap ;
5150import com .google .common .collect .ImmutableSet ;
52- import com .google .common .collect .Lists ;
5351import com .squareup .javapoet .AnnotationSpec ;
5452import com .squareup .javapoet .ClassName ;
5553import com .squareup .javapoet .CodeBlock ;
5654import com .squareup .javapoet .FieldSpec ;
5755import com .squareup .javapoet .MethodSpec ;
5856import com .squareup .javapoet .ParameterSpec ;
59- import com .squareup .javapoet .ParameterizedTypeName ;
6057import com .squareup .javapoet .TypeName ;
6158import com .squareup .javapoet .TypeSpec ;
6259import dagger .internal .codegen .base .SourceFileGenerator ;
7673import dagger .internal .codegen .model .Scope ;
7774import dagger .internal .codegen .writing .InjectionMethods .InjectionSiteMethod ;
7875import dagger .internal .codegen .writing .InjectionMethods .ProvisionMethod ;
79- import java .util .List ;
8076import java .util .Optional ;
8177import java .util .stream .Stream ;
8278import javax .inject .Inject ;
@@ -139,7 +135,7 @@ private TypeSpec.Builder factoryBuilder(ContributionBinding binding) {
139135
140136 return factoryBuilder
141137 .addMethod (getMethod (binding , factoryFields ))
142- .addMethods (staticCreateMethod (binding , factoryFields ))
138+ .addMethod (staticCreateMethod (binding , factoryFields ))
143139 .addMethod (staticProvisionMethod (binding ));
144140 }
145141
@@ -197,12 +193,10 @@ private MethodSpec constructorMethod(FactoryFields factoryFields) {
197193 // Provider<Baz> bazProvider) {
198194 // return new FooModule_ProvidesFooFactory(module, barProvider, bazProvider);
199195 // }
200- private ImmutableList <MethodSpec > staticCreateMethod (
201- ContributionBinding binding , FactoryFields factoryFields ) {
196+ private MethodSpec staticCreateMethod (ContributionBinding binding , FactoryFields factoryFields ) {
202197 // We use a static create method so that generated components can avoid having to refer to the
203198 // generic types of the factory. (Otherwise they may have visibility problems referring to the
204199 // types.)
205- ImmutableList .Builder <MethodSpec > methodsBuilder = ImmutableList .builder ();
206200 MethodSpec .Builder createMethodBuilder =
207201 methodBuilder ("create" )
208202 .addModifiers (PUBLIC , STATIC )
@@ -225,32 +219,8 @@ private ImmutableList<MethodSpec> staticCreateMethod(
225219 "return new $T($L)" ,
226220 parameterizedGeneratedTypeNameForBinding (binding ),
227221 parameterNames (parameters ));
228- // If any of the parameters take a Dagger Provider type, we also need to make a
229- // Javax Provider type for backwards compatibility with components generated at
230- // an older version.
231- // Eventually, we will need to remove this and break backwards compatibility
232- // in order to fully cut the Javax dependency.
233- if (hasDaggerProviderParams (parameters )) {
234- methodsBuilder .add (javaxCreateMethod (binding , parameters ));
235- }
236222 }
237- methodsBuilder .add (createMethodBuilder .build ());
238- return methodsBuilder .build ();
239- }
240-
241- private MethodSpec javaxCreateMethod (
242- ContributionBinding binding , ImmutableList <ParameterSpec > parameters ) {
243- ImmutableList <ParameterSpec > remappedParams = remapParamsToJavaxProvider (parameters );
244- return methodBuilder ("create" )
245- .addModifiers (PUBLIC , STATIC )
246- .returns (parameterizedGeneratedTypeNameForBinding (binding ))
247- .addTypeVariables (bindingTypeElementTypeVariableNames (binding ))
248- .addParameters (remappedParams )
249- .addStatement (
250- "return new $T($L)" ,
251- parameterizedGeneratedTypeNameForBinding (binding ),
252- wrappedParametersCodeBlock (remappedParams ))
253- .build ();
223+ return createMethodBuilder .build ();
254224 }
255225
256226 // Example 1: Provision binding.
@@ -409,54 +379,6 @@ private static Optional<TypeName> factoryTypeName(ContributionBinding binding) {
409379 : Optional .of (factoryOf (providedTypeName (binding )));
410380 }
411381
412- // Open for sharing with ProducerFactoryGenerator and MembersInjectorGenerator
413- static boolean hasDaggerProviderParams (List <ParameterSpec > params ) {
414- return params .stream ().anyMatch (param -> isDaggerProviderType (param .type ));
415- }
416-
417- // Open for sharing with ProducerFactoryGenerator and MembersInjectorGenerator
418- // Returns a code block that represents a parameter list where any javax Provider
419- // types are wrapped in an asDaggerProvider call
420- static CodeBlock wrappedParametersCodeBlock (List <ParameterSpec > params ) {
421- return makeParametersCodeBlock (
422- Lists .transform (
423- params ,
424- input ->
425- isProviderType (input .type )
426- ? CodeBlock .of (
427- "$T.asDaggerProvider($N)" , TypeNames .DAGGER_PROVIDERS , input )
428- : CodeBlock .of ("$N" , input )));
429- }
430-
431- // Open for sharing with ProducerFactoryGenerator and MembersInjectorGenerator
432- static ImmutableList <ParameterSpec > remapParamsToJavaxProvider (List <ParameterSpec > params ) {
433- return params .stream ()
434- .map (param -> ParameterSpec .builder (
435- remapDaggerProviderToProvider (param .type ), param .name ).build ())
436- .collect (toImmutableList ());
437- }
438-
439- private static boolean isDaggerProviderType (TypeName type ) {
440- return type instanceof ParameterizedTypeName
441- && ((ParameterizedTypeName ) type ).rawType .equals (TypeNames .DAGGER_PROVIDER );
442- }
443-
444- private static boolean isProviderType (TypeName type ) {
445- return type instanceof ParameterizedTypeName
446- && ((ParameterizedTypeName ) type ).rawType .equals (TypeNames .PROVIDER );
447- }
448-
449- private static TypeName remapDaggerProviderToProvider (TypeName type ) {
450- if (type instanceof ParameterizedTypeName ) {
451- ParameterizedTypeName parameterizedTypeName = (ParameterizedTypeName ) type ;
452- if (parameterizedTypeName .rawType .equals (TypeNames .DAGGER_PROVIDER )) {
453- return ParameterizedTypeName .get (
454- TypeNames .PROVIDER , parameterizedTypeName .typeArguments .toArray (new TypeName [0 ]));
455- }
456- }
457- return type ;
458- }
459-
460382 /** Represents the available fields in the generated factory class. */
461383 private static final class FactoryFields {
462384 static FactoryFields create (ContributionBinding binding ) {
0 commit comments