1 24 25 package org.aspectj.compiler.base.bcg.pool; 26 27 import org.aspectj.compiler.base.bcg.*; 28 29 import java.io.*; 30 import java.util.*; 31 32 import org.aspectj.compiler.base.ast.ArrayType; 33 import org.aspectj.compiler.base.ast.NameType; 34 import org.aspectj.compiler.base.ast.RefType; 35 36 public class FieldrefConstant extends Constant { 37 ClassConstant _class; 38 FieldrefConstant() {} 39 NameAndTypeConstant signature; 40 FieldrefConstant(ClassConstant _class, 41 NameAndTypeConstant signature) { 42 this._class = _class; 43 this.signature = signature; 44 } 45 void writeTo(DataOutputStream stream) throws IOException { 46 stream.writeByte(FIELD_REF_TAG); 47 _class.writeIndex(stream); 48 signature.writeIndex(stream); 49 } 50 51 public String toString() { 52 return rep(getIndex(), 53 "(fieldref " + _class + " " + signature + ")"); 54 } 55 public boolean equals(Object other) { 56 if (! (other instanceof FieldrefConstant)) return false; 57 FieldrefConstant o = (FieldrefConstant) other; 58 return _class == o._class && signature == o.signature; 59 } 60 public int hashCode() { 61 return _class.hashCode() + signature.hashCode() + FIELD_REF_TAG; 62 } 63 64 void readFrom(DataInputStream stream, ConstantPool pool) throws IOException { 65 _class = 66 (ClassConstant) pool.get(stream.readUnsignedShort(), new ClassConstant()); 67 signature = 68 (NameAndTypeConstant) pool.get(stream.readUnsignedShort(), new NameAndTypeConstant()); 69 } 70 } 71 | Popular Tags |