1 16 17 package org.cojen.classfile.constant; 18 19 import java.io.DataOutput ; 20 import java.io.IOException ; 21 import org.cojen.classfile.ConstantInfo; 22 import org.cojen.classfile.ConstantPool; 23 24 30 public class ConstantInterfaceMethodInfo extends ConstantInfo { 31 private final ConstantClassInfo mParentClass; 32 private final ConstantNameAndTypeInfo mNameAndType; 33 34 public ConstantInterfaceMethodInfo(ConstantClassInfo parentClass, 35 ConstantNameAndTypeInfo nameAndType) { 36 super(TAG_INTERFACE_METHOD); 37 mParentClass = parentClass; 38 mNameAndType = nameAndType; 39 } 40 41 public ConstantClassInfo getParentClass() { 42 return mParentClass; 43 } 44 45 public ConstantNameAndTypeInfo getNameAndType() { 46 return mNameAndType; 47 } 48 49 public int hashCode() { 50 return mNameAndType.hashCode(); 51 } 52 53 public boolean equals(Object obj) { 54 if (obj instanceof ConstantInterfaceMethodInfo) { 55 ConstantInterfaceMethodInfo other = 56 (ConstantInterfaceMethodInfo)obj; 57 return (mParentClass.equals(other.mParentClass) && 58 mNameAndType.equals(other.mNameAndType)); 59 } 60 61 return false; 62 } 63 64 public void writeTo(DataOutput dout) throws IOException { 65 super.writeTo(dout); 66 dout.writeShort(mParentClass.getIndex()); 67 dout.writeShort(mNameAndType.getIndex()); 68 } 69 70 public String toString() { 71 StringBuffer buf = 72 new StringBuffer ("CONSTANT_InterfaceMethodref_info: "); 73 buf.append(getParentClass().getType().getFullName()); 74 75 ConstantNameAndTypeInfo cnati = getNameAndType(); 76 77 buf.append(' '); 78 buf.append(cnati.getName()); 79 buf.append(' '); 80 buf.append(cnati.getType()); 81 82 return buf.toString(); 83 } 84 } 85 | Popular Tags |