diff options
author | Matt Windsor <mattwindsor@btinternet.com> | 2011-03-21 21:54:31 +0000 |
---|---|---|
committer | Matt Windsor <mattwindsor@btinternet.com> | 2011-03-21 21:54:31 +0000 |
commit | df7d7981b56a4560c95ea7e9b194080e93398ecf (patch) | |
tree | b3ae4f02d23ae1f7f4951c776ee8d91b0047dd6f /src/uk/org/ury/backend/server/ServerRequestHandler.java | |
parent | 2d073129857a42ab4195cd433c8be152e357033f (diff) |
GREAT PACKAGE RESHUFFLE: Everything is now organised into frontend, backend and common (to frontend and backend) packages. Things may have been broken. Doc refresh.
Diffstat (limited to 'src/uk/org/ury/backend/server/ServerRequestHandler.java')
-rw-r--r-- | src/uk/org/ury/backend/server/ServerRequestHandler.java | 95 |
1 files changed, 95 insertions, 0 deletions
diff --git a/src/uk/org/ury/backend/server/ServerRequestHandler.java b/src/uk/org/ury/backend/server/ServerRequestHandler.java new file mode 100644 index 0000000..82764f2 --- /dev/null +++ b/src/uk/org/ury/backend/server/ServerRequestHandler.java @@ -0,0 +1,95 @@ +/** + * + */ +package uk.org.ury.backend.server; + +import java.util.HashMap; +import java.util.Map; + +import uk.org.ury.backend.server.ApiRequestHandler; +import uk.org.ury.backend.server.Server; +import uk.org.ury.backend.server.exceptions.HandleFailureException; + + +/** + * A request handler for server queries. + * + * @author Matt Windsor + */ + +public class ServerRequestHandler implements ApiRequestHandler +{ + /** + * 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 Map<String, Object> + handleGetRequest (Map<String, String> parameters, Server server) + throws HandleFailureException + { + Map<String, Object> response = new HashMap<String, Object> (); + + if (parameters.containsKey ("function")) + { + String function = parameters.get ("function"); + + if (function.equals ("info")) + { + getInfo (response, server); + } + else if (function.equals ("help")) + { + response.put ("INFO", "Available functions:"); + response.put ("INFO", "info - Get server information."); + } + else if (function.equals ("test")) + response.put ("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 (Map<String, Object> response, Server server) + throws HandleFailureException + { + response.put ("INFO", "University Radio York BAPS Replacement"); + response.put ("INFO", "Server version is " + server.getVersion ()); + } + +} |