package org.basex.io.in;
import java.io.IOException;
import java.io.InputStream;
/**
* This input stream allows a lookup of the next byte to be returned
* by an {@link InputStream} reference.
*
* @author BaseX Team 2005-12, BSD License
* @author Christian Gruen
*/
public final class LookupInput extends InputStream {
/** Input stream. */
private final InputStream input;
/** Current value. */
private int curr;
/**
* Constructor.
* @param in buffer input to be wrapped
* @throws IOException I/O exception
*/
public LookupInput(final InputStream in) throws IOException {
input = in;
read();
}
/**
* Returns the current value.
* @return current value
*/
public int lookup() {
return curr;
}
@Override
public int read() throws IOException {
final int v = curr;
if(v != -1) curr = input.read();
return v;
}
}