at.dms.classfile
Class MethodInfo

java.lang.Object
  extended by at.dms.classfile.Member
      extended by at.dms.classfile.MethodInfo
All Implemented Interfaces:
Constants

public class MethodInfo
extends Member

VMS 4.6: Methods. Each method, and each (class or instance) initialization method is described by this structure.


Field Summary
 
Fields inherited from interface at.dms.classfile.Constants
ACC_ABSTRACT, ACC_FINAL, ACC_INLINE, ACC_INTERFACE, ACC_NATIVE, ACC_PRIVATE, ACC_PROTECTED, ACC_PUBLIC, ACC_STATIC, ACC_STRICT, ACC_SUPER, ACC_SYNCHRONIZED, ACC_TRANSIENT, ACC_VOLATILE, ATT_CODE, ATT_CONSTANTVALUE, ATT_DEPRECATED, ATT_EXCEPTIONS, ATT_GENERIC, ATT_INNERCLASSES, ATT_LINENUMBERTABLE, ATT_LOCALVARIABLETABLE, ATT_SOURCEFILE, ATT_SYNTHETIC, CST_CLASS, CST_DOUBLE, CST_FIELD, CST_FLOAT, CST_INTEGER, CST_INTERFACEMETHOD, CST_LONG, CST_METHOD, CST_NAMEANDTYPE, CST_STRING, CST_UTF8, ENV_DEBUG_MODE, ENV_USE_CACHE, JAVA_MAGIC, JAVA_MAJOR, JAVA_MINOR, MAX_CODE_PER_METHOD, opc_aaload, opc_aastore, opc_aconst_null, opc_aload, opc_aload_0, opc_aload_1, opc_aload_2, opc_aload_3, opc_anewarray, opc_areturn, opc_arraylength, opc_astore, opc_astore_0, opc_astore_1, opc_astore_2, opc_astore_3, opc_athrow, opc_baload, opc_bastore, opc_bipush, opc_caload, opc_castore, opc_checkcast, opc_d2f, opc_d2i, opc_d2l, opc_dadd, opc_daload, opc_dastore, opc_dcmpg, opc_dcmpl, opc_dconst_0, opc_dconst_1, opc_ddiv, opc_dload, opc_dload_0, opc_dload_1, opc_dload_2, opc_dload_3, opc_dmul, opc_dneg, opc_drem, opc_dreturn, opc_dstore, opc_dstore_0, opc_dstore_1, opc_dstore_2, opc_dstore_3, opc_dsub, opc_dup, opc_dup_x1, opc_dup_x2, opc_dup2, opc_dup2_x1, opc_dup2_x2, opc_f2d, opc_f2i, opc_f2l, opc_fadd, opc_faload, opc_fastore, opc_fcmpg, opc_fcmpl, opc_fconst_0, opc_fconst_1, opc_fconst_2, opc_fdiv, opc_fload, opc_fload_0, opc_fload_1, opc_fload_2, opc_fload_3, opc_fmul, opc_fneg, opc_frem, opc_freturn, opc_fstore, opc_fstore_0, opc_fstore_1, opc_fstore_2, opc_fstore_3, opc_fsub, opc_getfield, opc_getstatic, opc_goto, opc_goto_w, opc_i2b, opc_i2c, opc_i2d, opc_i2f, opc_i2l, opc_i2s, opc_iadd, opc_iaload, opc_iand, opc_iastore, opc_iconst_0, opc_iconst_1, opc_iconst_2, opc_iconst_3, opc_iconst_4, opc_iconst_5, opc_iconst_m1, opc_idiv, opc_if_acmpeq, opc_if_acmpne, opc_if_icmpeq, opc_if_icmpge, opc_if_icmpgt, opc_if_icmple, opc_if_icmplt, opc_if_icmpne, opc_ifeq, opc_ifge, opc_ifgt, opc_ifle, opc_iflt, opc_ifne, opc_ifnonnull, opc_ifnull, opc_iinc, opc_iload, opc_iload_0, opc_iload_1, opc_iload_2, opc_iload_3, opc_imul, opc_ineg, opc_instanceof, opc_invokeinterface, opc_invokespecial, opc_invokestatic, opc_invokevirtual, opc_ior, opc_irem, opc_ireturn, opc_ishl, opc_ishr, opc_istore, opc_istore_0, opc_istore_1, opc_istore_2, opc_istore_3, opc_isub, opc_iushr, opc_ixor, opc_jsr, opc_jsr_w, opc_l2d, opc_l2f, opc_l2i, opc_ladd, opc_laload, opc_land, opc_lastore, opc_lcmp, opc_lconst_0, opc_lconst_1, opc_ldc, opc_ldc_w, opc_ldc2_w, opc_ldiv, opc_lload, opc_lload_0, opc_lload_1, opc_lload_2, opc_lload_3, opc_lmul, opc_lneg, opc_lookupswitch, opc_lor, opc_lrem, opc_lreturn, opc_lshl, opc_lshr, opc_lstore, opc_lstore_0, opc_lstore_1, opc_lstore_2, opc_lstore_3, opc_lsub, opc_lushr, opc_lxor, opc_monitorenter, opc_monitorexit, opc_multianewarray, opc_new, opc_newarray, opc_nop, opc_pop, opc_pop2, opc_putfield, opc_putstatic, opc_ret, opc_return, opc_saload, opc_sastore, opc_sipush, opc_swap, opc_tableswitch, opc_wide, opc_xxxunusedxxx, POO_ASCII_CONSTANT, POO_CLASS_CONSTANT, POO_DOUBLE_CONSTANT, POO_FLOAT_CONSTANT, POO_INTEGER_CONSTANT, POO_LONG_CONSTANT, POO_NAT_CONSTANT, POO_REF_CONSTANT, POO_STRING_CONSTANT, TYP_ADDRESS, TYP_DOUBLE, TYP_FLOAT, TYP_INT, TYP_LONG, TYP_REFERENCE, TYP_VOID
 
Constructor Summary
MethodInfo(DataInput in, ConstantPool cp, boolean interfaceOnly)
          Constructs a method entry from a class file stream.
MethodInfo(short modifiers, String name, String type, String[] exceptions, CodeInfo code, boolean deprecated, boolean synthetic)
          Constructs a method entry
 
Method Summary
 CodeInfo getCodeInfo()
          Returns the code attribute associated with this method
 String[] getExceptions()
          Returns the exceptions of this method
 String getName()
          Returns the name of this method
protected  int getParameterCount()
          Computes the number of parameters.
 String getSignature()
          Returns the type of the this method
 boolean isDeprecated()
          Returns true if the field is deprecated
 boolean isSynthetic()
          Returns true if the field is synthetic
 void resolveConstants(ConstantPool cp)
          Insert or check location of constant value on constant pool
 void setCodeInfo(CodeInfo info)
          Sets the code attribute associated with this method
 void setDeprecated(boolean deprecated)
          Sets the deprecated attribute of this field
 void setExceptions(String[] exceptions)
          Sets the exceptions
 void setName(String name)
          Sets the name of the this method
 void setSignature(String type)
          Returns the type of the this method
 void setSynthetic(boolean synthetic)
          Returns true if the field is synthetic
 void write(ConstantPool cp, DataOutput out)
          Write this class into the the file (out) getting data position from the constant pool
 
Methods inherited from class at.dms.classfile.Member
getModifiers, setModifiers
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

MethodInfo

public MethodInfo(short modifiers,
                  String name,
                  String type,
                  String[] exceptions,
                  CodeInfo code,
                  boolean deprecated,
                  boolean synthetic)
Constructs a method entry

Parameters:
modifiers - access permission to and properties of the method
name - the simple name of the method (or
init
or
clinit
)
type - the method signature
exceptions - the checked exceptions the method may throw
code - the virtual machine instructions and auxiliary infos
deprecated - is this method deprecated ?
synthetic - is this method synthesized by the compiler ? NOTE: VMS 4.7.4: There must be exactly one Exceptions attribute in each method_info structure.

MethodInfo

public MethodInfo(DataInput in,
                  ConstantPool cp,
                  boolean interfaceOnly)
           throws IOException,
                  ClassFileFormatException
Constructs a method entry from a class file stream.

Parameters:
in - the stream to read from
cp - the constant pool
interfaceOnly - load only the interface, not the source code
Throws:
IOException - an io problem has occured
ClassFileFormatException - attempt to read a bad classfile
Method Detail

getName

public String getName()
Returns the name of this method

Specified by:
getName in class Member

setName

public void setName(String name)
Sets the name of the this method


getSignature

public String getSignature()
Returns the type of the this method

Specified by:
getSignature in class Member

setSignature

public void setSignature(String type)
Returns the type of the this method


getExceptions

public String[] getExceptions()
Returns the exceptions of this method


setExceptions

public void setExceptions(String[] exceptions)
Sets the exceptions


isDeprecated

public boolean isDeprecated()
Returns true if the field is deprecated


setDeprecated

public void setDeprecated(boolean deprecated)
Sets the deprecated attribute of this field


isSynthetic

public boolean isSynthetic()
Returns true if the field is synthetic


setSynthetic

public void setSynthetic(boolean synthetic)
Returns true if the field is synthetic


getCodeInfo

public CodeInfo getCodeInfo()
Returns the code attribute associated with this method


setCodeInfo

public void setCodeInfo(CodeInfo info)
Sets the code attribute associated with this method


resolveConstants

public void resolveConstants(ConstantPool cp)
                      throws ClassFileFormatException
Insert or check location of constant value on constant pool

Parameters:
cp - the constant pool for this class
Throws:
ClassFileFormatException

write

public void write(ConstantPool cp,
                  DataOutput out)
           throws IOException,
                  ClassFileFormatException
Write this class into the the file (out) getting data position from the constant pool

Parameters:
cp - the constant pool that contain all data
out - the file where to write this object info
Throws:
IOException - an io problem has occured
ClassFileFormatException - attempt to write a bad classfile info

getParameterCount

protected int getParameterCount()
Computes the number of parameters.