package photoSpreadUtilities; import java.io.EOFException; import java.io.IOException; /**************************** RAMReaderShortArray *************** * * @author paepcke * * Class: Given a short[], instances of this class satisfy the Java * DataInput interface. */ public class RAMReaderBooleanArray extends RAMReader { boolean[] theInput = null; public RAMReaderBooleanArray(boolean[] anInput) { theInput = anInput; } /** * @return Length of the input array: */ @Override protected int length() { return theInput.length; } /** * Return next byte from the input array, without advancing the input * array read pointer. If needed, pops one number from the input array. * Chops that number into bytes, and returns the head byte to callers. * When the whole popped number has been retrieved by callers to {@code * getOneByte()}, this method pops another number from the input array * when called the next time. * * @return One byte, read from the input array * @throws IOException */ @Override protected byte peek() throws IOException { if (arrayPointer >= theInput.length) throw new EOFException("Reached end of given RAM array"); boolean resBool = theInput[arrayPointer]; if (resBool) return (byte) 1; else return (byte) 0; } @Override protected byte getOneByte() throws IOException { byte res = peek(); arrayPointer++; return res; } /** * Set input stream back to its beginning */ public void reset() { arrayPointer = 0; } } // end class RAMReaderBooleanArray