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    }