xref: /aosp_15_r20/external/dagger2/javatests/dagger/functional/kotlinsrc/binds/TestComponent.kt (revision f585d8a307d0621d6060bd7e80091fdcbf94fe27)
1 /*
2  * Copyright (C) 2022 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.kotlinsrc.binds
18 
19 import dagger.Component
20 import dagger.functional.kotlinsrc.binds.subpackage.ExposedModule
21 import javax.inject.Provider
22 import javax.inject.Singleton
23 
24 @Singleton
25 @Component(modules = [SimpleBindingModule::class, ExposedModule::class])
26 interface TestComponent {
someObjectnull27   fun someObject(): Any
28 
29   fun notExposedString(): String
30 
31   @SomeQualifier fun reusableObject(): Any
32 
33   fun fooOfStrings(): Foo<String>
34 
35   fun fooOfObjects(): Foo<Any>
36 
37   @SomeQualifier fun qualifiedFooOfStrings(): Foo<String>
38 
39   fun fooOfIntegers(): Foo<Int>
40 
41   fun foosOfNumbers(): Set<Foo<out Number>>
42 
43   fun someObjects(): Set<Any>
44 
45   fun charSequences(): Set<CharSequence>
46 
47   fun integerObjectMap(): Map<Int, Any>
48 
49   fun integerProviderOfObjectMap(): Map<Int, Provider<Any>>
50 
51   @SomeQualifier fun qualifiedIntegerObjectMap(): Map<Int, Any>
52 
53   @SomeQualifier fun uniquePrimitive(): Int
54 
55   fun primitiveSet(): Set<Int>
56 
57   fun primitiveValueMap(): Map<Int, Int>
58 }
59