1 16 17 package org.cojen.classfile.attribute; 18 19 import java.io.DataInput ; 20 import java.io.DataOutput ; 21 import java.io.IOException ; 22 import org.cojen.classfile.Attribute; 23 import org.cojen.classfile.ConstantPool; 24 import org.cojen.classfile.constant.ConstantUTFInfo; 25 26 32 public class SignatureAttr extends Attribute { 33 private final ConstantUTFInfo mSignature; 34 35 public SignatureAttr(ConstantPool cp, ConstantUTFInfo signature) { 36 this(cp, SIGNATURE, signature); 37 } 38 39 public SignatureAttr(ConstantPool cp, String name, ConstantUTFInfo signature) { 40 super(cp, name); 41 mSignature = signature; 42 } 43 44 public SignatureAttr(ConstantPool cp, String name, int length, DataInput din) 45 throws IOException 46 { 47 super(cp, name); 48 int index = din.readUnsignedShort(); 49 if ((length -= 2) > 0) { 50 din.skipBytes(length); 51 } 52 mSignature = (ConstantUTFInfo) cp.getConstant(index); 53 } 54 55 58 public ConstantUTFInfo getSignature() { 59 return mSignature; 60 } 61 62 65 public int getLength() { 66 return 2; 67 } 68 69 public void writeDataTo(DataOutput dout) throws IOException { 70 dout.writeShort(mSignature.getIndex()); 71 } 72 } 73 | Popular Tags |