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