private Map<String, String> options = null;
+ private String requestUrl = null;
+
private String id = null;
private String fromId = null;
return opts;
}
+ protected String getRequestUrl(HttpServletRequest request)
+ {
+ if (requestUrl != null)
+ return requestUrl;
+ if (request != null)
+ {
+ StringBuilder sb = new StringBuilder(
+ request.getRequestURL().toString());
+ String query = request.getQueryString();
+ if (query != null || query.length() > 0)
+ {
+ sb.append("?").append(query);
+ }
+ requestUrl = sb.toString();
+ }
+ else
+ {
+ Console.debug("AbstractEndpoint: request is null");
+ }
+ return requestUrl;
+ }
+
protected void returnError(HttpServletRequest request,
HttpServletResponse response, String message)
{
this.getEndpointPathParameters(request);
this.getQueryParameters(request);
this.getOptions(request);
+ this.getRequestUrl(request);
}
protected abstract void processAsync(HttpServletRequest request,
{
setId(idString);
}
+
return getId();
}
switch (getStatus())
{
case STARTED:
- response.setStatus(HttpServletResponse.SC_ACCEPTED);
+ if (getRequestUrl(request) != null)
+ {
+ response.sendRedirect(getRequestUrl(request));
+ Console.debug(getStatus() + ": redirecting to '"
+ + getRequestUrl(request) + "'");
+ try
+ {
+ Thread.sleep(1000);
+ } catch (InterruptedException e)
+ {
+ }
+ }
+ else
+ {
+ response.setStatus(HttpServletResponse.SC_ACCEPTED);
+ }
break;
case IN_PROGRESS:
- response.setStatus(HttpServletResponse.SC_ACCEPTED);
+ if (getRequestUrl(request) != null)
+ {
+ response.sendRedirect(getRequestUrl(request));
+ Console.debug(getStatus() + ": redirecting to '"
+ + getRequestUrl(request) + "'");
+ try
+ {
+ Thread.sleep(1500);
+ } catch (InterruptedException e)
+ {
+ }
+ }
+ else
+ {
+ response.setStatus(HttpServletResponse.SC_ACCEPTED);
+ }
break;
case FINISHED:
response.setStatus(HttpServletResponse.SC_CREATED);
String dbId = parameters[1];
setId(request, dbName + "::" + dbId);
+ saveParameters(request);
+
if (checkStatus(request, response))
return;
if (sb.length() > 0)
sb.append(",");
sb.append(seq.getName());
+ seq.setStart(1000);
}
}
sb.insert(0, "sequences=");
"Could not parse postition integer " + posString);
}
- String sequenceNames = parameters[0] == null ? "#0" : parameters[0];
+ String sequenceNames = parameters[0] == null ? "*0" : parameters[0];
Console.debug("Looking for sequence '" + sequenceNames + "'");
int sequenceNum = -1;
StructureSelectionManager ssm = ap.getStructureSelectionManager();
AlignmentI al = ap.getAlignment();
List<SequenceI> seqs = (List<SequenceI>) al.getSequences();
- if (sequenceNum >= 0)
+ if (0 <= sequenceNum && sequenceNum < seqs.size())
{
try
{