package org.jboss.resteasy.util;

import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;

import org.jboss.resteasy.resteasy_jaxrs.i18n.Messages;

Author:Bill Burke
Version:$Revision: 1 $
/** * @author <a href="mailto:bill@burkecentral.com">Bill Burke</a> * @version $Revision: 1 $ */
public class InputStreamToByteArray extends InputStream { protected InputStream delegate; protected ByteArrayOutputStream os = new ByteArrayOutputStream(); public InputStreamToByteArray(final InputStream delegate) { this.delegate = delegate; } public byte[] toByteArray() { return os.toByteArray(); } @Override public int read() throws IOException { int b = delegate.read(); if (b > -1) os.write((byte) b); return b; } @Override public int read(byte[] bytes) throws IOException { int num = delegate.read(bytes); if (num > 0) { os.write(bytes, 0, num); } return num; } @Override public int read(byte[] bytes, int off, int len) throws IOException { int num = delegate.read(bytes, off, len); if (num > 0) { os.write(bytes, off, num); } return num; } @Override public long skip(long l) throws IOException { return delegate.skip(l); } @Override public int available() throws IOException { return delegate.available(); } @Override public void close() throws IOException { delegate.close(); } @Override public void mark(int i) { delegate.mark(i); } @Override public void reset() throws IOException { throw new RuntimeException(Messages.MESSAGES.streamWrappedBySignature()); } @Override public boolean markSupported() { return delegate.markSupported(); } }