}
@SuppressWarnings("unchecked")
public List<JetspeedPrincipal> getPrincipals(PersistentJetspeedPermission permission, String principalType)
{
Criteria criteria = new Criteria();
if (permission.getId() != null)
{
criteria.addEqualTo("permissions.permissionId", permission.getId());
}
else
{
criteria.addEqualTo("permissions.permission.type", permission.getType());
criteria.addEqualTo("permissions.permission.name", permission.getName());
}
if (principalType != null)
{
criteria.addEqualTo("type", principalType);
}
criteria.addEqualTo("domainId", getDefaultSecurityDomainId());
QueryByCriteria query = QueryFactory.newQuery(PersistentJetspeedPrincipal.class, criteria);
query.addOrderByAscending("type");
query.addOrderByAscending("name");
return (List<JetspeedPrincipal>) getPersistenceBrokerTemplate().execute(new ManagedListByQueryCallback(query));
}