@Override public QueryResult<Panel> get(String studyStr, String entryStr, QueryOptions options, String sessionId) throws CatalogException { if (StringUtils.isNotEmpty(studyStr) && INSTALLATION_PANELS.equals(studyStr)) { Panel installationPanel = getInstallationPanel(entryStr); return new QueryResult<>(entryStr, -1, 1, 1, "", "", Collections.singletonList(installationPanel)); } else { return super.get(studyStr, entryStr, options, sessionId); } }
/** * Fetch all the R objects matching the query. * * @param studyStr Study id in string format. Could be one of [id|user@aliasProject:aliasStudy|aliasProject:aliasStudy|aliasStudy]. * @param entryList Comma separated list of entries to be fetched. * @param query Query object. * @param options QueryOptions object, like "include", "exclude", "limit" and "skip". * @param sessionId sessionId * @return All matching elements. * @throws CatalogException CatalogException. */ public List<QueryResult<R>> get(String studyStr, List<String> entryList, Query query, QueryOptions options, String sessionId) throws CatalogException { List<QueryResult<R>> resultList = new ArrayList<>(entryList.size()); query = ParamUtils.defaultObject(query, Query::new); MyResources<R> resource = getUids(entryList, studyStr, sessionId); List<Long> resourceIds = resource.getResourceList().stream().map(R::getUid).collect(Collectors.toList()); for (int i = 0; i < resourceIds.size(); i++) { Long entityId = resourceIds.get(i); Query queryCopy = new Query(query); queryCopy.put("uid", entityId); QueryResult<R> rQueryResult = get(studyStr, queryCopy, options, sessionId); rQueryResult.setId(entryList.get(i)); resultList.add(rQueryResult); } return resultList; }
/** * Fetch the R object. * * @param studyStr Study id in string format. Could be one of [id|user@aliasProject:aliasStudy|aliasProject:aliasStudy|aliasStudy]. * @param entryStr Entry id to be fetched. * @param options QueryOptions object, like "include", "exclude", "limit" and "skip". * @param sessionId sessionId * @return All matching elements. * @throws CatalogException CatalogException. */ public QueryResult<R> get(String studyStr, String entryStr, QueryOptions options, String sessionId) throws CatalogException { Query query = new Query(); MyResource resources = getUid(entryStr, studyStr, sessionId); query.put("uid", resources.getResource().getUid()); return get(studyStr, query, options, sessionId); }
public List<QueryResult<R>> get(String studyStr, List<String> entryList, Query query, QueryOptions options, boolean silent, String sessionId) throws CatalogException { List<QueryResult<R>> resultList = new ArrayList<>(entryList.size()); query = ParamUtils.defaultObject(query, Query::new); for (String entry : entryList) { Query queryCopy = new Query(query); try { MyResource<R> resource = getUid(entry, studyStr, sessionId); queryCopy.put("uid", resource.getResource().getUid()); QueryResult<R> rQueryResult = get(resource.getStudy().getFqn(), queryCopy, options, sessionId); rQueryResult.setId(entry); resultList.add(rQueryResult); } catch (CatalogException e) { if (silent) { resultList.add(new QueryResult<>(entry, 0, 0, 0, "", e.toString(), new ArrayList<>(0))); } else { throw e; } } } return resultList; }
protected final <T extends PrivateStudyUid> List<String> validate(String defaultStudyStr, List<String> values, Integer release, VariantQueryParam param, ResourceManager<T> manager, Function<T, String> getId, Function<T, Integer> getRelease, Consumer<T> valueValidator, String sessionId) throws CatalogException { List<QueryResult<T>> queryResults = manager.get(defaultStudyStr, values, null, RELEASE_OPTIONS, sessionId); List<String> validatedValues = new ArrayList<>(values.size()); for (QueryResult<T> queryResult : queryResults) { T value = queryResult.first(); if (valueValidator != null) { valueValidator.accept(value); } String id = getId.apply(value); validatedValues.add(id); checkRelease(release, getRelease.apply(value), param, id); } return validatedValues; } }