aboutsummaryrefslogtreecommitdiff
path: root/src/uk/org/ury/server/RequestHandler.java
blob: a8f434dadf6653760d7e70c328549f59d31a45f9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
package uk.org.ury.server;

import java.util.List;
import java.util.Map;

import uk.org.ury.server.exceptions.HandleFailureException;


/**
 * Interface for classes that can handle requests addressed to their 
 * class name from the main server.
 * 
 * For an example of how to implement a RequestHandler, see 
 * ServerRequestHandler.
 * 
 * @author  Matt Windsor
 */

public interface 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.
   */
  
  public List<String>
  handleGetRequest (Map<String, String> parameters, Server server)
  throws HandleFailureException;
}