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
- }
- }