Skip to content

Commit 165cf20

Browse files
bcorsoDagger Team
authored andcommitted
Change Dagger generated Factory/MembersInjector constructors from public to private.
These classes have public `create` methods that should be used instead of the constructors. This is part of an effort to minimize the public API of our generated classes to align with requirements for Kotlin codegen. RELNOTES=Change Dagger generated Factory/MembersInjector constructors from public to private. PiperOrigin-RevId: 764757731
1 parent 7603d7c commit 165cf20

File tree

89 files changed

+108
-100
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

89 files changed

+108
-100
lines changed

dagger-compiler/main/java/dagger/internal/codegen/writing/FactoryGenerator.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -181,7 +181,7 @@ private static XClassName instanceHolderClassName(ContributionBinding binding) {
181181
return generatedClassNameForBinding(binding).nestedClass("InstanceHolder");
182182
}
183183

184-
// public FooModule_ProvidesFooFactory(
184+
// private FooModule_ProvidesFooFactory(
185185
// FooModule module,
186186
// Provider<Bar> barProvider,
187187
// Provider<Baz> bazProvider) {
@@ -190,8 +190,7 @@ private static XClassName instanceHolderClassName(ContributionBinding binding) {
190190
// this.bazProvider = bazProvider;
191191
// }
192192
private XFunSpec constructorMethod(FactoryFields factoryFields) {
193-
// TODO(bcorso): Make the constructor private?
194-
XFunSpecs.Builder constructor = constructorBuilder().addModifiers(PUBLIC);
193+
XFunSpecs.Builder constructor = constructorBuilder().addModifiers(PRIVATE);
195194
factoryFields
196195
.getAll()
197196
.forEach(

dagger-compiler/main/java/dagger/internal/codegen/writing/MembersInjectorGenerator.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@
4444
import static dagger.internal.codegen.xprocessing.XTypeElements.typeVariableNames;
4545
import static dagger.internal.codegen.xprocessing.XTypeNames.membersInjectorOf;
4646
import static javax.lang.model.element.Modifier.FINAL;
47+
import static javax.lang.model.element.Modifier.PRIVATE;
4748
import static javax.lang.model.element.Modifier.PUBLIC;
4849
import static javax.lang.model.element.Modifier.STATIC;
4950

@@ -227,7 +228,7 @@ private static XCodeBlock copyInstance(
227228
return useObject ? XCodeBlock.of("(%L)", instance) : instance;
228229
}
229230

230-
// MyClass(
231+
// private MyClass_MembersInjector(
231232
// Provider<Dep1> dep1Provider,
232233
// Provider<Dep2> dep2Provider,
233234
// // Note: The raw type can happen if Dep3 is injected in a super type and not accessible to
@@ -241,7 +242,7 @@ private static XCodeBlock copyInstance(
241242
private XFunSpec constructor(ImmutableMap<DependencyRequest, XPropertySpec> frameworkFields) {
242243
ImmutableList<XParameterSpec> parameters = constructorParameters(frameworkFields);
243244
return constructorBuilder()
244-
.addModifiers(PUBLIC)
245+
.addModifiers(PRIVATE)
245246
.addParameters(parameters)
246247
.addCode(
247248
parameters.stream()

javatests/dagger/functional/kotlinsrc/membersinject/MembersInjectTest.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,7 @@ class MembersInjectTest {
7979
fun testNonRequestedMembersInjector() {
8080
val child = NonRequestedChild()
8181
val provider = Provider { "field!" }
82-
val injector = NonRequestedChild_MembersInjector(provider)
82+
val injector = NonRequestedChild_MembersInjector.create(provider)
8383
injector.injectMembers(child)
8484
assertThat(child.t).isEqualTo("field!")
8585
}

javatests/dagger/functional/membersinject/MembersInjectTest.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,8 @@ public String get() {
9090
return "field!";
9191
}
9292
};
93-
MembersInjector<NonRequestedChild> injector = new NonRequestedChild_MembersInjector(provider);
93+
MembersInjector<NonRequestedChild> injector =
94+
NonRequestedChild_MembersInjector.create(provider);
9495
injector.injectMembers(child);
9596
assertThat(child.t).isEqualTo("field!");
9697
}

javatests/dagger/internal/codegen/ModuleFactoryGeneratorTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -392,7 +392,7 @@ public void kotlinNullableProvides() {
392392
+ " Factory<String> {",
393393
" private final TestModule module;",
394394
"",
395-
" public TestModule_ProvideStringFactory(TestModule module) {",
395+
" private TestModule_ProvideStringFactory(TestModule module) {",
396396
" this.module = module;",
397397
" }",
398398
"",

javatests/dagger/internal/codegen/goldens/AssistedFactoryTest_testFactoryGeneratorDuplicatedParamNames_DEFAULT_MODE_test.Foo_Factory

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ import javax.annotation.processing.Generated;
2525
public final class Foo_Factory {
2626
private final Provider<Bar> argProvider;
2727

28-
public Foo_Factory(Provider<Bar> argProvider) {
28+
private Foo_Factory(Provider<Bar> argProvider) {
2929
this.argProvider = argProvider;
3030
}
3131

javatests/dagger/internal/codegen/goldens/AssistedFactoryTest_testFactoryGeneratorDuplicatedParamNames_FAST_INIT_MODE_test.Foo_Factory

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ import javax.annotation.processing.Generated;
2525
public final class Foo_Factory {
2626
private final Provider<Bar> argProvider;
2727

28-
public Foo_Factory(Provider<Bar> argProvider) {
28+
private Foo_Factory(Provider<Bar> argProvider) {
2929
this.argProvider = argProvider;
3030
}
3131

javatests/dagger/internal/codegen/goldens/InjectConstructorFactoryGeneratorTest_basicNameCollision_test.InjectConstructor_Factory

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ import javax.annotation.processing.Generated;
2626
public final class InjectConstructor_Factory implements Factory<InjectConstructor> {
2727
private final Provider<other.pkg.Factory> factoryProvider;
2828

29-
public InjectConstructor_Factory(Provider<other.pkg.Factory> factoryProvider) {
29+
private InjectConstructor_Factory(Provider<other.pkg.Factory> factoryProvider) {
3030
this.factoryProvider = factoryProvider;
3131
}
3232

javatests/dagger/internal/codegen/goldens/InjectConstructorFactoryGeneratorTest_boundedGenerics_test.GenericClass_Factory

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,8 @@ public final class GenericClass_Factory<A extends Number & Comparable<A>, B exte
3131

3232
private final Provider<C> cProvider;
3333

34-
public GenericClass_Factory(Provider<A> aProvider, Provider<B> bProvider, Provider<C> cProvider) {
34+
private GenericClass_Factory(Provider<A> aProvider, Provider<B> bProvider,
35+
Provider<C> cProvider) {
3536
this.aProvider = aProvider;
3637
this.bProvider = bProvider;
3738
this.cProvider = cProvider;

javatests/dagger/internal/codegen/goldens/InjectConstructorFactoryGeneratorTest_fieldAndMethodGenerics_test.GenericClass_Factory

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ public final class GenericClass_Factory<A, B> implements Factory<GenericClass<A,
2828

2929
private final Provider<B> bProvider;
3030

31-
public GenericClass_Factory(Provider<A> aProvider, Provider<B> bProvider) {
31+
private GenericClass_Factory(Provider<A> aProvider, Provider<B> bProvider) {
3232
this.aProvider = aProvider;
3333
this.bProvider = bProvider;
3434
}

0 commit comments

Comments
 (0)