View Javadoc
1   /*
2    * Copyright (c) 2006 JMockit developers
3    * This file is subject to the terms of the MIT license (see LICENSE.txt).
4    */
5   package mockit.internal.injection.field;
6   
7   import edu.umd.cs.findbugs.annotations.NonNull;
8   
9   import java.lang.annotation.Annotation;
10  import java.lang.reflect.Field;
11  
12  import mockit.internal.injection.InjectionPoint;
13  import mockit.internal.injection.InjectionPoint.KindOfInjectionPoint;
14  import mockit.internal.injection.InjectionProvider;
15  
16  public final class FieldToInject extends InjectionProvider {
17      @NonNull
18      private final Field targetField;
19      @NonNull
20      private final KindOfInjectionPoint kindOfInjectionPoint;
21  
22      public FieldToInject(@NonNull Field targetField) {
23          super(targetField.getGenericType(), targetField.getName());
24          this.targetField = targetField;
25          kindOfInjectionPoint = InjectionPoint.kindOfInjectionPoint(targetField);
26      }
27  
28      @NonNull
29      @Override
30      public Class<?> getClassOfDeclaredType() {
31          return targetField.getType();
32      }
33  
34      @NonNull
35      @Override
36      public Annotation[] getAnnotations() {
37          return targetField.getDeclaredAnnotations();
38      }
39  
40      @Override
41      public boolean isRequired() {
42          return kindOfInjectionPoint == KindOfInjectionPoint.Required;
43      }
44  
45      @Override
46      public String toString() {
47          return "field " + super.toString();
48      }
49  }