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.ConstantInfo; 24 import org.cojen.classfile.ConstantPool; 25 26 32 public class ConstantValueAttr extends Attribute { 33 34 private final ConstantInfo mConstant; 35 36 public ConstantValueAttr(ConstantPool cp, ConstantInfo constant) { 37 super(cp, CONSTANT_VALUE); 38 mConstant = constant; 39 } 40 41 public ConstantValueAttr(ConstantPool cp, String name, ConstantInfo constant) { 42 super(cp, name); 43 mConstant = constant; 44 } 45 46 public ConstantValueAttr(ConstantPool cp, String name, int length, DataInput din) 47 throws IOException 48 { 49 super(cp, name); 50 int index = din.readUnsignedShort(); 51 if ((length -= 2) > 0) { 52 din.skipBytes(length); 53 } 54 mConstant = cp.getConstant(index); 55 } 56 57 public ConstantInfo getConstant() { 58 return mConstant; 59 } 60 61 public int getLength() { 62 return 2; 63 } 64 65 public void writeDataTo(DataOutput dout) throws IOException { 66 dout.writeShort(mConstant.getIndex()); 67 } 68 } 69 | Popular Tags |