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

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

Introduction

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

Prototype

public void print(final PrintWriter printWriter) 

Source Link

Document

Prints the text constructed by this visitor.

Usage

From source file:com.github.anba.es6draft.compiler.assembler.Code.java

License:Open Source License

private static String toByteCode(ClassVisitor cv, Printer p, byte[] bytes) {
    new ClassReader(bytes).accept(cv, ClassReader.EXPAND_FRAMES);

    StringWriter sw = new StringWriter();
    PrintWriter pw = new PrintWriter(sw);
    p.print(pw);
    pw.flush();/*  w  ww.  jav  a 2s .c o m*/
    return sw.toString();
}

From source file:com.github.fge.grappa.transform.AsmTestUtils.java

License:Apache License

public static String getMethodInstructionList(MethodNode methodNode) {
    Preconditions.checkNotNull(methodNode, "methodNode");
    Printer printer = new NonMaxTextifier();
    TraceMethodVisitor traceMethodVisitor = new TraceMethodVisitor(printer);
    methodNode.accept(traceMethodVisitor);
    StringWriter stringWriter = new StringWriter();
    PrintWriter printWriter = new PrintWriter(stringWriter);
    printer.print(printWriter);
    printWriter.flush();//from   w w  w.  ja va 2s .co m
    String[] lines = PATTERN.split(stringWriter.toString());
    int lineNr = 0;
    for (int i = 0; i < lines.length; i++) {
        if (!lines[i].startsWith("  @")) {
            lines[i] = String.format("%2d %s", lineNr++, lines[i]);
        }
    }
    return "Method '" + methodNode.name + "':\n" + NEWLINE.join(lines) + '\n';
}

From source file:com.github.fge.grappa.transform.AsmTestUtils.java

License:Apache License

public static void assertTraceDumpEquality(MethodNode method, String traceDump) throws Exception {
    Preconditions.checkNotNull(method, "method");
    Printer printer = new NonMaxTextifier();
    TraceMethodVisitor traceMethodVisitor = new TraceMethodVisitor(printer);
    // MethodAdapter checkMethodAdapter = new MethodAdapter(traceMethodVisitor);
    MethodVisitor checkMethodAdapter = new CheckMethodAdapter(traceMethodVisitor);
    method.accept(checkMethodAdapter);/*from   w w w .j ava2 s.c o  m*/
    StringWriter stringWriter = new StringWriter();
    PrintWriter printWriter = new PrintWriter(stringWriter);
    printer.print(printWriter);
    printWriter.flush();

    assertEquals(stringWriter.toString(), traceDump);
}

From source file:com.lodgon.parboiled.transform.AsmTestUtils.java

License:Apache License

public static String getMethodInstructionList(MethodNode methodNode) {
    checkArgNotNull(methodNode, "methodNode");
    Printer printer = new NonMaxTextifier();
    TraceMethodVisitor traceMethodVisitor = new TraceMethodVisitor(printer);
    methodNode.accept(traceMethodVisitor);
    StringWriter stringWriter = new StringWriter();
    PrintWriter printWriter = new PrintWriter(stringWriter);
    printer.print(printWriter);
    printWriter.flush();/*from   w  w w .j a v  a 2  s.c  o  m*/
    String[] lines = stringWriter.toString().split("\n");
    int lineNr = 0;
    for (int i = 0; i < lines.length; i++) {
        if (!lines[i].startsWith("  @")) {
            lines[i] = String.format("%2d %s", lineNr++, lines[i]);
        }
    }
    return "Method '" + methodNode.name + "':\n" + StringUtils.join(lines, "\n") + '\n';
}

From source file:com.lodgon.parboiled.transform.AsmTestUtils.java

License:Apache License

public static void assertTraceDumpEquality(MethodNode method, String traceDump) throws Exception {
    checkArgNotNull(method, "method");
    Printer printer = new NonMaxTextifier();
    TraceMethodVisitor traceMethodVisitor = new TraceMethodVisitor(printer);
    // MethodAdapter checkMethodAdapter = new MethodAdapter(traceMethodVisitor);
    MethodVisitor checkMethodAdapter = new CheckMethodAdapter(traceMethodVisitor);
    method.accept(checkMethodAdapter);/*w  ww.  j  a v a  2s. co m*/
    StringWriter stringWriter = new StringWriter();
    PrintWriter printWriter = new PrintWriter(stringWriter);
    printer.print(printWriter);
    printWriter.flush();

    assertEquals(stringWriter.toString(), traceDump);
}

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  ww .j a  v a2  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: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  .  j ava  2s .  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);/*  w w w  .j a  va  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: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);//from   w  w  w .  j a va2  s  . c o  m

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

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