at.dms.classfile
Class ReferenceConstant

java.lang.Object
  |
  +--at.dms.classfile.PooledConstant
        |
        +--at.dms.classfile.ReferenceConstant
All Implemented Interfaces:
Constants
Direct Known Subclasses:
FieldRefConstant, InterfaceConstant, MethodRefConstant

public abstract class ReferenceConstant
extends PooledConstant

VMS 4.4.2: This class implements field/method/interface method reference constants.


Fields inherited from interface at.dms.classfile.Constants
ACC_ABSTRACT, ACC_FINAL, ACC_INTERFACE, ACC_NATIVE, ACC_NBR_FLAGS, 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
ReferenceConstant(byte tag, ClassConstant clazz, NameAndTypeConstant nametype)
          Constructs a reference constant.
ReferenceConstant(byte tag, java.lang.String name, java.lang.String type)
          Constructs a new reference constant.
ReferenceConstant(byte tag, java.lang.String owner, java.lang.String name, java.lang.String type)
          Constructs a new reference constant.
 
Method Summary
 boolean equals(java.lang.Object o)
          equals (an exact comparison) ASSERT: this.hashCode == o.hashCode ===> cast
 java.lang.String getClassName()
          Returns the name of this constant
(package private)  java.lang.Object getLiteral()
          Returns the associated literal: this constant type has none
 java.lang.String getName()
          Returns the name of this constant
 java.lang.String getType()
          Returns the name of this constant
 java.lang.String getTypeName()
          Returns the name of this constant
 int hashCode()
          hashCode (a fast comparison) CONVENTION: return XXXXXXXXXXXX << 4 + Y with Y = ident of the type of the pooled constant
(package private)  void resolveConstants(ConstantPool cp)
          Insert or check location of constant value on constant pool
(package private)  void resolveConstants(PooledConstant pc)
          Check location of constant value on constant pool
 void setTypeName(java.lang.String name)
          Returns the name of this constant
(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.PooledConstant
getIndex, getSlotsUsed, setIndex
 
Methods inherited from class java.lang.Object
, clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ReferenceConstant

public ReferenceConstant(byte tag,
                         java.lang.String name,
                         java.lang.String type)
Constructs a new reference constant.
Parameters:
tag - the constant type tag
name - the qualified name of the referenced object
type - the signature of the referenced object

ReferenceConstant

public ReferenceConstant(byte tag,
                         java.lang.String owner,
                         java.lang.String name,
                         java.lang.String type)
Constructs a new reference constant.
Parameters:
tag - the constant type tag
owner - the qualified name of the class conatining the reference
name - the qualified name of the referenced object
type - the signature of the referenced object

ReferenceConstant

public ReferenceConstant(byte tag,
                         ClassConstant clazz,
                         NameAndTypeConstant nametype)
Constructs a reference constant.
Parameters:
tag - the constant type tag
clazz - the class that defines the referenced object
nametype - the simple name and signature of the referenced object
Method Detail

getLiteral

java.lang.Object getLiteral()
Returns the associated literal: this constant type has none
Overrides:
getLiteral in class PooledConstant

getName

public java.lang.String getName()
Returns the name of this constant

getClassName

public java.lang.String getClassName()
Returns the name of this constant

getTypeName

public java.lang.String getTypeName()
Returns the name of this constant

setTypeName

public void setTypeName(java.lang.String name)
Returns the name of this constant

getType

public java.lang.String getType()
Returns the name of this constant

hashCode

public final int hashCode()
hashCode (a fast comparison) CONVENTION: return XXXXXXXXXXXX << 4 + Y with Y = ident of the type of the pooled constant
Overrides:
hashCode in class PooledConstant

equals

public final boolean equals(java.lang.Object o)
equals (an exact comparison) ASSERT: this.hashCode == o.hashCode ===> cast
Overrides:
equals in class PooledConstant

resolveConstants

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

resolveConstants

final void resolveConstants(PooledConstant pc)
Check location of constant value on constant pool
Overrides:
resolveConstants in class PooledConstant
Parameters:
pc - the already in pooled constant ASSERT pc.getClass() == this.getClass()

write

void write(ConstantPool cp,
           java.io.DataOutput out)
     throws java.io.IOException
Write this class into the the file (out) getting data position from the constant pool
Overrides:
write in class PooledConstant
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