/* * Copyright (C) 2011. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 3 or * version 2 as published by the Free Software Foundation. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * General Public License for more details. */ package func.lib; import java.io.ByteArrayOutputStream; import java.io.IOException; import java.nio.ByteBuffer; import uk.me.parabola.imgfmt.app.ImgFileWriter; /** * A writer that just writes to an array for testing. * * @author Steve Ratcliffe */ public class ArrayImgWriter implements ImgFileWriter { private final ByteArrayOutputStream out = new ByteArrayOutputStream(); public void sync() throws IOException { } public int position() { return out.size(); } public void position(long pos) { throw new UnsupportedOperationException(); } public void put(byte b) { out.write(b); } public void putChar(char c) { out.write(c & 0xff); out.write((c >> 8) & 0xff); } public void put3(int val) { out.write(val & 0xff); out.write((val >> 8) & 0xff); out.write((val >> 16) & 0xff); } public void putInt(int val) { out.write(val & 0xff); out.write((val >> 8) & 0xff); out.write((val >> 16) & 0xff); out.write((val >> 24) & 0xff); } public void put(byte[] val) { out.write(val, 0, val.length); } public void put(byte[] src, int start, int length) { out.write(src, start, length); } public void put(ByteBuffer src) { byte[] array = src.array(); out.write(array, 0, src.limit()); } public long getSize() { return out.size(); } public void close() throws IOException { out.close(); } public byte[] getBytes() { return out.toByteArray(); } }