aboutsummaryrefslogtreecommitdiff
path: root/javatests/dagger/internal/codegen/goldens/ComponentShardTest_testNewShardCreatedWithDependencies_DEFAULT_MODE_dagger.internal.codegen.DaggerTestComponent
blob: d5a2af09667a1727ab0e4fc6f8a2084972b51547 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
package dagger.internal.codegen;

import dagger.internal.DaggerGenerated;
import dagger.internal.DoubleCheck;
import dagger.internal.Preconditions;
import javax.annotation.processing.Generated;
import javax.inject.Provider;

@DaggerGenerated
@Generated(
    value = "dagger.internal.codegen.ComponentProcessor",
    comments = "https://dagger.dev"
)
@SuppressWarnings({
    "unchecked",
    "rawtypes",
    "KotlinInternal",
    "KotlinInternalInJava"
})
final class DaggerTestComponent {
  private DaggerTestComponent() {
  }

  public static Builder builder() {
    return new Builder();
  }

  static final class Builder {
    private Dependency dependency;

    private Builder() {
    }

    public Builder dependency(Dependency dependency) {
      this.dependency = Preconditions.checkNotNull(dependency);
      return this;
    }

    public TestComponent build() {
      Preconditions.checkBuilderRequirement(dependency, Dependency.class);
      return new TestComponentImpl(dependency);
    }
  }

  private static final class TestComponentImpl implements TestComponent {
    private TestComponentImplShard testComponentImplShard;

    private final Dependency dependency;

    private final TestComponentImpl testComponentImpl = this;

    private Provider<Binding1> binding1Provider;

    private Provider<Binding2> binding2Provider;

    private TestComponentImpl(Dependency dependencyParam) {
      this.dependency = dependencyParam;
      initialize(dependencyParam);
      testComponentImplShard = new TestComponentImplShard(testComponentImpl, dependencyParam);
    }

    @SuppressWarnings("unchecked")
    private void initialize(final Dependency dependencyParam) {
      this.binding1Provider = DoubleCheck.provider(Binding1_Factory.create());
      this.binding2Provider = DoubleCheck.provider(Binding2_Factory.create());
    }

    @Override
    public Binding1 binding1() {
      return binding1Provider.get();
    }

    @Override
    public Binding2 binding2() {
      return binding2Provider.get();
    }

    @Override
    public Binding3 binding3() {
      return Preconditions.checkNotNullFromComponent(dependency.binding3());
    }

    @Override
    public Provider<Binding1> providerBinding1() {
      return binding1Provider;
    }

    @Override
    public Provider<Binding2> providerBinding2() {
      return binding2Provider;
    }

    @Override
    public Provider<Binding3> providerBinding3() {
      return testComponentImpl.testComponentImplShard.binding3Provider;
    }

    private static final class Binding3Provider implements Provider<Binding3> {
      private final Dependency dependency;

      Binding3Provider(Dependency dependency) {
        this.dependency = dependency;
      }

      @Override
      public Binding3 get() {
        return Preconditions.checkNotNullFromComponent(dependency.binding3());
      }
    }
  }

  private static final class TestComponentImplShard {
    private final TestComponentImpl testComponentImpl;

    private Provider<Binding3> binding3Provider;

    private TestComponentImplShard(TestComponentImpl testComponentImpl,
        Dependency dependencyParam) {
      this.testComponentImpl = testComponentImpl;
      initialize(dependencyParam);
    }

    @SuppressWarnings("unchecked")
    private void initialize(final Dependency dependencyParam) {
      this.binding3Provider = new TestComponentImpl.Binding3Provider(testComponentImpl.dependency);
    }
  }
}