package br.gov.frameworkdemoiselle.fuselage.business; import java.util.ArrayList; import java.util.List; import javax.inject.Inject; import br.gov.frameworkdemoiselle.enumeration.contrib.Logic; import br.gov.frameworkdemoiselle.fuselage.domain.SecurityProfile; import br.gov.frameworkdemoiselle.fuselage.domain.SecurityResource; import br.gov.frameworkdemoiselle.fuselage.domain.SecurityRole; import br.gov.frameworkdemoiselle.fuselage.persistence.ProfileDAO; import br.gov.frameworkdemoiselle.query.contrib.QueryConfig; import br.gov.frameworkdemoiselle.stereotype.BusinessController; import br.gov.frameworkdemoiselle.template.contrib.DelegateCrud; @BusinessController public class ProfileBC extends DelegateCrud<SecurityProfile, Long, ProfileDAO> { private static final long serialVersionUID = 1L; @Inject private RoleBC roleBC; @Inject private ResourceBC resourceBC; public List<Long> getUsedPrioritiesExceptMyself(SecurityProfile securityProfile) { List<Long> usedPriorities = new ArrayList<Long>(); for (Long usedPriority : getDelegate().getUsedPrioritiesExceptMyself(securityProfile)) usedPriorities.add(usedPriority); return usedPriorities; } /** * Get all roles except listed in @param securityProfiles */ public List<SecurityProfile> findProfilesExceptList(List<SecurityProfile> securityProfiles) { QueryConfig<SecurityProfile> queryConfig = getQueryConfig(); queryConfig.setSorting("name"); if (securityProfiles != null && securityProfiles.size() > 0) { Long[] ids = new Long[securityProfiles.size()]; for (int i = 0; i != securityProfiles.size(); i++) ids[i] = securityProfiles.get(i).getId(); queryConfig.getFilter().put("id", ids); queryConfig.setFilterLogic(Logic.NAND); } return findAll(); } public List<SecurityRole> getRolesExceptList(List<SecurityRole> securityRoles) { return roleBC.findRolesExceptList(securityRoles); } public List<SecurityResource> getResources() { getQueryConfig(SecurityResource.class).setSorting("name"); return resourceBC.findAll(); } }