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