001 package serp.bytecode.lowlevel;
002
003 import java.io.DataInput;
004 import java.io.DataOutput;
005 import java.io.IOException;
006
007 import serp.bytecode.visitor.BCVisitor;
008
009 /**
010 * MethodType
011 * u1 tag
012 * u2 descriptor_index
013 *
014 */
015 public class MethodTypeEntry extends Entry {
016 private int _descriptor_index; // Must ref a UTF8Entry representing a method descriptor
017
018 public MethodTypeEntry() {
019
020 }
021
022 public MethodTypeEntry(int _descriptor_index) {
023 this._descriptor_index = _descriptor_index;
024 }
025
026 public void acceptVisit(BCVisitor visitor) {
027 visitor.enterMethodTypeEntry(this);
028 visitor.exitMethodTypeEntry(this);
029 }
030
031 public int getType() {
032 return Entry.METHODTYPE;
033 }
034
035 void readData(DataInput in) throws IOException {
036 _descriptor_index = in.readUnsignedShort();
037 }
038
039 void writeData(DataOutput out) throws IOException {
040 out.writeShort(_descriptor_index);
041 }
042
043 public UTF8Entry getMethodDescriptorEntry() {
044 return (UTF8Entry) getPool().getEntry(_descriptor_index);
045 }
046 }