@Override
public QueryResult rank(String studyStr, Query query, String field, int numResults, boolean asc, String sessionId)
throws CatalogException {
query = ParamUtils.defaultObject(query, Query::new);
ParamUtils.checkObj(field, "field");
ParamUtils.checkObj(sessionId, "sessionId");
String userId = userManager.getUserId(sessionId);
Study study = catalogManager.getStudyManager().resolveId(studyStr, userId);
AnnotationUtils.fixQueryAnnotationSearch(study, userId, query, authorizationManager);
authorizationManager.checkStudyPermission(study.getUid(), userId, StudyAclEntry.StudyPermissions.VIEW_SAMPLES);
boolean count = true;
query.append(SampleDBAdaptor.QueryParams.STUDY_UID.key(), study.getUid());
QueryResult queryResult = null;
if (count) {
queryResult = sampleDBAdaptor.rank(query, field, numResults, asc);
}
return ParamUtils.defaultObject(queryResult, QueryResult::new);
}