package org.fcrepo.server.storage.tasks;
import java.io.IOException;
import java.io.OutputStream;
import javax.ws.rs.WebApplicationException;
import javax.ws.rs.core.StreamingOutput;
import org.fcrepo.server.errors.ServerException;
import org.fcrepo.server.storage.translation.DOTranslator;
import org.fcrepo.server.storage.types.DigitalObject;
public class StreamingExport implements StreamingOutput {
final DOTranslator m_translator;
final DigitalObject m_object;
final String m_exportFormat;
final String m_encoding;
final int m_transContext;
public StreamingExport(DOTranslator translator, DigitalObject object,
String exportFormat, String encoding, int transContext) {
m_translator = translator;
m_object = object;
m_exportFormat = exportFormat;
m_encoding = encoding;
m_transContext = transContext;
}
@Override
public void write(OutputStream output) throws IOException,
WebApplicationException {
try {
m_translator.serialize(m_object, output,
m_exportFormat, m_encoding, m_transContext);
} catch (ServerException e) {
throw new WebApplicationException(e);
}
}
}