X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Fnet%2Fpterodactylus%2Fsone%2Fweb%2Fpage%2FPage.java;h=297081ea394a063505b6142f87d08ac463a41888;hb=1c777f49db5a70349c52e851e9dd0204bd2dd64e;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..297081e 100644 --- a/src/main/java/net/pterodactylus/sone/web/page/Page.java +++ b/src/main/java/net/pterodactylus/sone/web/page/Page.java @@ -1,5 +1,5 @@ /* - * shortener - Page.java - Copyright © 2010 David Roden + * Sone - Page.java - Copyright © 2010 David Roden * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -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