Revision: 3541 http://archive-access.svn.sourceforge.net/archive-access/?rev=3541&view=rev Author: bradtofel Date: 2011-10-25 00:41:52 +0000 (Tue, 25 Oct 2011) Log Message: ----------- FEATURE: now creator can specify additional HTTP headers to include in the redirect Modified Paths: -------------- trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/exception/BetterRequestException.java Modified: trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/exception/BetterRequestException.java =================================================================== --- trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/exception/BetterRequestException.java 2011-10-25 00:40:35 UTC (rev 3540) +++ trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/exception/BetterRequestException.java 2011-10-25 00:41:52 UTC (rev 3541) @@ -19,6 +19,9 @@ */ package org.archive.wayback.exception; +import java.util.HashMap; +import java.util.Map; + import javax.servlet.http.HttpServletResponse; /** @@ -40,6 +43,7 @@ protected static final String ID = "betterRequest"; private String betterURI; private int status = HttpServletResponse.SC_FOUND; + Map<String,String> extraHeaders; /** @@ -53,6 +57,7 @@ this.betterURI = betterURI; this.status = status; id = ID; + extraHeaders = new HashMap<String,String>(); } /** * Constructor @@ -63,8 +68,12 @@ super("Better URI for query"); this.betterURI = betterURI; id = ID; + extraHeaders = new HashMap<String,String>(); } + public void addHeader(String name, String value) { + extraHeaders.put(name, value); + } /** * @return Returns the betterURI. */ @@ -75,4 +84,14 @@ return status; } + public void generateResponse(HttpServletResponse response) { + response.setStatus(status); + response.setHeader("Location", betterURI); + if(extraHeaders.size() > 0) { + for (Map.Entry<String,String> entry : extraHeaders.entrySet()) { + response.setHeader(entry.getKey(), entry.getValue()); + } + } + } + } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |