8ba80db7bee0553a6e1049ac4570f472f5efa0d4
[jalview.git] / src / jalview / gbtest / TestListener.java
1 package jalview.gbtest;
2
3 import java.io.IOException;
4 import java.net.BindException;
5 import java.net.URI;
6
7 import javax.servlet.http.HttpServletRequest;
8 import javax.servlet.http.HttpServletResponse;
9
10 import jalview.bin.Cache;
11 import jalview.gui.Desktop;
12 import jalview.gui.SequenceFetcher;
13 import jalview.httpserver.AbstractRequestHandler;
14 import jalview.structure.SelectionSource;
15 import jalview.util.DBRefUtils;
16
17 public class TestListener extends AbstractRequestHandler
18         implements SelectionSource
19 {
20
21   private String MY_PATH = "TEST";
22
23   /**
24    * Constructor that registers this as an Http request handler on path
25    * /chimeraN, where N is incremented for each instance. Call getUri to get the
26    * resulting URI for this handler.
27    * 
28    * @param chimeraBinding
29    * @throws BindException
30    *           if no free port can be assigned
31    */
32   public TestListener() throws BindException
33   {
34     setPath(MY_PATH);
35     registerHandler();
36   }
37
38   @Override
39   protected void processRequest(HttpServletRequest request,
40           HttpServletResponse response) throws IOException
41   {
42     dumpRequest(request);
43
44     URI reqUri = URI.create(request.getRequestURI());
45
46     Cache.warn("*** request.getRequestURI()=" + request.getRequestURI());
47     Cache.warn("*** reqUri=" + reqUri.toASCIIString());
48     Cache.warn("*** request.getContextPath()=" + request.getContextPath());
49     Cache.warn("*** request.getPathInfo()=" + request.getPathInfo());
50
51     String pathInfo = request.getPathInfo();
52     Cache.warn("*** pathInfo=" + pathInfo);
53     String viewgene = "viewgene";
54     if (pathInfo.startsWith("/" + viewgene + "/"))
55     {
56
57       String temp = pathInfo.substring(viewgene.length() + 2);
58       String ensemblId = temp.indexOf("/") > -1
59               ? temp.substring(0, temp.indexOf("/"))
60               : temp;
61       Cache.warn("*** temp=" + temp);
62       Cache.warn("*** ensemblId=" + ensemblId);
63
64       String db = DBRefUtils.getCanonicalName("ensembl");
65       Desktop desktop = Desktop.instance;
66       SequenceFetcher sf = new SequenceFetcher(desktop, db, ensemblId);
67       sf.ok_actionPerformed();
68
69     }
70
71   }
72
73   /**
74    * Returns a display name for this service
75    */
76   @Override
77   public String getName()
78   {
79     return "TestListener";
80   }
81
82 }