at.gv.egiz.pdfas.io
Class ByteArrayDataSource

java.lang.Object
  extended byat.gv.egiz.pdfas.io.ByteArrayDataSource
All Implemented Interfaces:
DataSource

public class ByteArrayDataSource
extends Object
implements DataSource

A byte array backed DataSource.

Author:
wprinz

Field Summary
protected  String characterEncoding
          The character encoding.
protected  byte[] data
          The byte array.
protected  String mimeType
          The mime type.
 
Constructor Summary
ByteArrayDataSource(byte[] data, String mimeType)
           
ByteArrayDataSource(byte[] data, String mimeType, String characterEncoding)
           
 
Method Summary
 InputStream createInputStream()
          Creates a new InputStream that allows to read out the document's binary data from the beginning.
 byte[] getAsByteArray()
          Returns the data of this DataSource as a byte array for random read only access.
 String getCharacterEncoding()
          Returns the character encoding of the data.
 int getLength()
          Returns the length (number of bytes) of the stream.
 String getMimeType()
          Returns the mime type of the data.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

data

protected byte[] data
The byte array.


mimeType

protected String mimeType
The mime type.


characterEncoding

protected String characterEncoding
The character encoding.

Constructor Detail

ByteArrayDataSource

public ByteArrayDataSource(byte[] data,
                           String mimeType)
Parameters:
data -
mimeType -

ByteArrayDataSource

public ByteArrayDataSource(byte[] data,
                           String mimeType,
                           String characterEncoding)
Parameters:
data -
mimeType -
characterEncoding -
Method Detail

createInputStream

public InputStream createInputStream()
Description copied from interface: DataSource
Creates a new InputStream that allows to read out the document's binary data from the beginning.

Specified by:
createInputStream in interface DataSource
Returns:
Returns the InputStream with the binary data.
See Also:
DataSource.createInputStream()

getAsByteArray

public byte[] getAsByteArray()
Description copied from interface: DataSource
Returns the data of this DataSource as a byte array for random read only access.

Calling this method indicates that you need a byte array for random read only access. The DataSource implementation should of course cache this byte array to avoid too much memory usage.

Performance analysis has shown that the libraries internally convert the streams to byte arrays and that file system access is very slow.

Never write to this byte array!

Specified by:
getAsByteArray in interface DataSource
Returns:
Returns the data of this DataSource as a byte array for random read only access.
See Also:
DataSource.getAsByteArray()

getCharacterEncoding

public String getCharacterEncoding()
Description copied from interface: DataSource
Returns the character encoding of the data.

This makes only sense for character based mime types.

Specified by:
getCharacterEncoding in interface DataSource
Returns:
Returns the character encoding of the data or null if no encoding is applicable (e.g. if the data is binary).
See Also:
DataSource.getCharacterEncoding()

getMimeType

public String getMimeType()
Description copied from interface: DataSource
Returns the mime type of the data.

Specified by:
getMimeType in interface DataSource
Returns:
Returns the mime type of the data.
See Also:
DataSource.getMimeType()

getLength

public int getLength()
Description copied from interface: DataSource
Returns the length (number of bytes) of the stream.

Specified by:
getLength in interface DataSource
Returns:
Returns the length (number of bytes) of the stream.
See Also:
DataSource.getLength()


Copyright © 2006-2010. All Rights Reserved.