public QueryResult<Integer> incrementRelease(String projectStr, String sessionId) throws CatalogException {
String userId = catalogManager.getUserManager().getUserId(sessionId);
Project project = resolveId(projectStr, userId);
long projectId = project.getUid();
authorizationManager.checkCanEditProject(projectId, userId);
int currentRelease = project.getCurrentRelease();
List<Study> allStudiesInProject = project.getStudies();
if (allStudiesInProject.isEmpty()) {
throw new CatalogException("Cannot increment current release number. No studies found for release " + currentRelease);
}
if (checkCurrentReleaseInUse(allStudiesInProject, currentRelease)) {
QueryResult<Integer> integerQueryResult = projectDBAdaptor.incrementCurrentRelease(projectId);
for (Study study : allStudiesInProject) {
sampleDBAdaptor.updateProjectRelease(study.getUid(), integerQueryResult.first());
individualDBAdaptor.updateProjectRelease(study.getUid(), integerQueryResult.first());
familyDBAdaptor.updateProjectRelease(study.getUid(), integerQueryResult.first());
panelDBAdaptor.updateProjectRelease(study.getUid(), integerQueryResult.first());
}
return integerQueryResult;
} else {
throw new CatalogException("Cannot increment current release number. The current release " + currentRelease + " has not yet "
+ "been used in any entry");
}
}