X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Fcom%2Findexdata%2Fmkjsf%2Fpazpar2%2Fdata%2FResponses.java;fp=src%2Fmain%2Fjava%2Fcom%2Findexdata%2Fmkjsf%2Fpazpar2%2Fdata%2FResponses.java;h=71769c74b9fc013b49e031fa8b420e96fdbe2551;hb=3915cce4801de80bdb6db7f12a26d04d4371689f;hp=80d9ce39e941659847795f3ee731b8805f6baa81;hpb=641505fae22dcf83a1794707dcc39e821dbdd0ea;p=mkjsf-moved-to-github.git diff --git a/src/main/java/com/indexdata/mkjsf/pazpar2/data/Responses.java b/src/main/java/com/indexdata/mkjsf/pazpar2/data/Responses.java index 80d9ce3..71769c7 100644 --- a/src/main/java/com/indexdata/mkjsf/pazpar2/data/Responses.java +++ b/src/main/java/com/indexdata/mkjsf/pazpar2/data/Responses.java @@ -1,13 +1,18 @@ package com.indexdata.mkjsf.pazpar2.data; +import java.io.IOException; import java.io.Serializable; +import java.io.UnsupportedEncodingException; import java.util.List; import java.util.Map; import java.util.concurrent.ConcurrentHashMap; import javax.enterprise.context.SessionScoped; +import javax.faces.context.ExternalContext; +import javax.faces.context.FacesContext; import javax.inject.Named; +import org.apache.commons.io.FilenameUtils; import org.apache.log4j.Logger; import com.indexdata.mkjsf.errors.ErrorHelper; @@ -148,4 +153,15 @@ public class Responses implements Serializable { return null; } -} + public void download(String commandName) throws UnsupportedEncodingException, IOException { + logger.info(Utils.objectId(this) + " got a download request for " + + commandName); + FacesContext facesContext = FacesContext.getCurrentInstance(); + ExternalContext externalContext = facesContext.getExternalContext(); + externalContext.setResponseHeader("Content-Type","application/xml; charset=\"utf-8\""); + externalContext.setResponseHeader("Content-Length",String.valueOf(dataObjects.get(commandName).getXml().getBytes("UTF-8").length)); + externalContext.setResponseHeader("Content-Disposition","attachment;filename=\"" + commandName + ".xml\""); + externalContext.getResponseOutputStream().write(dataObjects.get(commandName).getXml().getBytes("UTF-8")); + facesContext.responseComplete(); + } +} \ No newline at end of file