Home | History | Annotate | Download | only in nullables
      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