String id = getParameterAsString(type);
Accreditable item = getAccreditable(type, id);
if (item == null) {
addErrorMessage("no_such_accreditable", new String[] { type, id });
} else {
Role role = getRoleManager().getRole(roleId);
if (role == null) {
addErrorMessage("role_no_such_role", new String[] { roleId });
}
if (!role.isAssignable()) {
addErrorMessage("cannot-assign-role", new String[] { roleId });
}
if (operations[j].equals(ADD)) {
ModifiablePolicy policy = getPolicy();
if (containsCredential(policy, item, role)) {
addErrorMessage("credential-already-contained", new String[] {
((Item) item).getId(), role.getId() });
}
}
}
if (hasErrors()) {
deleteParameter(paramName);