/** * Makes the given class visitor visit this inner class. * * @param cv * a class visitor. */ public void accept(final ClassVisitor cv) { cv.visitInnerClass(name, outerName, innerName, access); } }
/** * Visits information about an inner class. This inner class is not * necessarily a member of the class being visited. * * @param name * the internal name of an inner class (see * {@link Type#getInternalName() getInternalName}). * @param outerName * the internal name of the class to which the inner class * belongs (see {@link Type#getInternalName() getInternalName}). * May be <tt>null</tt> for not member classes. * @param innerName * the (simple) name of the inner class inside its enclosing * class. May be <tt>null</tt> for anonymous inner classes. * @param access * the access flags of the inner class as originally declared in * the enclosing class. */ public void visitInnerClass(String name, String outerName, String innerName, int access) { if (cv != null) { cv.visitInnerClass(name, outerName, innerName, access); } }
/** * Handle a bizarre special case. Nested classes (static classes declared * inside another class) that are protected have their access bit set to * public in their class files to deal with some odd reflection situation. * Our SVUID computation must do as the JVM does and ignore access bits in * the class file in favor of the access bits InnerClass attribute. */ @Override public void visitInnerClass(final String aname, final String outerName, final String innerName, final int attr_access) { if ((name != null) && name.equals(aname)) { this.access = attr_access; } super.visitInnerClass(aname, outerName, innerName, attr_access); }
@Override public void visitInnerClass(final String name, final String outerName, final String innerName, final int access) { p.visitInnerClass(name, outerName, innerName, access); super.visitInnerClass(name, outerName, innerName, access); }
@Override public void visitInnerClass(String name, String outerName, String innerName, int access) { if(name.equals(LOOKUP_TYPE.getInternalName()) && outerName.equals(HANDLES_TYPE.getInternalName()) && LOOKUP_NAME.equals(innerName)) { lambadaInnerClassVisited = true; } super.visitInnerClass(name, outerName, innerName, access); }
@Override public void visitInnerClass(String name, String outerName, String innerName, int access) { if(!this.className.equals(name) && name.startsWith(this.className + "$")) { innerClasses.add(Type.getObjectType(name).getClassName()); } super.visitInnerClass(name, outerName, innerName, access); }
@Override public void visitInnerClass(String name, String outerName, String innerName, int access) { // TODO should innerName be changed? super.visitInnerClass(remapper.mapType(name), outerName == null ? null : remapper.mapType(outerName), innerName, access); }
int v = innerClasses + 2; for (int i = readUnsignedShort(innerClasses); i > 0; --i) { classVisitor.visitInnerClass(readClass(v, c), readClass(v + 2, c), readUTF8(v + 4, c), readUnsignedShort(v + 6));