View Javadoc
1   /*
2    * MIT License
3    * Copyright (c) 2006-2025 JMockit developers
4    * See LICENSE file for full license text.
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  }