Example usage for org.eclipse.jdt.internal.core.util Disassembler Disassembler

List of usage examples for org.eclipse.jdt.internal.core.util Disassembler Disassembler

Introduction

In this page you can find the example usage for org.eclipse.jdt.internal.core.util Disassembler Disassembler.

Prototype

Disassembler

Source Link

Usage

From source file:org.codehaus.jdt.groovy.model.GroovyClassFileWorkingCopy.java

License:Open Source License

/**
 * @see Openable#openBuffer(IProgressMonitor, Object)
 *///from w w  w. j a  v  a  2s.  c  o  m
protected IBuffer openBuffer(IProgressMonitor pm, Object info) throws JavaModelException {

    // create buffer
    IBuffer buffer = this.owner.createBuffer(this);
    if (buffer == null)
        return null;

    // set the buffer source
    if (buffer.getCharacters() == null) {
        IBuffer classFileBuffer = this.classFile.getBuffer();
        if (classFileBuffer != null) {
            buffer.setContents(classFileBuffer.getCharacters());
        } else {
            // Disassemble
            IClassFileReader reader = ToolFactory.createDefaultClassFileReader(this.classFile,
                    IClassFileReader.ALL);
            Disassembler disassembler = new Disassembler();
            String contents = disassembler.disassemble(reader, Util.getLineSeparator("", getJavaProject()), //$NON-NLS-1$
                    ClassFileBytesDisassembler.WORKING_COPY);
            buffer.setContents(contents);
        }
    }

    // add buffer to buffer cache
    BufferManager bufManager = getBufferManager();

    // GROOVY Change access to private member
    // old
    // bufManager.addBuffer(buffer);
    // new
    if (buffer.getContents() != null) {
        ReflectionUtils.executePrivateMethod(BufferManager.class, "addBuffer", new Class<?>[] { IBuffer.class }, //$NON-NLS-1$
                bufManager, new Object[] { buffer });
    }
    // GROOVY End

    // listen to buffer changes
    buffer.addBufferChangedListener(this);

    return buffer;
}

From source file:org.eclipse.che.jdt.core.ToolFactory.java

License:Open Source License

/**
 * Create a classfile bytecode disassembler, able to produce a String representation of a given classfile.
 *
 * @return a classfile bytecode disassembler
 * @see org.eclipse.jdt.core.util.ClassFileBytesDisassembler
 * @since 2.1//from  w w w .  j a  v  a  2 s .c  o  m
 */
public static ClassFileBytesDisassembler createDefaultClassFileBytesDisassembler() {
    return new Disassembler();
}