public Entity getEntity(IGroupMember member) { // get the type of this member entity EntityEnum entityEnum = getEntityType(member); // construct a new entity bean for this entity Entity entity; if (entityEnum.isGroup()) { entity = EntityFactory.createEntity((IEntityGroup) member, entityEnum); } else { entity = EntityFactory.createEntity(member, entityEnum); } // if the name hasn't been set yet, look up the entity name if (entity.getName() == null) { entity.setName(lookupEntityName(entity)); } if (EntityEnum.GROUP.toString().equals(entity.getEntityType()) || EntityEnum.PERSON.toString().equals(entity.getEntityType())) { IAuthorizationPrincipal authP = getPrincipalForEntity(entity); Principal principal = new PrincipalImpl(authP.getKey(), authP.getPrincipalString()); entity.setPrincipal(principal); } return entity; }
public Entity getEntity(String entityType, String entityId, boolean populateChildren) { // get the EntityEnum for the specified entity type EntityEnum entityEnum = EntityEnum.getEntityEnum(entityType); // if the entity type is a group, use the group service's findGroup method // to locate it if (entityEnum.isGroup()) { // attempt to find the entity IEntityGroup entityGroup = GroupService.findGroup(entityId); if (entityGroup == null) { return null; } else { Entity entity = EntityFactory.createEntity(entityGroup, entityEnum); if (populateChildren) { @SuppressWarnings("unchecked") Iterator<IGroupMember> members = (Iterator<IGroupMember>) entityGroup.getMembers(); entity = populateChildren(entity, members); } IAuthorizationPrincipal authP = getPrincipalForEntity(entity); Principal principal = new PrincipalImpl(authP.getKey(), authP.getPrincipalString()); entity.setPrincipal(principal); return entity; } } // otherwise use the getGroupMember method else { IGroupMember groupMember = GroupService.getGroupMember(entityId, entityEnum.getClazz()); if (groupMember == null || groupMember instanceof IEntityGroup) { return null; } Entity entity = EntityFactory.createEntity(groupMember, entityEnum); // the group member interface doesn't include the entity name, so // we'll need to look that up manually entity.setName(lookupEntityName(entity)); if (EntityEnum.GROUP.toString().equals(entity.getEntityType()) || EntityEnum.PERSON.toString().equals(entity.getEntityType())) { IAuthorizationPrincipal authP = getPrincipalForEntity(entity); Principal principal = new PrincipalImpl(authP.getKey(), authP.getPrincipalString()); entity.setPrincipal(principal); } return entity; } }