package ch.elexis.fop.service.xmlstream; import java.io.ByteArrayOutputStream; import java.io.InputStream; import java.io.OutputStream; import java.util.Map; import org.apache.fop.apps.MimeConstants; import ch.elexis.core.services.IFormattedOutput; public class XmlStreamToPs implements IFormattedOutput { private static XmlStreamToPs instance; private XmlStreamToPs(){ } public static XmlStreamToPs getInstance(){ if (instance == null) instance = new XmlStreamToPs(); return instance; } @Override public void transform(Object xmlStream, InputStream xslt, OutputStream ps){ transform(xmlStream, xslt, ps, null); } @Override public void transform(Object xmlStream, InputStream xslt, OutputStream ps, Map<String, String> transformerParameters){ if (xmlStream instanceof ByteArrayOutputStream) { XmlStreamToMimeType.getInstance().transform((InputStream) xmlStream, xslt, ps, MimeConstants.MIME_POSTSCRIPT, transformerParameters); transform(xmlStream, xslt, ps, null); } else { throw new IllegalStateException( "Input Object [" + xmlStream + "] is not of type InputStream"); } } }