/**
* Copyright 2006 by Know-Center, Graz, Austria
* PDF-AS has been contracted by the E-Government Innovation Center EGIZ, a
* joint initiative of the Federal Chancellery Austria and Graz University of
* Technology.
*
* Licensed under the EUPL, Version 1.1 or - as soon they will be approved by
* the European Commission - subsequent versions of the EUPL (the "Licence");
* You may not use this work except in compliance with the Licence.
* You may obtain a copy of the Licence at:
* http://www.osor.eu/eupl/
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the Licence is distributed on an "AS IS" basis,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the Licence for the specific language governing permissions and
* limitations under the Licence.
*
* This product combines work with different licenses. See the "NOTICE" text
* file for details on the various modules and licenses.
* The "NOTICE" text file is part of the distribution. Any derivative works
* that you distribute must include a readable copy of the "NOTICE" text file.
*/
package at.gv.egiz.pdfas.io;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import at.gv.egiz.pdfas.api.io.DataSink;
/**
* @author wprinz
*
*/
public class ByteArrayDataSink implements DataSink
{
/**
* The byte output stream.
*/
ByteArrayOutputStream baos = null;
/**
* The mime type.
*/
protected String mimeType = null;
/**
* The character encoding.
*/
protected String characterEncoding = null;
/**
* @see at.gv.egiz.pdfas.api.io.DataSink#createOutputStream(java.lang.String)
*/
public OutputStream createOutputStream(String mimeType) throws IOException
{
return createOutputStream(mimeType, null);
}
/**
* @see at.gv.egiz.pdfas.api.io.DataSink#createOutputStream(java.lang.String,
* java.lang.String)
*/
public OutputStream createOutputStream(String mimeType, String characterEncoding) throws IOException
{
this.mimeType = mimeType;
this.characterEncoding = characterEncoding;
this.baos = new ByteArrayOutputStream();
return this.baos;
}
/**
* @see at.gv.egiz.pdfas.api.io.DataSink#getMimeType()
*/
public String getMimeType()
{
return this.mimeType;
}
/**
* @see at.gv.egiz.pdfas.api.io.DataSink#getCharacterEncoding()
*/
public String getCharacterEncoding()
{
return this.characterEncoding;
}
/**
* Returns the byte data, or null if none available.
*
*
* Note that internally, this just calls the {@link ByteArrayOutputStream#toByteArray()} method.
*
*
* @return Returns the byte data, or null if none available.
*/
public byte [] getData()
{
if (this.baos == null)
{
return null;
}
return this.baos.toByteArray();
}
}