Example usage for org.objectweb.asm.util Printer getText

List of usage examples for org.objectweb.asm.util Printer getText

Introduction

In this page you can find the example usage for org.objectweb.asm.util Printer getText.

Prototype

public List<Object> getText() 

Source Link

Document

Returns the text constructed by this visitor.

Usage

From source file:com.triage.bytecodemaster.BaseWeaverTest.java

protected String printNode(AbstractInsnNode insnNode) {
    /* Create a "printer" that renders text versions of instructions */
    Printer printer = new Textifier();
    TraceMethodVisitor methodPrinter = new TraceMethodVisitor(printer);

    /* render the instruction as a string and add it to printer's internal buffer */
    insnNode.accept(methodPrinter);/*from  w w w. j  av  a  2 s  . c  o  m*/

    /* convert printer's internal buffer to string and clear the buffer (so we can reuse it later) */
    StringWriter sw = new StringWriter();
    printer.print(new PrintWriter(sw));
    printer.getText().clear();
    return sw.toString();

}

From source file:de.tuberlin.uebb.jbop.optimizer.utils.NodeHelper.java

License:Open Source License

/**
 * Prints the method.// w  ww . j  av a2  s  .  c o m
 * 
 * @param node
 *          the node
 * @param stream
 *          the stream
 */
public static void printMethod(final MethodNode node, final ClassNode classNode, final PrintStream stream,
        final boolean build) {
    final Printer p;
    if (build) {
        p = new ClassNodeBuilderTextifier(node, classNode);
    } else {
        p = new ExtendedTextifier(node, classNode);
    }
    final TraceMethodVisitor traceMethodVisitor = new TraceMethodVisitor(p);
    node.accept(traceMethodVisitor);
    stream.println(StringUtils.join(p.getText(), ""));
}

From source file:net.malisis.core.asm.AsmUtils.java

License:Open Source License

public static String getMethodNodeAsString(MethodNode methodNode) {
    Printer printer = new Textifier();
    TraceMethodVisitor methodPrinter = new TraceMethodVisitor(printer);

    methodNode.accept(methodPrinter);/*  w ww.  java2  s  . c  o  m*/

    StringWriter sw = new StringWriter();
    printer.print(new PrintWriter(sw));
    printer.getText().clear();

    return sw.toString();
}

From source file:org.brutusin.instrumentation.utils.Helper.java

License:Apache License

public static void viewByteCode(byte[] bytecode) {
    ClassReader cr = new ClassReader(bytecode);
    ClassNode cn = new ClassNode();
    cr.accept(cn, 0);//from  www. ja  v  a  2 s .  c o m
    final List<MethodNode> mns = cn.methods;
    Printer printer = new Textifier();
    TraceMethodVisitor mp = new TraceMethodVisitor(printer);
    for (MethodNode mn : mns) {
        InsnList inList = mn.instructions;
        System.out.println(mn.name);
        for (int i = 0; i < inList.size(); i++) {
            inList.get(i).accept(mp);
            StringWriter sw = new StringWriter();
            printer.print(new PrintWriter(sw));
            printer.getText().clear();
            System.out.print(sw.toString());
        }
    }
}

From source file:org.jooby.internal.apitool.Insn.java

License:Apache License

@Override
public String toString() {
    Printer printer = new ASMifier();
    TraceMethodVisitor visitor = new TraceMethodVisitor(printer);
    node.accept(visitor);/*w w w.  j ava2s  .co  m*/
    return printer.getText().toString();
}

From source file:vazkii.quark.base.asm.ClassTransformer.java

License:Creative Commons License

private static String getNodeString(AbstractInsnNode node) {
    Printer printer = new Textifier();

    TraceMethodVisitor visitor = new TraceMethodVisitor(printer);
    node.accept(visitor);//  w  w  w  . j  a  v  a2 s.  com

    StringWriter sw = new StringWriter();
    printer.print(new PrintWriter(sw));
    printer.getText().clear();

    return sw.toString().replaceAll("\n", "").trim();
}