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 }