X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;ds=sidebyside;f=src%2Fmain%2Fjava%2Fnet%2Fpterodactylus%2Fsone%2Fweb%2Fpage%2FPage.java;h=dd54f41b035d7a44697aeb7ae3aeea4b12a05679;hb=b7e61f73b7f8661c9f9691c078e7908b81784d3f;hp=8f2a4d772c03c4155554ce63313e259f96b826b3;hpb=13bc2f6ae2379dd9f81edb4848971c8b4e91aabd;p=Sone.git
diff --git a/src/main/java/net/pterodactylus/sone/web/page/Page.java b/src/main/java/net/pterodactylus/sone/web/page/Page.java
index 8f2a4d7..dd54f41 100644
--- a/src/main/java/net/pterodactylus/sone/web/page/Page.java
+++ b/src/main/java/net/pterodactylus/sone/web/page/Page.java
@@ -30,21 +30,21 @@ import freenet.support.api.HTTPRequest;
/**
* A page is responsible for handling HTTP requests and creating appropriate
* responses.
- *
+ *
* @author David âBombeâ Roden
*/
public interface Page {
/**
* Returns the path of this toadlet.
- *
+ *
* @return The path of this toadlet
*/
public String getPath();
/**
* Handles a request.
- *
+ *
* @param request
* The request to handle
* @return The response
@@ -53,7 +53,7 @@ public interface Page {
/**
* Container for request data.
- *
+ *
* @author David âBombeâ Roden
*/
public class Request {
@@ -103,7 +103,7 @@ public interface Page {
/**
* Creates a new request that holds the given data.
- *
+ *
* @param uri
* The URI of the request
* @param method
@@ -122,16 +122,16 @@ public interface Page {
/**
* Returns the URI that was accessed.
- *
+ *
* @return The accessed URI
*/
- public URI getURI() {
+ public URI getUri() {
return uri;
}
/**
* Returns the HTTP method that was used to access the page.
- *
+ *
* @return The HTTP method
*/
public Method getMethod() {
@@ -140,7 +140,7 @@ public interface Page {
/**
* Returns the HTTP request.
- *
+ *
* @return The HTTP request
*/
public HTTPRequest getHttpRequest() {
@@ -149,7 +149,7 @@ public interface Page {
/**
* Returns the toadlet context.
- *
+ *
* @return The toadlet context
*/
public ToadletContext getToadletContext() {
@@ -160,7 +160,7 @@ public interface Page {
/**
* Container for the HTTP response of a {@link Page}.
- *
+ *
* @author David âBombeâ Roden
*/
public class Response {
@@ -182,7 +182,7 @@ public interface Page {
/**
* Creates a new response.
- *
+ *
* @param statusCode
* The HTTP status code of the response
* @param statusText
@@ -198,7 +198,7 @@ public interface Page {
/**
* Creates a new response.
- *
+ *
* @param statusCode
* The HTTP status code of the response
* @param statusText
@@ -209,12 +209,12 @@ public interface Page {
* The content of the reponse body
*/
public Response(int statusCode, String statusText, String contentType, byte[] content) {
- this(statusCode, statusText, contentType, null, content);
+ this(statusCode, statusText, contentType, new HashMap(), content);
}
/**
* Creates a new response.
- *
+ *
* @param statusCode
* The HTTP status code of the response
* @param statusText
@@ -230,7 +230,7 @@ public interface Page {
/**
* Creates a new response.
- *
+ *
* @param statusCode
* The HTTP status code of the response
* @param statusText
@@ -248,7 +248,7 @@ public interface Page {
/**
* Creates a new response.
- *
+ *
* @param statusCode
* The HTTP status code of the response
* @param statusText
@@ -270,7 +270,7 @@ public interface Page {
/**
* Returns the HTTP status code of the response.
- *
+ *
* @return The HTTP status code
*/
public int getStatusCode() {
@@ -279,7 +279,7 @@ public interface Page {
/**
* Returns the HTTP status text.
- *
+ *
* @return The HTTP status text
*/
public String getStatusText() {
@@ -288,7 +288,7 @@ public interface Page {
/**
* Returns the content type of the response.
- *
+ *
* @return The content type of the reponse
*/
public String getContentType() {
@@ -298,7 +298,7 @@ public interface Page {
/**
* Returns HTTP headers of the response. May be {@code null} if no
* headers are returned.
- *
+ *
* @return The response headers, or {@code null} if there are no
* response headers
*/
@@ -307,9 +307,24 @@ public interface Page {
}
/**
+ * Sets the HTTP header with the given name to the given value. Multiple
+ * headers with the same name are not implemented so that latest call to
+ * {@link #setHeader(String, String)} determines what is sent to the
+ * browser.
+ *
+ * @param name
+ * The name of the header
+ * @param value
+ * The value of the header
+ */
+ public void setHeader(String name, String value) {
+ headers.put(name, value);
+ }
+
+ /**
* Returns the content of the response body. May be {@code null} if the
* response does not have a body.
- *
+ *
* @return The content of the response body
*/
public InputStream getContent() {
@@ -322,7 +337,7 @@ public interface Page {
/**
* Returns the UTF-8 representation of the given text.
- *
+ *
* @param text
* The text to encode
* @return The encoded text
@@ -338,7 +353,7 @@ public interface Page {
/**
* Creates a header map containing a single header.
- *
+ *
* @param name
* The name of the header
* @param value
@@ -355,14 +370,14 @@ public interface Page {
/**
* {@link Response} implementation that performs an HTTP redirect.
- *
+ *
* @author David âBombeâ Roden
*/
public class RedirectResponse extends Response {
/**
* Creates a new redirect response to the new location.
- *
+ *
* @param newLocation
* The new location
*/
@@ -372,7 +387,7 @@ public interface Page {
/**
* Creates a new redirect response to the new location.
- *
+ *
* @param newLocation
* The new location
* @param permanent