1 /* 2 * Copyright (C) 2015 Google, Inc. 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 package test.nullables; 17 18 import javax.inject.Inject; 19 import javax.inject.Provider; 20 21 class NullFoo { 22 final String string; 23 final Provider<String> stringProvider; 24 final Number number; 25 final Provider<Number> numberProvider; 26 27 @Inject 28 NullFoo(@Nullable String string, 29 Provider<String> stringProvider, 30 Number number, 31 Provider<Number> numberProvider) { 32 this.string = string; 33 this.stringProvider = stringProvider; 34 this.number = number; 35 this.numberProvider = numberProvider; 36 } 37 38 String methodInjectedString; 39 Provider<String> methodInjectedStringProvider; 40 Number methodInjectedNumber; 41 Provider<Number> methodInjectedNumberProvider; 42 @Inject void inject(@Nullable String string, 43 Provider<String> stringProvider, 44 Number number, 45 Provider<Number> numberProvider) { 46 this.methodInjectedString = string; 47 this.methodInjectedStringProvider = stringProvider; 48 this.methodInjectedNumber = number; 49 this.methodInjectedNumberProvider = numberProvider; 50 } 51 52 @Nullable @Inject String fieldInjectedString; 53 @Inject Provider<String> fieldInjectedStringProvider; 54 @Inject Number fieldInjectedNumber; 55 @Inject Provider<Number> fieldInjectedNumberProvider; 56 } 57