package is.idega.idegaweb.campus.block.finance.business; import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.OutputStream; import javax.servlet.http.HttpServletRequest; import com.idega.io.DownloadWriter; import com.idega.io.MediaWritable; import com.idega.io.MemoryFileBuffer; import com.idega.io.MemoryInputStream; import com.idega.io.MemoryOutputStream; import com.idega.presentation.IWContext; public class CampusTariffReportWriter extends DownloadWriter implements MediaWritable { public static final String BUFFER = "excel_buffer"; public static final String FILE_NAME = "excel_file_name"; protected MemoryFileBuffer buffer = null; public String getMimeType() { if (this.buffer != null) { return this.buffer.getMimeType(); } else { return super.getMimeType(); } } public void writeTo(OutputStream out) throws IOException { if (this.buffer != null) { MemoryInputStream mis = new MemoryInputStream(this.buffer); ByteArrayOutputStream baos = new ByteArrayOutputStream(); while (mis.available() > 0) { baos.write(mis.read()); } baos.writeTo(out); } else { System.err.println("buffer is null"); } } public void init(HttpServletRequest req, IWContext iwc) { try { if (req.getParameter(BUFFER) != null) { String inputBuffer = req.getParameter(BUFFER); String name = req.getParameter(FILE_NAME); this.buffer = new MemoryFileBuffer(); MemoryOutputStream out = new MemoryOutputStream(buffer); out.write(inputBuffer.getBytes()); setAsDownload(iwc, name, this.buffer.length()); } } catch (Exception e) { e.printStackTrace(); } } }