package com.revolsys.io.page; public class ByteArrayPage extends AbstractPage { private final byte[] content; private int offset = 0; public ByteArrayPage(final PageManager pageManager, final int index, final int size) { super(pageManager, index); this.content = new byte[size]; } @Override public byte[] getContent() { return this.content; } @Override public int getOffset() { return this.offset; } @Override public int getSize() { return this.content.length; } @Override protected int readNextByte() { final byte b = this.content[this.offset]; this.offset++; return b & 0xff; } @Override public void setContent(final Page page) { final byte[] copyContent = page.getContent(); System.arraycopy(copyContent, 0, this.content, 0, copyContent.length); } @Override public void setOffset(final int offset) { if (offset > getSize()) { throw new IllegalArgumentException("Cannot set offset past end of file "); } else { this.offset = offset; } } @Override protected void writeByte(final int b) { this.content[this.offset++] = (byte)b; } }