diff options
author | Matt Windsor <matt@deling.(none)> | 2011-03-18 08:28:09 +0000 |
---|---|---|
committer | Matt Windsor <matt@deling.(none)> | 2011-03-18 08:28:09 +0000 |
commit | d547f87da5f68c12dede7c9d45618cae11ff5699 (patch) | |
tree | 613aa95d94b363c72ba9a7be639c74f76edf81f8 /src/uk/org/ury/server/ServerRequestHandler.java | |
parent | c8bb324e757587e742df0824304144e1eb881cee (diff) |
Mega-commit to the rescue! Added Javadoc snapshot (admittedly old); show UI now fixed-layout; UI uses system selection colours for accents; now uses bapsserver password and can thus talk to show database relations; removed member relation dependencies until further notice; attempted to get application and applet launchers working but having issues with the latter; started working on a server communicating via a minimal implementation of HTTP 1.1 (standardisation required eventually).
Diffstat (limited to 'src/uk/org/ury/server/ServerRequestHandler.java')
-rw-r--r-- | src/uk/org/ury/server/ServerRequestHandler.java | 96 |
1 files changed, 96 insertions, 0 deletions
diff --git a/src/uk/org/ury/server/ServerRequestHandler.java b/src/uk/org/ury/server/ServerRequestHandler.java new file mode 100644 index 0000000..f67f927 --- /dev/null +++ b/src/uk/org/ury/server/ServerRequestHandler.java @@ -0,0 +1,96 @@ +/** + * + */ +package uk.org.ury.server; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +import uk.org.ury.server.Server; +import uk.org.ury.server.RequestHandler; +import uk.org.ury.server.exceptions.HandleFailureException; + + +/** + * A request handler for server queries. + * + * @author Matt Windsor + */ + +public class ServerRequestHandler implements RequestHandler +{ + /** + * Handle a server GET request (that is, a request for data + * output). + * + * @param parameters A key-value map of parameters supplied with + * the server request. Typically, the function + * parameter will detail the function that the + * request handler is expected to perform. + * + * @param server The server from which the request originated. + * This will be able to provide the handler with + * pooled resources, for example the database. + * + * @return A list of lines to return in the body of the + * server's response to the client. + * + * @throws HandleFailureException if the handler cannot + * handle the request. + */ + + @Override + public List<String> + handleGetRequest (Map<String, String> parameters, Server server) + throws HandleFailureException + { + List<String> response = new ArrayList<String> (); + + if (parameters.containsKey ("function")) + { + String function = parameters.get ("function"); + + if (function.equals ("info")) + { + getInfo (response, server); + } + else if (function.equals ("help")) + { + response.add ("INFO: Available functions:"); + response.add ("INFO: info - Get server information."); + } + else if (function.equals ("test")) + response.add ("INFO: Test succeeded."); + else + throw new HandleFailureException ("Unknown function: " + + function + ". (Try 'function=help'.)"); + + } + else + throw new HandleFailureException ("No function provided. (Try 'function=help'.)"); + + return response; + } + + + /** + * Retrieve information about the server. + * + * @param response The response list to populate. + * + * @param server The server providing database resources. + * + * @throws HandleFailureException if an error occurs + * that thwarts the handling of the request. + */ + + private void + getInfo (List<String> response, Server server) + throws HandleFailureException + { + response.add ("INFO: University Radio York BAPS Replacement"); + response.add ("INFO: Server version is " + server.getVersion ()); + } + +} |