1
2
3
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 }