All Packages  Class Hierarchy  This Package  Previous  Next  Index

Class de.fub.bytecode.classfile.Utility

java.lang.Object
   |
   +----de.fub.bytecode.classfile.Utility

public abstract class Utility
extends Object
implements Constants
Utility functions that do not really belong to any class in particular.

Version:
$Id: Utility.java,v 1.16 1999/08/06 09:50:31 dahm Exp $
Author:
M. Dahm

Constructor Index

 o Utility()

Method Index

 o accessToString(int)
Convert bit field of flags into string such as `static final'.
 o accessToString(int, boolean)
Convert bit field of flags into string such as `static final'.
 o classOrInterface(int)
 o clearBit(int, int)
 o codeToString(byte[], ConstantPool, int, int)
 o codeToString(byte[], ConstantPool, int, int, boolean)
Disassemble a byte array of JVM byte codes starting from code line `index' and return the dissambled string representation.
 o codeToString(ByteSequence, ConstantPool)
 o codeToString(ByteSequence, ConstantPool, boolean)
Disassemble a stream of byte codes and return the string representation.
 o compactClassName(String)
Shorten long class names, java/lang/String becomes String.
 o compactClassName(String, boolean)
Shorten long class names, java/lang/String becomes java.lang.String, e.g..
 o compactClassName(String, String, boolean)
Shorten long class name str, i.e.
 o fillup(String, int, boolean, char)
Fillup char with up to length characters with char `fill' and justify it left or right.
 o format(int, int, boolean, char)
Return a string for an integer justified left or right and filled up with `fill' characters if necessary.
 o isSet(int, int)
 o methodSignatureArgumentTypes(String)
 o methodSignatureArgumentTypes(String, boolean)
 o methodSignatureReturnType(String)
 o methodSignatureReturnType(String, boolean)
 o methodSignatureToString(String, String, String)
Converts method signature to string with all class names compacted.
 o methodSignatureToString(String, String, String, boolean)
A return­type signature represents the return value from a method.
 o methodTypeToSignature(String, String[])
Converts string containing the method return and argument types to a byte code method signature.
 o printArray(Object[])
 o printArray(Object[], boolean)
 o printArray(PrintStream, Object[])
 o printArray(PrintWriter, Object[])
 o replace(String, String, String)
Replace all occurences of old in str with new.
 o setBit(int, int)
 o signatureToString(String)
Converts signature to string with all class names compacted.
 o signatureToString(String, boolean)
The field signature represents the value of an argument to a function or the value of a variable.
 o toHexString(byte[])
 o typeOfMethodSignature(String)
Return type of method signature as a byte value as defined in Constants
 o typeOfSignature(String)
Return type of signature as a byte value as defined in Constants
 o typeToSignature(String)
Gets Java conformant type like `String[]' and returns a string containing the type in byte code format, i.e.

Constructors

 o Utility
 public Utility()

Methods

 o accessToString
 public static final String accessToString(int access_flags)
Convert bit field of flags into string such as `static final'.

Parameters:
access_flags - Access flags
Returns:
String representation of flags
 o accessToString
 public static final String accessToString(int access_flags,
                                           boolean for_class)
Convert bit field of flags into string such as `static final'. Special case: Classes compiled with new compilers and with the `ACC_SUPER' flag would be said to be "synchronized". This is because SUN used the same value for the flags `ACC_SUPER' and `ACC_SYNCHRONIZED'.

Parameters:
access_flags - Access flags
for_class - access flags are for class qualifiers ?
Returns:
String representation of flags
 o classOrInterface
 public static final String classOrInterface(int access_flags)
Returns:
"class" or "interface", depending on the ACC_INTERFACE flag
 o codeToString
 public static final String codeToString(byte code[],
                                         ConstantPool constant_pool,
                                         int index,
                                         int length,
                                         boolean verbose)
Disassemble a byte array of JVM byte codes starting from code line `index' and return the dissambled string representation. Decode only `num' opcodes (including their operands), use -1 if you want to decompile everything.

Parameters:
code - byte code array
constant_pool - Array of constants
index - offset in `code' array (number of opcodes, not bytes!)
length - number of opcodes to decompile, -1 for all
verbose - be verbose, e.g. print constant pool index
Returns:
String representation of byte codes
 o codeToString
 public static final String codeToString(byte code[],
                                         ConstantPool constant_pool,
                                         int index,
                                         int length)
 o codeToString
 public static final String codeToString(ByteSequence bytes,
                                         ConstantPool constant_pool,
                                         boolean verbose) throws IOException
Disassemble a stream of byte codes and return the string representation.

Parameters:
stream - data input stream
constant_pool - Array of constants
verbose - be verbose, e.g. print constant pool index
Returns:
String representation of byte code
 o codeToString
 public static final String codeToString(ByteSequence bytes,
                                         ConstantPool constant_pool) throws IOException
 o compactClassName
 public static final String compactClassName(String str)
Shorten long class names, java/lang/String becomes String.

Parameters:
str - The long class name
Returns:
Compacted class name
 o compactClassName
 public static final String compactClassName(String str,
                                             String prefix,
                                             boolean chopit)
Shorten long class name str, i.e. chop off the prefix, if the class name starts with this string and the flag chopit is true. Slashes / are converted to dots ..

Parameters:
str - The long class name
prefix - The prefix the get rid off
chopit - Flag that determines whether chopping is executed or not
Returns:
Compacted class name
 o compactClassName
 public static final String compactClassName(String str,
                                             boolean chopit)
Shorten long class names, java/lang/String becomes java.lang.String, e.g.. If chopit is true the prefix java.lang is also removed.

Parameters:
str - The long class name
chopit - Flag that determines whether chopping is executed or not
Returns:
Compacted class name
 o setBit
 public static final int setBit(int flag,
                                int i)
Returns:
`flag' with bit `i' set to 1
 o clearBit
 public static final int clearBit(int flag,
                                  int i)
Returns:
`flag' with bit `i' set to 0
 o isSet
 public static final boolean isSet(int flag,
                                   int i)
Returns:
true, if bit `i' in `flag' is set
 o methodTypeToSignature
 public static final String methodTypeToSignature(String ret,
                                                  String argv[]) throws ClassFormatError
Converts string containing the method return and argument types to a byte code method signature.

Parameters:
ret - Return type of method
argv - Types of method arguments
Returns:
Byte code representation of method type
 o typeToSignature
 public static final String typeToSignature(String str) throws ClassFormatError
Gets Java conformant type like `String[]' and returns a string containing the type in byte code format, i.e. String[] becomes [Ljava/lang/String;

Parameters:
str - Type string like int[][]
Returns:
Byte code representation of type like [[I
 o methodSignatureArgumentTypes
 public static final String[] methodSignatureArgumentTypes(String signature) throws ClassFormatError
Parameters:
signature - Method signature
Returns:
Array of argument types
 o methodSignatureArgumentTypes
 public static final String[] methodSignatureArgumentTypes(String signature,
                                                           boolean chopit) throws ClassFormatError
Parameters:
signature - Method signature
chopit - Shorten class names ?
Returns:
Array of argument types
 o methodSignatureReturnType
 public static final String methodSignatureReturnType(String signature) throws ClassFormatError
Parameters:
signature - Method signature
Returns:
return type of method
 o methodSignatureReturnType
 public static final String methodSignatureReturnType(String signature,
                                                      boolean chopit) throws ClassFormatError
Parameters:
signature - Method signature
chopit - Shorten class names ?
Returns:
return type of method
 o methodSignatureToString
 public static final String methodSignatureToString(String signature,
                                                    String name,
                                                    String access)
Converts method signature to string with all class names compacted.

Parameters:
signature - to convert
name - of method
access - flags of method
Returns:
Human readable signature
 o methodSignatureToString
 public static final String methodSignatureToString(String signature,
                                                    String name,
                                                    String access,
                                                    boolean chopit) throws ClassFormatError
A return­type signature represents the return value from a method. It is a series of bytes in the following grammar: ::= | V The character V indicates that the method returns no value. Otherwise, the signature indicates the type of the return value. An argument signature represents an argument passed to a method: ::= A method signature represents the arguments that the method expects, and the value that it returns. ::= () ::= * This method converts such a string into a Java type declaration like `void main(String[])' and throws a `ClassFormatError' when the parsed type is invalid.

Parameters:
signature - Method signature
name - Method name
access - Method access rights
Returns:
Java type declaration
 o replace
 public static final String replace(String str,
                                    String old,
                                    String new_)
Replace all occurences of old in str with new.

Parameters:
str - String to permute
old - String to be replaced
new - Replacement string
Returns:
new String object
 o signatureToString
 public static final String signatureToString(String signature)
Converts signature to string with all class names compacted.

Parameters:
signature - to convert
Returns:
Human readable signature
 o signatureToString
 public static final String signatureToString(String signature,
                                              boolean chopit) throws ClassFormatError
The field signature represents the value of an argument to a function or the value of a variable. It is a series of bytes generated by the following grammar:
  ::= 
       ::= ||
        ::= B|C|D|F|I|J|S|Z
      ::= L;
       ::= [
 The meaning of the base types is as follows:
 B byte signed byte
 C char character
 D double double precision IEEE float
 F float single precision IEEE float
 I int integer
 J long long integer
 L; ... an object of the given class
 S short signed short
 Z boolean true or false
 [ ... array
 
This method converts this string into a Java type declaration such as `String[]' and throws a `ClassFormatError' when the parsed type is invalid.

Parameters:
signature - Class signature
Returns:
Java type declaration
 o typeOfMethodSignature
 public static final byte typeOfMethodSignature(String signature) throws ClassFormatError
Return type of method signature as a byte value as defined in Constants

Parameters:
signature - in format described above
Returns:
type of method signature
See Also:
Constants
 o typeOfSignature
 public static final byte typeOfSignature(String signature) throws ClassFormatError
Return type of signature as a byte value as defined in Constants

Parameters:
signature - in format described above
Returns:
type of signature
See Also:
Constants
 o toHexString
 public static final String toHexString(byte bytes[])
 o format
 public static final String format(int i,
                                   int length,
                                   boolean left_justify,
                                   char fill)
Return a string for an integer justified left or right and filled up with `fill' characters if necessary.

Parameters:
i - integer to format
length - length of desired string
left - format left or right
fill - fill character
Returns:
formatted int
 o fillup
 public static final String fillup(String str,
                                   int length,
                                   boolean left_justify,
                                   char fill)
Fillup char with up to length characters with char `fill' and justify it left or right.

Parameters:
str - string to format
length - length of desired string
left - format left or right
fill - fill character
Returns:
formatted string
 o printArray
 public static final void printArray(PrintStream out,
                                     Object obj[])
 o printArray
 public static final void printArray(PrintWriter out,
                                     Object obj[])
 o printArray
 public static final String printArray(Object obj[])
 o printArray
 public static final String printArray(Object obj[],
                                       boolean braces)

All Packages  Class Hierarchy  This Package  Previous  Next  Index