class PeopleAssignmentHelper {

	@SuppressWarnings("unchecked")
	protected void assignBusinessAdministrators(WorkItem workItem, PeopleAssignments peopleAssignments) {
	    List<OrganizationalEntity> businessAdministrators = peopleAssignments.getBusinessAdministrators();
	    
	    Object businessAdminGroupIds = adjustParam(workItem.getParameter(BUSINESSADMINISTRATOR_GROUP_ID), groupFilter);
	    Object businessAdministratorIds = adjustParam(workItem.getParameter(BUSINESSADMINISTRATOR_ID), userFilter);
		
        
        if (!hasAdminAssigned(businessAdministrators)) {
            User administrator = TaskModelProvider.getFactory().newUser();
        	((InternalOrganizationalEntity) administrator).setId(administratorUser);        
            businessAdministrators.add(administrator);
            Group adminGroup = TaskModelProvider.getFactory().newGroup();
        	((InternalOrganizationalEntity) adminGroup).setId(administratorGroup);        
            businessAdministrators.add(adminGroup);
        }
        
        if (businessAdministratorIds instanceof Collection) {
            processPeopleAssignments((Collection<OrganizationalEntity>)businessAdministratorIds, businessAdministrators);
        } else {
            processPeopleAssignments((String)businessAdministratorIds, businessAdministrators, true);
        } 
        if (businessAdminGroupIds instanceof Collection) {
            processPeopleAssignments((Collection<OrganizationalEntity>)businessAdminGroupIds, businessAdministrators);
        } else {
            processPeopleAssignments((String)businessAdminGroupIds, businessAdministrators, false);
        }         
	}

	public  PeopleAssignmentHelper();
	public  PeopleAssignmentHelper(String separator);
	public  PeopleAssignmentHelper(String adminUser, String adminGroup);
	public  PeopleAssignmentHelper(CaseData caseFile);

}