@Override public <C extends Relationship> C lookupById(Class<C> attributedType, String id) throws IdentityManagementException { List<C> result = createRelationshipQuery(attributedType).setParameter (Relationship.ID, id) .getResultList(); if (!result.isEmpty()) { return result.get(0); } return null; }
@Override public <V extends Relationship> int countQueryResults(final IdentityContext context, final RelationshipQuery<V> query) { int limit = query.getLimit(); int offset = query.getOffset(); query.setLimit(0); query.setOffset(0); int resultCount = query.getResultList().size(); query.setLimit(limit); query.setOffset(offset); return resultCount; }
@Override public <V extends Relationship> List<V> fetchQueryResults(IdentityContext context, RelationshipQuery<V> query) { RelationshipJdbcType relationshipJdbcType = new RelationshipJdbcType(); relationshipJdbcType.setDataSource(dataSource); List<V> result = new ArrayList<V>(); List<? extends AttributedType> list = relationshipJdbcType.load(query.getParameters(), query.getRelationshipClass()); if (list.isEmpty() == false) { result.addAll((Collection<? extends V>) list); } return result; }
@Override public <T extends Relationship> List<T> fetchQueryResults(IdentityContext context, RelationshipQuery<T> query) { List<T> result = new ArrayList<T>(); Class<T> typeToSearch = query.getRelationshipClass(); Object[] idParameter = query.getParameter(Relationship.ID); boolean match = query.getParameters().isEmpty(); for (Entry<QueryParameter, Object[]> entry : query.getParameters().entrySet()) { QueryParameter queryParameter = entry.getKey(); Object[] values = entry.getValue(); .<Serializable>createQuery(query.getRelationshipClass()) .addCriteria(new NamedPropertyCriteria(attributeParameter.getName())) .getFirstResult(); .getRelationshipClass()) .addCriteria(new TypedPropertyCriteria(IdentityType.class, MatchOption.SUB_TYPE)) .getResultList();
@Override public <V extends Relationship> List<V> fetchQueryResults(IdentityContext context, RelationshipQuery<V> query) { List<V> results = new ArrayList<V>(); if (Relationship.class.equals(query.getRelationshipClass())) { for (LDAPMappingConfiguration configuration : getConfig().getRelationshipConfigs()) { results.addAll(fetchRelationships(query, configuration)); } } else { results.addAll(fetchRelationships(query, getMappingConfig(query.getRelationshipClass()))); } return results; }
private <V extends Relationship> List<V> fetchRelationships(final RelationshipQuery<V> query, final LDAPMappingConfiguration mappingConfig) { List<V> results = new ArrayList<V>(); Class<V> relationshipClass = (Class<V>) mappingConfig.getMappedClass(); Map<QueryParameter, Object[]> parameters = query.getParameters(); LDAPMappingConfiguration relatedTypeConfig = getMappingConfig(mappingConfig.getRelatedAttributedType()); StringBuilder filter = new StringBuilder();
@Override public <T extends Relationship> List<T> fetchQueryResults(IdentityContext context, RelationshipQuery<T> query) { List<T> result = new ArrayList<T>(); Class<T> typeToSearch = query.getRelationshipClass(); Object[] idParameter = query.getParameter(Relationship.ID); boolean match = query.getParameters().isEmpty(); for (Entry<QueryParameter, Object[]> entry : query.getParameters().entrySet()) { QueryParameter queryParameter = entry.getKey(); Object[] values = entry.getValue(); .<Serializable>createQuery(query.getRelationshipClass()) .addCriteria(new NamedPropertyCriteria(attributeParameter.getName())) .getFirstResult(); .getRelationshipClass()) .addCriteria(new TypedPropertyCriteria(IdentityType.class, MatchOption.SUB_TYPE)) .getResultList();
@Override public <V extends Relationship> List<V> fetchQueryResults(IdentityContext context, RelationshipQuery<V> query) { List<V> results = new ArrayList<V>(); if (Relationship.class.equals(query.getRelationshipClass())) { for (LDAPMappingConfiguration configuration : getConfig().getRelationshipConfigs()) { results.addAll(fetchRelationships(query, configuration)); } } else { results.addAll(fetchRelationships(query, getMappingConfig(query.getRelationshipClass()))); } return results; }
private <V extends Relationship> List<V> fetchRelationships(final RelationshipQuery<V> query, final LDAPMappingConfiguration mappingConfig) { List<V> results = new ArrayList<V>(); Class<V> relationshipClass = (Class<V>) mappingConfig.getMappedClass(); Map<QueryParameter, Object[]> parameters = query.getParameters(); LDAPMappingConfiguration relatedTypeConfig = getMappingConfig(mappingConfig.getRelatedAttributedType()); StringBuilder filter = new StringBuilder();
@Override public <C extends Relationship> C lookupById(Class<C> attributedType, String id) throws IdentityManagementException { List<C> result = createRelationshipQuery(attributedType).setParameter (Relationship.ID, id) .getResultList(); if (!result.isEmpty()) { return result.get(0); } return null; }
@Override public <V extends Relationship> int countQueryResults(final IdentityContext context, final RelationshipQuery<V> query) { int limit = query.getLimit(); int offset = query.getOffset(); query.setLimit(0); query.setOffset(0); int resultCount = query.getResultList().size(); query.setLimit(limit); query.setOffset(offset); return resultCount; }
List entities = new ArrayList(); Object[] identityParameterValues = query.getParameter(Relationship.IDENTITY); entities = findIdentityTypeRelationships(context, query.getRelationshipClass(), (IdentityType) parameterValue); } else { throw MESSAGES.queryUnsupportedParameterValue("Relationship.IDENTITY", parameterValue); Class<V> relationshipType = query.getRelationshipClass(); EntityMapper entityMapper = getRootMapper(relationshipType); CriteriaBuilder cb = entityManager.getCriteriaBuilder(); Object[] idParameterValues = query.getParameter(Relationship.ID); Property idProperty = entityMapper.getProperty(Identifier.class).getValue(); predicates.add(cb.equal(root.get(idProperty.getName()), idParameterValues[0])); } else { for (Entry<QueryParameter, Object[]> entry : query.getParameters().entrySet()) { QueryParameter queryParameter = entry.getKey(); Object[] values = entry.getValue();
@Override public <V extends Relationship> List<V> fetchQueryResults(IdentityContext context, RelationshipQuery<V> query) { RelationshipJdbcType relationshipJdbcType = new RelationshipJdbcType(); relationshipJdbcType.setDataSource(dataSource); List<V> result = new ArrayList<V>(); List<? extends AttributedType> list = relationshipJdbcType.load(query.getParameters(), query.getRelationshipClass()); if (list.isEmpty() == false) { result.addAll((Collection<? extends V>) list); } return result; }
private Set<Role> getRolesOfCurrentUser() { Set<Role> roles = new HashSet<Role>(); if (identity.isLoggedIn()) { RelationshipQuery<Grant> query = relationshipManager.createRelationshipQuery(Grant.class); query.setParameter(Grant.ASSIGNEE, identity.getAccount()); for (final Grant grant : query.getResultList()) { roles.add(new RoleImpl(grant.getRole().getName())); } } return roles; }
List entities = new ArrayList(); Object[] identityParameterValues = query.getParameter(Relationship.IDENTITY); entities = findIdentityTypeRelationships(context, query.getRelationshipClass(), (IdentityType) parameterValue); } else { throw MESSAGES.queryUnsupportedParameterValue("Relationship.IDENTITY", parameterValue); Class<V> relationshipType = query.getRelationshipClass(); EntityMapper entityMapper = getRootMapper(relationshipType); CriteriaBuilder cb = entityManager.getCriteriaBuilder(); Object[] idParameterValues = query.getParameter(Relationship.ID); Property idProperty = entityMapper.getProperty(Identifier.class).getValue(); predicates.add(cb.equal(root.get(idProperty.getName()), idParameterValues[0])); } else { for (Entry<QueryParameter, Object[]> entry : query.getParameters().entrySet()) { QueryParameter queryParameter = entry.getKey(); Object[] values = entry.getValue();
private Set<Role> getRolesOfCurrentUser() { Set<Role> roles = new HashSet<Role>(); if (identity.isLoggedIn()) { RelationshipQuery<Grant> query = relationshipManager.createRelationshipQuery(Grant.class); query.setParameter(Grant.ASSIGNEE, identity.getAccount()); for (final Grant grant : query.getResultList()) { roles.add(new RoleImpl(grant.getRole().getName())); } } return roles; }
@Override public <V extends Relationship> List<V> fetchQueryResults(IdentityContext context, RelationshipQuery<V> query) { ArrayList<V> relationships = new ArrayList<V>(); Class<V> relationshipType = query.getRelationshipClass(); RelationshipStereotype stereotype = relationshipType.getAnnotation(RelationshipStereotype.class); for (QueryParameter queryParameter : query.getParameters().keySet()) { String queryParameterName = ((RelationshipQueryParameter) queryParameter).getName(); Property<Object> nameProperty = PropertyQueries Object[] queryParameterValues = query.getParameter(queryParameter);
/** * <p> Removes the given {@link Account} from the provided {@link Group}. </p> * * @param member A previously loaded {@link Account} instance. * @param group A previously loaded {@link Group} instance. * * @throws IdentityManagementException If the method fails. */ public static void removeFromGroup(RelationshipManager relationshipManager, Account member, Group group) throws IdentityManagementException { if (relationshipManager == null) { throw MESSAGES.nullArgument("RelationshipManager"); } if (member == null) { throw MESSAGES.nullArgument("Account"); } if (group == null) { throw MESSAGES.nullArgument("Group"); } RelationshipQuery<GroupMembership> query = relationshipManager.createRelationshipQuery(GroupMembership.class); query.setParameter(GroupMembership.MEMBER, member); query.setParameter(GroupMembership.GROUP, group); for (GroupMembership membership : query.getResultList()) { relationshipManager.remove(membership); } }
@Override public <V extends Relationship> List<V> fetchQueryResults(IdentityContext context, RelationshipQuery<V> query) { ArrayList<V> relationships = new ArrayList<V>(); Class<V> relationshipType = query.getRelationshipClass(); RelationshipStereotype stereotype = relationshipType.getAnnotation(RelationshipStereotype.class); for (QueryParameter queryParameter : query.getParameters().keySet()) { String queryParameterName = ((RelationshipQueryParameter) queryParameter).getName(); Property<Object> nameProperty = PropertyQueries Object[] queryParameterValues = query.getParameter(queryParameter);
/** * <p> Removes the given {@link Account} from the provided {@link Group}. </p> * * @param member A previously loaded {@link Account} instance. * @param group A previously loaded {@link Group} instance. * * @throws IdentityManagementException If the method fails. */ public static void removeFromGroup(RelationshipManager relationshipManager, Account member, Group group) throws IdentityManagementException { if (relationshipManager == null) { throw MESSAGES.nullArgument("RelationshipManager"); } if (member == null) { throw MESSAGES.nullArgument("Account"); } if (group == null) { throw MESSAGES.nullArgument("Group"); } RelationshipQuery<GroupMembership> query = relationshipManager.createRelationshipQuery(GroupMembership.class); query.setParameter(GroupMembership.MEMBER, member); query.setParameter(GroupMembership.GROUP, group); for (GroupMembership membership : query.getResultList()) { relationshipManager.remove(membership); } }