public class RewriteOutputVisitor
extends org.objectweb.asm.ClassVisitor
ClassVisitor that skips class members which are not reachable. It also filters the list
of implemented interfaces and rewrites generic signatures not to include references to "dropped"
types. This is done by replacing the referenced type with java/lang/Object: the same as ProGuard
does.| Constructor and Description |
|---|
RewriteOutputVisitor(java.util.Set<java.lang.String> members,
java.util.function.Predicate<java.lang.String> classKeptPredicate,
BytecodeVersion bytecodeVersion,
org.objectweb.asm.ClassVisitor cv) |
| Modifier and Type | Method and Description |
|---|---|
void |
visit(int version,
int access,
java.lang.String name,
java.lang.String signature,
java.lang.String superName,
java.lang.String[] interfaces) |
org.objectweb.asm.FieldVisitor |
visitField(int access,
java.lang.String name,
java.lang.String desc,
java.lang.String signature,
java.lang.Object value) |
void |
visitInnerClass(java.lang.String name,
java.lang.String outerName,
java.lang.String innerName,
int access) |
org.objectweb.asm.MethodVisitor |
visitMethod(int access,
java.lang.String name,
java.lang.String desc,
java.lang.String signature,
java.lang.String[] exceptions) |
public RewriteOutputVisitor(@NonNull
java.util.Set<java.lang.String> members,
@NonNull
java.util.function.Predicate<java.lang.String> classKeptPredicate,
@Nullable
BytecodeVersion bytecodeVersion,
@NonNull
org.objectweb.asm.ClassVisitor cv)
public void visit(int version,
int access,
java.lang.String name,
java.lang.String signature,
java.lang.String superName,
java.lang.String[] interfaces)
visit in class org.objectweb.asm.ClassVisitorpublic org.objectweb.asm.FieldVisitor visitField(int access,
java.lang.String name,
java.lang.String desc,
java.lang.String signature,
java.lang.Object value)
visitField in class org.objectweb.asm.ClassVisitorpublic org.objectweb.asm.MethodVisitor visitMethod(int access,
java.lang.String name,
java.lang.String desc,
java.lang.String signature,
java.lang.String[] exceptions)
visitMethod in class org.objectweb.asm.ClassVisitorpublic void visitInnerClass(java.lang.String name,
java.lang.String outerName,
java.lang.String innerName,
int access)
visitInnerClass in class org.objectweb.asm.ClassVisitor