/* * Copyright (C) 2022 The Dagger Authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package dagger.functional.kotlinsrc.basic import dagger.Component import dagger.Lazy import dagger.MembersInjector import javax.inject.Provider @Component(modules = [PrimitivesModule::class, NullableModule::class]) interface BasicComponent : Injector, // Implements two types that define the same method, not overridden here, to test that the // method is implemented only once. ComponentSupertypeOne, ComponentSupertypeTwo { fun byteFun(): Byte fun charFun(): Char fun shortFun(): Short fun intFun(): Int fun longFun(): Long fun booleanFun(): Boolean fun floatFun(): Float fun doubleFun(): Double fun byteProviderFun(): Provider fun charProviderFun(): Provider fun shortProviderFun(): Provider fun intProviderFun(): Provider fun longProviderFun(): Provider fun booleanProviderFun(): Provider fun floatProviderFun(): Provider fun doubleProviderFun(): Provider fun byteArrayFun(): ByteArray fun charArrayFun(): CharArray fun shortArrayFun(): ShortArray fun intArrayFun(): IntArray fun longArrayFun(): LongArray fun booleanArrayFun(): BooleanArray fun floatArrayFun(): FloatArray fun doubleArrayFun(): DoubleArray fun byteArrayProviderFun(): Provider fun charArrayProviderFun(): Provider fun shortArrayProviderFun(): Provider fun intArrayProviderFun(): Provider fun longArrayProviderFun(): Provider fun booleanArrayProviderFun(): Provider fun floatArrayProviderFun(): Provider fun doubleArrayProviderFun(): Provider fun noOpMembersInjectionFun(obviouslyDoesNotHaveMembersToInject: Any): Any fun thingFun(): Thing fun injectedThingFun(): InjectedThing fun injectedThingProviderFun(): Provider fun lazyInjectedThingFun(): Lazy fun lazyInjectedThingProviderFun(): Provider> fun injectedThingMembersInjectorFun(): MembersInjector fun nullObjectFun(): Any? fun nullObjectProviderFun(): Provider fun lazyNullObjectFun(): Lazy fun typeWithInheritedMembersInjectionFun(): TypeWithInheritedMembersInjection fun typeWithInheritedMembersInjectionMembersInjectorFun(): MembersInjector val byteVal: Byte val charVal: Char val shortVal: Short val intVal: Int val longVal: Long val booleanVal: Boolean val floatVal: Float val doubleVal: Double val byteProviderVal: Provider val charProviderVal: Provider val shortProviderVal: Provider val intProviderVal: Provider val longProviderVal: Provider val booleanProviderVal: Provider val floatProviderVal: Provider val doubleProviderVal: Provider val byteArrayVal: ByteArray val charArrayVal: CharArray val shortArrayVal: ShortArray val intArrayVal: IntArray val longArrayVal: LongArray val booleanArrayVal: BooleanArray val floatArrayVal: FloatArray val doubleArrayVal: DoubleArray val byteArrayProviderVal: Provider val charArrayProviderVal: Provider val shortArrayProviderVal: Provider val intArrayProviderVal: Provider val longArrayProviderVal: Provider val booleanArrayProviderVal: Provider val floatArrayProviderVal: Provider val doubleArrayProviderVal: Provider val thingVal: Thing val injectedThingVal: InjectedThing val injectedThingProviderVal: Provider val lazyInjectedThingVal: Lazy val lazyInjectedThingProviderVal: Provider> val injectedThingMembersInjectorVal: MembersInjector val nullObjectVal: Any? val nullObjectProviderVal: Provider val lazyNullObjectVal: Lazy val typeWithInheritedMembersInjectionVal: TypeWithInheritedMembersInjection val typeWithInheritedMembersInjectionMembersInjectorVal: MembersInjector }