1 28 29 package com.caucho.bytecode; 30 31 import com.caucho.log.Log; 32 33 import java.io.IOException ; 34 import java.util.logging.Logger ; 35 36 39 public class SignatureAttribute extends Attribute { 40 static private final Logger log = Log.open(SignatureAttribute.class); 41 42 private String _signature; 43 44 SignatureAttribute() 45 { 46 super("Signature"); 47 } 48 49 SignatureAttribute(String signature) 50 { 51 super("Signature"); 52 53 _signature = signature; 54 } 55 56 59 public String getSignature() 60 { 61 return _signature; 62 } 63 64 67 public void read(ByteCodeParser in) 68 throws IOException 69 { 70 int length = in.readInt(); 71 72 if (length != 2) 73 throw new IOException ("expected length of 2 at " + length); 74 75 int code = in.readShort(); 76 _signature = in.getUTF8(code); 77 } 78 79 82 public void write(ByteCodeWriter out) 83 throws IOException 84 { 85 out.writeUTF8Const(getName()); 86 out.writeInt(2); 87 out.writeUTF8Const(_signature); 88 } 89 90 93 public Attribute export(JavaClass source, JavaClass target) 94 { 95 ConstantPool cp = target.getConstantPool(); 96 97 cp.addUTF8(getName()); 98 cp.addUTF8(_signature); 99 100 return new SignatureAttribute(_signature); 101 } 102 103 public String toString() 104 { 105 return "SignatureAttribute[" + _signature + "]"; 106 } 107 } 108 | Popular Tags |