private void joinFields(Project project, QueryOptions options) throws CatalogDBException { if (options == null) { return; } if (options.getBoolean("includeStudies")) { project.setStudies(getAllStudiesInProject(project.getUid(), options).getResult()); } }
@Override public QueryResult<Project> get(Query query, QueryOptions options, String user) throws CatalogDBException, CatalogAuthorizationException { long startTime = startQuery(); List<Project> documentList = new ArrayList<>(); QueryResult<Project> queryResult; try (DBIterator<Project> dbIterator = iterator(query, options, user)) { while (dbIterator.hasNext()) { documentList.add(dbIterator.next()); } } queryResult = endQuery("Get", startTime, documentList); if (options == null || !options.containsKey(QueryOptions.EXCLUDE) || (!options.getAsStringList(QueryOptions.EXCLUDE).contains("projects.studies") && !options.getAsStringList(QueryOptions.EXCLUDE).contains("studies"))) { for (Project project : queryResult.getResult()) { Query studyQuery = new Query(StudyDBAdaptor.QueryParams.PROJECT_UID.key(), project.getUid()); try { QueryResult<Study> studyQueryResult = dbAdaptorFactory.getCatalogStudyDBAdaptor().get(studyQuery, options, user); project.setStudies(studyQueryResult.getResult()); } catch (CatalogDBException e) { logger.error("{}", e.getMessage(), e); } } } return queryResult; }
@Override public QueryResult<Project> get(Query query, QueryOptions options) throws CatalogDBException { long startTime = startQuery(); List<Project> documentList = new ArrayList<>(); QueryResult<Project> queryResult; try (DBIterator<Project> dbIterator = iterator(query, options)) { while (dbIterator.hasNext()) { documentList.add(dbIterator.next()); } } queryResult = endQuery("Get", startTime, documentList); if (options == null || !options.containsKey(QueryOptions.EXCLUDE) || (!options.getAsStringList(QueryOptions.EXCLUDE).contains("projects.studies") && !options.getAsStringList(QueryOptions.EXCLUDE).contains("studies"))) { for (Project project : queryResult.getResult()) { Query studyQuery = new Query(StudyDBAdaptor.QueryParams.PROJECT_UID.key(), project.getUid()); try { QueryResult<Study> studyQueryResult = dbAdaptorFactory.getCatalogStudyDBAdaptor().get(studyQuery, options); project.setStudies(studyQueryResult.getResult()); } catch (CatalogDBException e) { logger.error("{}", e.getMessage(), e); } } } return queryResult; }
studies = Collections.emptyList(); project.setStudies(Collections.emptyList());