1 /*
2  * Copyright (C) 2015 The Dagger Authors.
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 
17 package dagger.functional.sub;
18 
19 import dagger.Lazy;
20 import dagger.functional.Generic;
21 import dagger.functional.Generic2;
22 import javax.inject.Inject;
23 import javax.inject.Provider;
24 
25 public class Exposed {
26 
27   @Inject public PackagePrivate pp2;
28   @Inject public Provider<PackagePrivate> ppp2;
29   @Inject public Lazy<PackagePrivate> lpp2;
30   @Inject public Provider<Lazy<PackagePrivate>> plpp2;
31   @Inject public Generic2<PackagePrivate> gpp2;
32   @Inject public Generic2<PackagePrivateContainer.PublicEnclosed> gppc2;
33   @Inject public Provider<Generic2<PackagePrivate>> pgpp2;
34   @Inject public Lazy<Generic2<PackagePrivate>> lgpp2;
35   @Inject public Provider<Lazy<Generic2<PackagePrivate>>> plgpp2;
36 
37   public PackagePrivate pp;
38   public Provider<PackagePrivate> ppp;
39   public Lazy<PackagePrivate> lpp;
40   public Provider<Lazy<PackagePrivate>> plpp;
41   public Generic<PackagePrivate> gpp;
42   public Generic<PackagePrivateContainer.PublicEnclosed> gppc;
43   public Provider<Generic<PackagePrivate>> pgpp;
44   public Lazy<Generic<PackagePrivate>> lgpp;
45   public Provider<Lazy<Generic<PackagePrivate>>> plgpp;
46 
47   /** Injects inaccessible dependencies to test casting of these dependency arguments. */
Exposed( PackagePrivate pp, Provider<PackagePrivate> ppp, Lazy<PackagePrivate> lpp, Provider<Lazy<PackagePrivate>> plpp, Generic<PackagePrivate> gpp, Generic<PackagePrivateContainer.PublicEnclosed> gppc, Provider<Generic<PackagePrivate>> pgpp, Lazy<Generic<PackagePrivate>> lgpp, Provider<Lazy<Generic<PackagePrivate>>> plgpp)48   @Inject Exposed(
49       PackagePrivate pp,
50       Provider<PackagePrivate> ppp,
51       Lazy<PackagePrivate> lpp,
52       Provider<Lazy<PackagePrivate>> plpp,
53       Generic<PackagePrivate> gpp,
54       Generic<PackagePrivateContainer.PublicEnclosed> gppc,
55       Provider<Generic<PackagePrivate>> pgpp,
56       Lazy<Generic<PackagePrivate>> lgpp,
57       Provider<Lazy<Generic<PackagePrivate>>> plgpp) {
58     this.pp = pp;
59     this.ppp = ppp;
60     this.lpp = lpp;
61     this.plpp = plpp;
62     this.gpp = gpp;
63     this.gppc = gppc;
64     this.pgpp = pgpp;
65     this.lgpp = lgpp;
66     this.plgpp = plgpp;
67   }
68 }
69