at.dms.classfile
Class CodeInfo

java.lang.Object
  |
  +--at.dms.classfile.Attribute
        |
        +--at.dms.classfile.CodeInfo
Direct Known Subclasses:
SkippedCodeInfo

public class CodeInfo
extends Attribute

VMS 4.7.3: Code Attribute. It contains the Java virtual machine instructions and auxiliary information for a single method. !!! graf 990904 add support for generic attributes.


Field Summary
static CodeInfo DUM_INFO
           
 
Fields inherited from class at.dms.classfile.Attribute
EMPTY
 
Constructor Summary
protected CodeInfo()
          This constructor is only used by SkippedCodeInfo.
  CodeInfo(java.io.DataInput in, ConstantPool cp)
          Create a new CodeInfo attribute.
  CodeInfo(Instruction[] instructions, HandlerInfo[] handlers, LineNumberInfo[] lineNumbers, LocalVariableInfo[] localVariables)
          Create a new CodeInfo attribute.
 
Method Summary
 int getCodeLength()
          Returns the length in bytes of the instruction array.
 HandlerInfo[] getHandlers()
          Returns handlers
 Instruction[] getInstructions()
          Returns the instruction of code
 LineNumberInfo[] getLineNumbers()
          Returns line number information
 LocalVariableInfo[] getLocalVariables()
          Returns local variable information
 int getMaxLocals()
          Returns the number of locals vars used in this method (including parameters).
 int getMaxStack()
          Returns the highest value reached by the stack.
 int getParameterCount()
          Gets the number of parameters for this method.
(package private)  int getSize()
          Returns the space in bytes used by this attribute in the classfile
(package private)  int getTag()
          Returns the attribute's tag
(package private)  void resolveConstants(ConstantPool cp)
          Insert or check location of constant value on constant pool
(package private)  void setCodeLength(int codeLength)
          Sets the length in bytes of the instruction array.
(package private)  void setMaxLocals(int maxLocals)
          Sets the number of locals var used by this method.
(package private)  void setMaxStack(int maxStack)
          Sets the highest value reached by the stack.
 void setParameterCount(int paramCnt)
          Sets the number of parameters for this method.
 void transformAccessors(AccessorTransformer transformer)
          Transforms the accessors contained in this class.
(package private)  void write(ConstantPool cp, java.io.DataOutput out)
          Write this class into the the file (out) getting data position from the constant pool
 
Methods inherited from class at.dms.classfile.Attribute
read, readCodeInfoAttribute, readInterfaceOnly
 
Methods inherited from class java.lang.Object
, clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

DUM_INFO

public static final CodeInfo DUM_INFO
Constructor Detail

CodeInfo

public CodeInfo(Instruction[] instructions,
                HandlerInfo[] handlers,
                LineNumberInfo[] lineNumbers,
                LocalVariableInfo[] localVariables)
Create a new CodeInfo attribute.
Parameters:
instructions - array of VM instructions
handlers - exception handlers
lineNumbers - line number information
localVariables - local variable information

CodeInfo

public CodeInfo(java.io.DataInput in,
                ConstantPool cp)
         throws java.io.IOException,
                ClassFileFormatException
Create a new CodeInfo attribute.
Parameters:
in - The stream to read from.
cp - The constant pool.
Throws:
java.io.IOException - An io problem has occured.
ClassFileFormatException - Attempt to read from a bad classfile.

CodeInfo

protected CodeInfo()
This constructor is only used by SkippedCodeInfo.
Method Detail

transformAccessors

public void transformAccessors(AccessorTransformer transformer)
                        throws BadAccessorException
Transforms the accessors contained in this class.
Parameters:
transformer - the transformer used to transform accessors

getTag

int getTag()
Returns the attribute's tag
Overrides:
getTag in class Attribute

getSize

int getSize()
Returns the space in bytes used by this attribute in the classfile
Overrides:
getSize in class Attribute

getInstructions

public Instruction[] getInstructions()
Returns the instruction of code

getHandlers

public HandlerInfo[] getHandlers()
Returns handlers

getLineNumbers

public LineNumberInfo[] getLineNumbers()
Returns line number information

getLocalVariables

public LocalVariableInfo[] getLocalVariables()
Returns local variable information

getCodeLength

public int getCodeLength()
Returns the length in bytes of the instruction array.

getMaxStack

public int getMaxStack()
Returns the highest value reached by the stack.

getMaxLocals

public int getMaxLocals()
Returns the number of locals vars used in this method (including parameters).

setParameterCount

public void setParameterCount(int paramCnt)
Sets the number of parameters for this method.

getParameterCount

public int getParameterCount()
Gets the number of parameters for this method.

setCodeLength

void setCodeLength(int codeLength)
Sets the length in bytes of the instruction array.

setMaxStack

void setMaxStack(int maxStack)
Sets the highest value reached by the stack.

setMaxLocals

void setMaxLocals(int maxLocals)
Sets the number of locals var used by this method.

resolveConstants

void resolveConstants(ConstantPool cp)
                throws ClassFileFormatException
Insert or check location of constant value on constant pool
Overrides:
resolveConstants in class Attribute
Parameters:
cp - the constant pool for this class

write

void write(ConstantPool cp,
           java.io.DataOutput out)
     throws java.io.IOException,
            ClassFileFormatException
Write this class into the the file (out) getting data position from the constant pool
Overrides:
write in class Attribute
Parameters:
cp - the constant pool that contain all data
out - the file where to write this object info
Throws:
java.io.IOException - an io problem has occured
ClassFileFormatException - attempt to write a bad classfile info