/** * Copyright (c) 2000-present Liferay, Inc. All rights reserved. * * This library is free software; you can redistribute it and/or modify it under * the terms of the GNU Lesser General Public License as published by the Free * Software Foundation; either version 2.1 of the License, or (at your option) * any later version. * * This library is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more * details. */ package com.liferay.portal.workflow.kaleo.runtime.assignment; import com.liferay.portal.kernel.model.Role; import com.liferay.portal.kernel.model.User; import com.liferay.portal.workflow.kaleo.KaleoTaskAssignmentFactory; import com.liferay.portal.workflow.kaleo.model.KaleoTaskAssignment; import java.util.ArrayList; import java.util.Collection; import java.util.List; import java.util.Map; import org.osgi.service.component.annotations.Reference; /** * @author Michael C. Han */ public abstract class BaseTaskAssignmentSelector implements TaskAssignmentSelector { @SuppressWarnings("unchecked") protected Collection<KaleoTaskAssignment> getKaleoTaskAssignments( Map<String, ?> results) { List<KaleoTaskAssignment> kaleoTaskAssignments = new ArrayList<>(); User user = (User)results.get(USER_ASSIGNMENT); if (user != null) { KaleoTaskAssignment kaleoTaskAssignment = getUserKaleoTaskAssignment(user); kaleoTaskAssignments.add(kaleoTaskAssignment); } else { List<Role> roles = (List<Role>)results.get(ROLES_ASSIGNMENT); getRoleKaleoTaskAssignments(roles, kaleoTaskAssignments); } return kaleoTaskAssignments; } protected void getRoleKaleoTaskAssignments( List<Role> roles, List<KaleoTaskAssignment> kaleoTaskAssignments) { if (roles == null) { return; } for (Role role : roles) { KaleoTaskAssignment kaleoTaskAssignment = kaleoTaskAssignmentFactory.createKaleoTaskAssignment(); kaleoTaskAssignment.setAssigneeClassName(Role.class.getName()); kaleoTaskAssignment.setAssigneeClassPK(role.getRoleId()); kaleoTaskAssignments.add(kaleoTaskAssignment); } } protected KaleoTaskAssignment getUserKaleoTaskAssignment(User user) { KaleoTaskAssignment kaleoTaskAssignment = kaleoTaskAssignmentFactory.createKaleoTaskAssignment(); kaleoTaskAssignment.setAssigneeClassName(User.class.getName()); kaleoTaskAssignment.setAssigneeClassPK(user.getUserId()); return kaleoTaskAssignment; } protected static final String ROLES_ASSIGNMENT = "roles"; protected static final String USER_ASSIGNMENT = "user"; @Reference protected KaleoTaskAssignmentFactory kaleoTaskAssignmentFactory; }