Copyright (c) 2000, 2009 IBM Corporation and others. This program and the accompanying materials are made available under the terms of the Eclipse Public License 2.0 which accompanies this distribution, and is available at https://www.eclipse.org/legal/epl-2.0/ SPDX-License-Identifier: EPL-2.0 Contributors: IBM Corporation - initial API and implementation
/******************************************************************************* * Copyright (c) 2000, 2009 IBM Corporation and others. * * This program and the accompanying materials * are made available under the terms of the Eclipse Public License 2.0 * which accompanies this distribution, and is available at * https://www.eclipse.org/legal/epl-2.0/ * * SPDX-License-Identifier: EPL-2.0 * * Contributors: * IBM Corporation - initial API and implementation *******************************************************************************/
package org.eclipse.jdt.core.util;
This class is intended to be subclassed to disassemble classfile bytes onto a String using the proper line separator.
Since:2.1
/** * This class is intended to be subclassed to disassemble * classfile bytes onto a String using the proper line separator. * * @since 2.1 */
public abstract class ClassFileBytesDisassembler {
The mode is the detailed mode to disassemble IClassFileReader. It returns the magic numbers, the version numbers and field and method descriptors.
/** * The mode is the detailed mode to disassemble IClassFileReader. It returns the magic * numbers, the version numbers and field and method descriptors. */
public final static int DETAILED = 1;
The mode is the default mode to disassemble IClassFileReader.
/** * The mode is the default mode to disassemble IClassFileReader. */
public final static int DEFAULT = 2;
This mode corresponds to the detailed mode plus the constant pool contents and any further information that would be useful for debugging purpose.
Since:3.1
/** * This mode corresponds to the detailed mode plus the constant pool contents and * any further information that would be useful for debugging purpose. * @since 3.1 */
public final static int SYSTEM = 4;
This mode is used to compact the class name to a simple name instead of a qualified name.
Since:3.1
/** * This mode is used to compact the class name to a simple name instead of a qualified name. * @since 3.1 */
public final static int COMPACT = 8;
This mode is used to retrive a pseudo code for working copy purpose.
Since:3.2
/** * This mode is used to retrive a pseudo code for working copy purpose. * @since 3.2 */
public final static int WORKING_COPY = 16;
Answers back the disassembled string of the classfile bytes using the default mode. This is an output quite similar to the javap tool, using DEFAULT mode.
Params:
  • classFileBytes – The bytes of the classfile
  • lineSeparator – the line separator to use.
Throws:
Returns:the disassembled string of the IClassFileReader using the default mode.
/** * Answers back the disassembled string of the classfile bytes using the default * mode. * This is an output quite similar to the javap tool, using DEFAULT mode. * * @param classFileBytes The bytes of the classfile * @param lineSeparator the line separator to use. * * @return the disassembled string of the IClassFileReader using the default mode. * @exception ClassFormatException if the classfile bytes are ill-formed */
public abstract String disassemble(byte[] classFileBytes, String lineSeparator) throws ClassFormatException;
Answers back the disassembled string of the classfile bytes according to the mode. This is an output quite similar to the javap tool.
Params:
  • classFileBytes – The bytes of the classfile
  • lineSeparator – the line separator to use.
  • mode – the mode used to disassemble the IClassFileReader
Throws:
Returns:the disassembled string of the IClassFileReader according to the mode
/** * Answers back the disassembled string of the classfile bytes according to the * mode. * This is an output quite similar to the javap tool. * * @param classFileBytes The bytes of the classfile * @param lineSeparator the line separator to use. * @param mode the mode used to disassemble the IClassFileReader * * @return the disassembled string of the IClassFileReader according to the mode * @exception ClassFormatException if the classfile bytes are ill-formed */
public abstract String disassemble(byte[] classFileBytes, String lineSeparator, int mode) throws ClassFormatException;
Answers a readable short description of this disassembler
Returns:String - a string description of the disassembler
/** * Answers a readable short description of this disassembler * * @return String - a string description of the disassembler */
public abstract String getDescription(); }