private RestEntity handleQuery(StorageService storageService, InputCondition condition, int begin, int top, List<OrderParam> orderParams, RequestContext context) throws JasDBStorageException {
LOG.debug("Query: {} begin: {} top: {}", condition, begin, top);
if(condition.getTokenType() == TokenType.LITERAL && ((FieldCondition)condition).getField().equals(FieldCondition.ID_PARAM)) {
FieldCondition idCondition = (FieldCondition) condition;
return requestById(storageService, idCondition.getValue(), context);
} else {
QueryBuilder parentBuilder = generateQueryBuilder(condition, QueryBuilder.createBuilder());
setOrderingParams(parentBuilder, orderParams);
long start = System.currentTimeMillis();
QueryResult result = storageService.search(context, BuilderTransformer.transformBuilder(parentBuilder), new SearchLimit(begin, top), parentBuilder.getSortParams());
long end = System.currentTimeMillis();
StreamableEntityCollection collection = new StreamableEntityCollection(result);
collection.setTimeMilliseconds((end - start));
return collection;
}
}