3f63ebb741ad7505dbd5ac87bbcca999b1ab4d54
[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 AbstractEndpoint
7 {
8   public HighlightSequenceEndpoint(API api)
9   {
10     super(api, path, name, parameters, description);
11   }
12
13   protected static final String path = "highlight";
14
15   private static final String name = "Highlight positions";
16
17   private static final String parameters = "<sequence names>,<ranges>";
18
19   private static final String description = "Highlight the specified sequences with the specified range(s)";
20
21   public void processEndpoint(HttpServletRequest request,
22           HttpServletResponse response)
23   {
24     if (!checkParameters(request, response, 2))
25     {
26       return;
27     }
28     String[] parameters = getEndpointPathParameters(request);
29
30     String rangesString = parameters[0];
31     String[] rangeStrings = rangesString.split(",");
32     int[][] ranges = new int[rangeStrings.length][2];
33     for (int i = 0; i < rangeStrings.length; i++)
34     {
35       String range = rangeStrings[i];
36       try
37       {
38         int hyphenpos = range.indexOf('-');
39         if (hyphenpos < 0)
40         {
41           ranges[i][0] = Integer.parseInt(range);
42           ranges[i][1] = ranges[i][0];
43         }
44         else
45         {
46           ranges[i][0] = Integer.parseInt(range.substring(0, hyphenpos));
47           ranges[i][1] = Integer.parseInt(range.substring(hyphenpos));
48         }
49       } catch (NumberFormatException nfe)
50       {
51         returnError(request, response,
52                 "couldn't parse ranges component '" + range + "'");
53         return;
54       }
55     }
56
57   }
58 }