View Javadoc
1   package mockit.asm.classes;
2   
3   import edu.umd.cs.findbugs.annotations.NonNull;
4   import edu.umd.cs.findbugs.annotations.Nullable;
5   
6   /**
7    * Holds additional information about a classfile: {@link #signature}, {@link #superName}, {@link #interfaces},
8    * {@link #hostClassName}.
9    */
10  public final class ClassInfo {
11      private static final String[] NO_INTERFACES = {};
12  
13      /**
14       * The internal names of the class's interfaces, if any.
15       */
16      @NonNull
17      public String[] interfaces = NO_INTERFACES;
18  
19      /**
20       * The internal name of the super class. For interfaces, the super class is {@link Object}. Is <code>null</code>
21       * only for the {@link Object} class.
22       */
23      @Nullable
24      public String superName;
25  
26      /**
27       * The generic signature of the class. Is <code>null</code> when the class is not a generic one, and does not extend
28       * or implement generic classes or interfaces.
29       */
30      @Nullable
31      public String signature;
32  
33      /**
34       * The name of the source file from which the class was compiled, if available.
35       */
36      @Nullable
37      public String sourceFileName;
38  
39      /**
40       * The internal name of the host class, if the class is part of a nest (Java 11+ only).
41       */
42      @Nullable
43      String hostClassName;
44  
45      /**
46       * The names of the classes that are members of the nest defined by the nest host class, if any (Java 11+ only).
47       */
48      @Nullable
49      String[] nestMembers;
50  }