org.jboss.resteasy.util.InputStreamToByteArray Maven / Gradle / Ivy
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 $
*/
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();
}
}