public QueryResult<Cohort> update(String studyStr, String entryStr, ObjectMap parameters, boolean allowModifyCohortAll,
QueryOptions options, String sessionId) throws CatalogException {
ParamUtils.checkObj(parameters, "Update parameters");
options = ParamUtils.defaultObject(options, QueryOptions::new);
parameters = new ObjectMap(parameters);
MyResource<Cohort> resource = getUid(entryStr, studyStr, sessionId);
if (parameters.containsKey(CohortDBAdaptor.QueryParams.ANNOTATION_SETS.key())) {
authorizationManager.checkCohortPermission(resource.getStudy().getUid(), resource.getResource().getUid(), resource.getUser(),
CohortAclEntry.CohortPermissions.WRITE_ANNOTATIONS);
}
if ((parameters.size() == 1 && !parameters.containsKey(CohortDBAdaptor.QueryParams.ANNOTATION_SETS.key()))
|| parameters.size() > 1) {
authorizationManager.checkCohortPermission(resource.getStudy().getUid(), resource.getResource().getUid(), resource.getUser(),
CohortAclEntry.CohortPermissions.UPDATE);
}
Cohort cohort = cohortDBAdaptor.get(resource.getResource().getUid(), QueryOptions.empty()).first();
return unsafeUpdate(resource.getStudy(), cohort, parameters, allowModifyCohortAll, options, resource.getUser());
}