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 MethodrefConstant extends Constant { 37 ClassConstant _class; 38 MethodrefConstant() {} 39 NameAndTypeConstant signature; 40 MethodrefConstant(ClassConstant _class, 41 NameAndTypeConstant signature) { 42 this._class = _class; 43 this.signature = signature; 44 } 45 void writeTo(DataOutputStream stream) throws IOException { 46 stream.writeByte(METHOD_REF_TAG); 47 _class.writeIndex(stream); 48 signature.writeIndex(stream); 49 } 50 public String toString() { 51 return rep(getIndex(), 52 "(methodref " + _class + " " + signature + ")"); 53 54 } 55 public boolean equals(Object other) { 56 if (! (other instanceof MethodrefConstant)) return false; 57 MethodrefConstant o = (MethodrefConstant) other; 58 return _class == o._class && signature == o.signature; 59 } 60 public int hashCode() { 61 return _class.hashCode() + signature.hashCode() + METHOD_REF_TAG; 62 } 63 64 void readFrom(DataInputStream stream, ConstantPool pool) throws IOException { 65 _class = (ClassConstant) 66 pool.get(stream.readUnsignedShort(), new ClassConstant()); 67 signature = (NameAndTypeConstant) 68 pool.get(stream.readUnsignedShort(), new NameAndTypeConstant()); 69 } 70 } 71 | Popular Tags |