package org.activiti.designer.validation.bpmn20.validation.worker.impl; import java.util.ArrayList; import java.util.Collection; import java.util.List; import java.util.Map; import org.activiti.designer.validation.bpmn20.validation.worker.ProcessValidationWorker; import org.activiti.designer.validation.bpmn20.validation.worker.ProcessValidationWorkerMarker; import org.eclipse.bpmn2.UserTask; import org.eclipse.bpmn2.impl.UserTaskImpl; import org.eclipse.core.resources.IMarker; import org.eclipse.emf.ecore.EObject; import org.eclipse.graphiti.mm.pictograms.Diagram; /** * Validates process according to {@link ValidationCode#VAL_001}. * * @author Tiese Barrell * @since 5.6 * @version 1 */ public class UserTaskValidationWorker implements ProcessValidationWorker { private static final String POTENTIAL_OWNER_EXCEPTION_MESSAGE_PATTERN = "UserTask '%s' has no assignee, candidate users, candidate groups set"; @Override public Collection<ProcessValidationWorkerMarker> validate(final Diagram diagram, final Map<String, List<EObject>> processNodes) { final Collection<ProcessValidationWorkerMarker> result = new ArrayList<ProcessValidationWorkerMarker>(); final List<EObject> userTasks = processNodes.get(UserTaskImpl.class.getCanonicalName()); if (userTasks != null && !userTasks.isEmpty()) { for (final EObject object : userTasks) { // <SecureBPMN> // Removed Activiti RBAC validation since we're using the SecureBPMN model for that. /*final UserTask userTask = (UserTask) object; boolean potentialOwnerIsSet = false; if (userTask.getAssignee() != null && userTask.getAssignee().length() > 0) { potentialOwnerIsSet = true; } if (userTask.getCandidateUsers() != null && userTask.getCandidateUsers().size() > 0) { potentialOwnerIsSet = true; } if (userTask.getCandidateGroups() != null && userTask.getCandidateGroups().size() > 0) { potentialOwnerIsSet = true; } if (!potentialOwnerIsSet) { result.add(new ProcessValidationWorkerMarker(IMarker.SEVERITY_ERROR, String.format(POTENTIAL_OWNER_EXCEPTION_MESSAGE_PATTERN, userTask.getName()), userTask.getId(), ValidationCode.VAL_001)); }*/ // </SecureBPMN> } } return result; } }