ByteContent.java
/*
* ByteContent
*/
package gov.usgs.earthquake.product;
import gov.usgs.util.StreamUtils;
import java.io.IOException;
import java.io.InputStream;
import java.io.ByteArrayInputStream;
/**
* Content stored in a byte array.
*/
public class ByteContent extends AbstractContent {
/** The actual content. */
private final byte[] content;
/**
* Default constructor accepts a byte array.
*
* @param content
* the actual content. This should not be null.
*/
public ByteContent(final byte[] content) {
this.content = content;
setLength(Long.valueOf(content.length));
}
/**
* Convert any Content into ByteContent.
*
* Any content is read from the InputStream into a new underlying byte
* array.
*
* @param content
* existing content to read.
* @throws IOException
* when errors occur reading content.
*/
public ByteContent(final Content content) throws IOException {
super(content);
this.content = StreamUtils.readStream(content.getInputStream());
setLength(Long.valueOf(this.content.length));
}
/**
* @return a ByteArrayInputStream for the wrapped content.
*/
public InputStream getInputStream() throws IOException {
return new ByteArrayInputStream(content);
}
/**
* @return the wrapped byte array.
*/
public byte[] getByteArray() {
return content;
}
/**
* Free any resources associated with this content.
*/
public void close() {
// nothing to free
}
}