package com.coderising.jvm.loader;
import com.coderising.jvm.util.Util;
public class ByteCodeIterator {
private byte[] codes;
private int pos;
public ByteCodeIterator(byte[] codes){
this.codes=codes;
this.pos=0;
}
public byte[] getByte(int len){
byte[] b=new byte[len];
if(pos+len>codes.length){
}
for(int i=0;i<len;i++){
b[i]=codes[pos++];
}
return b;
}
public void back(int num){
pos=pos-num;
}
public String nextUxToHexString(int len){
return Util.byteToHexString(getByte(len));
}
public int nextU1toInt(){
return Util.byteToInt(new byte[]{codes[pos++]});
}
public int nextU2toInt(){
return Util.byteToInt(new byte[]{codes[pos++],codes[pos++]});
}
public int nextU4toInt(){
return Util.byteToInt(new byte[]{codes[pos++],codes[pos++],codes[pos++],codes[pos++]});
}
public String nextU4toString(){
return Util.byteToHexString(new byte[]{codes[pos++],codes[pos++],codes[pos++],codes[pos++]});
}
public String nextU2toString(){
return Util.byteToHexString(new byte[]{codes[pos++],codes[pos++]});
}
}