use of ambit2.db.search.structure.QueryStructureByQualityPairLabel in project ambit-mirror by ideaconsult.
the class ConsensusLabelQueryResource method createQuery.
@Override
protected IQueryRetrieval<IStructureRecord> createQuery(Context context, Request request, Response response) throws ResourceException {
// collapsed = true;
setGroupProperties(context, request, response);
setTemplate(createTemplate(context, request, response));
QueryStructureByQualityPairLabel q = new QueryStructureByQualityPairLabel();
Form form = request.getResourceRef().getQueryAsForm();
Object key = form.getFirstValue(QueryResource.search_param);
ConsensusLabel label = new ConsensusLabel();
if (key != null) {
try {
label.setLabel(CONSENSUS_LABELS.valueOf(Reference.decode(key.toString())));
} catch (Exception x) {
StringBuilder b = new StringBuilder();
b.append("Valid values are ");
for (CONSENSUS_LABELS v : CONSENSUS_LABELS.values()) {
b.append(v);
b.append('\t');
}
throw new ResourceException(Status.CLIENT_ERROR_BAD_REQUEST, b.toString(), x);
}
} else {
label.setLabel(CONSENSUS_LABELS.Consensus);
}
q.setValue(label);
key = form.getFirstValue("text");
if (key != null)
label.setText(key.toString());
Object id = request.getAttributes().get(OpenTox.URI.dataset.getKey());
if (id != null)
try {
datasetID = Integer.parseInt(id.toString());
SourceDataset dataset = new SourceDataset();
dataset.setId(datasetID);
q.setFieldname(dataset);
return q;
} catch (Exception x) {
if (id.toString().startsWith("R")) {
queryResultsID = Integer.parseInt(id.toString().substring(1));
StoredQuery dataset = new StoredQuery();
dataset.setId(queryResultsID);
q.setFieldname(dataset);
} else
throw new ResourceException(Status.CLIENT_ERROR_BAD_REQUEST, "Invalid dataset id");
}
return q;
// throw new ResourceException(Status.CLIENT_ERROR_BAD_REQUEST,"No dataset !");
}
Aggregations