From: <tri...@us...> - 2009-01-29 16:13:06
|
Revision: 1000 http://equanda.svn.sourceforge.net/equanda/?rev=1000&view=rev Author: triathlon98 Date: 2009-01-29 16:12:57 +0000 (Thu, 29 Jan 2009) Log Message: ----------- EQ-319 BinaryStreamResponse Added Paths: ----------- trunk/equanda-tapestry5/src/main/java/org/equanda/tapestry5/data/BinaryStreamResponse.java Added: trunk/equanda-tapestry5/src/main/java/org/equanda/tapestry5/data/BinaryStreamResponse.java =================================================================== --- trunk/equanda-tapestry5/src/main/java/org/equanda/tapestry5/data/BinaryStreamResponse.java (rev 0) +++ trunk/equanda-tapestry5/src/main/java/org/equanda/tapestry5/data/BinaryStreamResponse.java 2009-01-29 16:12:57 UTC (rev 1000) @@ -0,0 +1,78 @@ +/** + * This file is part of the equanda project. + * + * The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF + * ANY KIND, either express or implied. See the License for the specific language governing rights and + * limitations under the License. + * + * Alternatively, the contents of this file may be used under the terms of + * either the GNU General Public License Version 2 or later (the "GPL"), or + * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), + * in which case the provisions of the GPL or the LGPL are applicable instead + * of those above. If you wish to allow use of your version of this file only + * under the terms of either the GPL or the LGPL, and not to allow others to + * use your version of this file under the terms of the MPL, indicate your + * decision by deleting the provisions above and replace them with the notice + * and other provisions required by the GPL or the LGPL. If you do not delete + * the provisions above, a recipient may use your version of this file under + * the terms of any one of the MPL, the GPL or the LGPL. + */ + +package org.equanda.tapestry5.data; + +import org.apache.tapestry5.StreamResponse; +import org.apache.tapestry5.services.Response; + +import java.io.ByteArrayInputStream; +import java.io.IOException; +import java.io.InputStream; + +/** + * Container for a (string) message + * + * @author <a href="mailto:jo...@pr...">Joachim Van der Auwera</a> + */ +public class BinaryStreamResponse + implements StreamResponse +{ + private String mimeType; + private String fileName; + private byte[] data; + + public BinaryStreamResponse( byte[] data, String mime ) + { + this.data = data; + this.mimeType = mime; + } + + public BinaryStreamResponse( byte[] data, String mime, String fileName ) + { + this.data = data; + this.mimeType = mime; + this.fileName = fileName; + } + + public String getContentType() + { + return mimeType; + } + + public InputStream getStream() + throws IOException + { + return new ByteArrayInputStream( data ); + } + + public void prepareResponse( Response response ) + { + if ( null != fileName ) response.setHeader( "Content-Disposition", "attachment; filename=" + fileName ); + if ( null != mimeType ) response.setHeader( "Content-Type", mimeType ); + response.setHeader( "Expires", "0" ); + response.setHeader( "Cache-Control", "must-revalidate, post-check=0, pre-check=0" ); + response.setHeader( "Pragma", "public" ); + } +} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |