From: Ben Soares Date: Thu, 2 Sep 2021 19:21:06 +0000 (+0100) Subject: JAL-3851 start highlight X-Git-Url: http://source.jalview.org/gitweb/?a=commitdiff_plain;h=b1e69c5424204f9f0457c2e2e170855ced2dda2e;p=jalview.git JAL-3851 start highlight --- diff --git a/src/jalview/rest/HighlightSequenceEndpoint.java b/src/jalview/rest/HighlightSequenceEndpoint.java new file mode 100644 index 0000000..556d45b --- /dev/null +++ b/src/jalview/rest/HighlightSequenceEndpoint.java @@ -0,0 +1,55 @@ +package jalview.rest; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +public class HighlightSequenceEndpoint extends Endpoint +{ + public HighlightSequenceEndpoint(API api) + { + super(api, name); + } + + protected static final String name = "highlight"; + + public void processEndpoint(HttpServletRequest request, + HttpServletResponse response) + { + String[] parameters = getEndpointPathParameters(request); + + // check we can run highlight + if (parameters.length < 1) + { + returnError(request, response, "requires 1 path parameters: ranges"); + return; + } + + String rangesString = parameters[0]; + String[] rangeStrings = rangesString.split(","); + int[][] ranges = new int[rangeStrings.length][2]; + for (int i = 0; i < rangeStrings.length; i++) + { + String range = rangeStrings[i]; + try + { + int hyphenpos = range.indexOf('-'); + if (hyphenpos < 0) + { + ranges[i][0] = Integer.parseInt(range); + ranges[i][1] = ranges[i][0]; + } + else + { + ranges[i][0] = Integer.parseInt(range.substring(0, hyphenpos)); + ranges[i][1] = Integer.parseInt(range.substring(hyphenpos)); + } + } catch (NumberFormatException nfe) + { + returnError(request, response, + "couldn't parse ranges component '" + range + "'"); + return; + } + } + + } +} \ No newline at end of file