1 /* 2 * Copyright (C) 2014 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; 18 19 import dagger.Component; 20 import dagger.Lazy; 21 import dagger.MembersInjector; 22 import dagger.functional.NullableModule.Nullable; 23 import javax.inject.Provider; 24 25 @Component(modules = {PrimitivesModule.class, NullableModule.class}) 26 interface BasicComponent 27 extends Injector<Thing>, 28 // Implements two types that define the same method, not overridden here, to test that the 29 // method is implemented only once. 30 ComponentSupertypeOne, 31 ComponentSupertypeTwo { getByte()32 byte getByte(); getChar()33 char getChar(); getShort()34 short getShort(); getInt()35 int getInt(); getLong()36 long getLong(); getBoolean()37 boolean getBoolean(); getFloat()38 float getFloat(); getDouble()39 double getDouble(); 40 getBoxedByte()41 Byte getBoxedByte(); getBoxedChar()42 Character getBoxedChar(); getBoxedShort()43 Short getBoxedShort(); getBoxedInt()44 Integer getBoxedInt(); getBoxedLong()45 Long getBoxedLong(); getBoxedBoolean()46 Boolean getBoxedBoolean(); getBoxedFloat()47 Float getBoxedFloat(); getBoxedDouble()48 Double getBoxedDouble(); 49 getByteProvider()50 Provider<Byte> getByteProvider(); getCharProvider()51 Provider<Character> getCharProvider(); getShortProvider()52 Provider<Short> getShortProvider(); getIntProvider()53 Provider<Integer> getIntProvider(); getLongProvider()54 Provider<Long> getLongProvider(); getBooleanProvider()55 Provider<Boolean> getBooleanProvider(); getFloatProvider()56 Provider<Float> getFloatProvider(); getDoubleProvider()57 Provider<Double> getDoubleProvider(); 58 getByteArray()59 byte[] getByteArray(); getCharArray()60 char[] getCharArray(); getShortArray()61 short[] getShortArray(); getIntArray()62 int[] getIntArray(); getLongArray()63 long[] getLongArray(); getBooleanArray()64 boolean[] getBooleanArray(); getFloatArray()65 float[] getFloatArray(); getDoubleArray()66 double[] getDoubleArray(); 67 getByteArrayProvider()68 Provider<byte[]> getByteArrayProvider(); getCharArrayProvider()69 Provider<char[]> getCharArrayProvider(); getShortArrayProvider()70 Provider<short[]> getShortArrayProvider(); getIntArrayProvider()71 Provider<int[]> getIntArrayProvider(); getLongArrayProvider()72 Provider<long[]> getLongArrayProvider(); getBooleanArrayProvider()73 Provider<boolean[]> getBooleanArrayProvider(); getFloatArrayProvider()74 Provider<float[]> getFloatArrayProvider(); getDoubleArrayProvider()75 Provider<double[]> getDoubleArrayProvider(); 76 noOpMembersInjection(Object obviouslyDoesNotHaveMembersToInject)77 Object noOpMembersInjection(Object obviouslyDoesNotHaveMembersToInject); 78 thing()79 Thing thing(); injectedThing()80 InjectedThing injectedThing(); injectedThingProvider()81 Provider<InjectedThing> injectedThingProvider(); lazyInjectedThing()82 Lazy<InjectedThing> lazyInjectedThing(); lazyInjectedThingProvider()83 Provider<Lazy<InjectedThing>> lazyInjectedThingProvider(); injectedThingMembersInjector()84 MembersInjector<InjectedThing> injectedThingMembersInjector(); 85 nullObject()86 @Nullable Object nullObject(); nullObjectProvider()87 Provider<Object> nullObjectProvider(); lazyNullObject()88 Lazy<Object> lazyNullObject(); 89 typeWithInheritedMembersInjection()90 TypeWithInheritedMembersInjection typeWithInheritedMembersInjection(); 91 MembersInjector<TypeWithInheritedMembersInjection> typeWithInheritedMembersInjectionMembersInjector()92 typeWithInheritedMembersInjectionMembersInjector(); 93 } 94