JAL-3851 start highlight
[jalview.git] / src / jalview / rest / HighlightSequenceEndpoint.java
1 package jalview.rest;
2
3 import javax.servlet.http.HttpServletRequest;
4 import javax.servlet.http.HttpServletResponse;
5
6 public class HighlightSequenceEndpoint extends Endpoint
7 {
8   public HighlightSequenceEndpoint(API api)
9   {
10     super(api, name);
11   }
12
13   protected static final String name = "highlight";
14
15   public void processEndpoint(HttpServletRequest request,
16           HttpServletResponse response)
17   {
18     String[] parameters = getEndpointPathParameters(request);
19
20     // check we can run highlight
21     if (parameters.length < 1)
22     {
23       returnError(request, response, "requires 1 path parameters: ranges");
24       return;
25     }
26
27     String rangesString = parameters[0];
28     String[] rangeStrings = rangesString.split(",");
29     int[][] ranges = new int[rangeStrings.length][2];
30     for (int i = 0; i < rangeStrings.length; i++)
31     {
32       String range = rangeStrings[i];
33       try
34       {
35         int hyphenpos = range.indexOf('-');
36         if (hyphenpos < 0)
37         {
38           ranges[i][0] = Integer.parseInt(range);
39           ranges[i][1] = ranges[i][0];
40         }
41         else
42         {
43           ranges[i][0] = Integer.parseInt(range.substring(0, hyphenpos));
44           ranges[i][1] = Integer.parseInt(range.substring(hyphenpos));
45         }
46       } catch (NumberFormatException nfe)
47       {
48         returnError(request, response,
49                 "couldn't parse ranges component '" + range + "'");
50         return;
51       }
52     }
53
54   }
55 }