00001 package de.fub.bytecode.generic;
00002
00003 import java.io.*;
00004 import de.fub.bytecode.util.ByteSequence;
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014 public class BIPUSH extends Instruction implements ConstantPushInstruction {
00015 private byte b;
00016
00017
00018
00019
00020
00021 BIPUSH() {}
00022
00023
00024 public BIPUSH(byte b) {
00025 super(de.fub.bytecode.Constants.BIPUSH, (short)2);
00026 this.b = b;
00027 }
00028
00029
00030
00031
00032
00033
00034
00035
00036 public void accept(Visitor v) {
00037 v.visitPushInstruction(this);
00038 v.visitStackProducer(this);
00039 v.visitTypedInstruction(this);
00040 v.visitConstantPushInstruction(this);
00041 v.visitBIPUSH(this);
00042 }
00043
00044
00045
00046 public void dump(DataOutputStream out) throws IOException {
00047 super.dump(out);
00048 out.writeByte(b);
00049 }
00050
00051
00052 public Type getType(ConstantPoolGen cp) {
00053 return Type.BYTE;
00054 }
00055 public Number getValue() { return new Integer(b); }
00056
00057
00058
00059 protected void initFromFile(ByteSequence bytes, boolean wide) throws IOException
00060 {
00061 length = 2;
00062 b = bytes.readByte();
00063 }
00064
00065
00066
00067 public String toString(boolean verbose) {
00068 return super.toString(verbose) + " " + b;
00069 }
00070 }