@Override public <T extends CredentialStorage> List<T> retrieveCredentials(IdentityContext context, Account account, Class<T> storageClass) { List<T> storages = new ArrayList<T>(); for (Object object : findCredentials(context, account, storageClass)) { storages.add(convertToCredentialStorage(object, storageClass)); } return storages; }
@Override public <T extends CredentialStorage> T retrieveCurrentCredential(Agent agent, Class<T> storageClass) { Object lastCredential = retrieveCurrentCredentialEntity(agent, storageClass); return (T) convertToCredentialStorage(lastCredential, storageClass); }
@Override public <T extends CredentialStorage> List<T> retrieveCredentials(IdentityContext context, Account account, Class<T> storageClass) { List<T> storages = new ArrayList<T>(); for (Object object : findCredentials(context, account, storageClass)) { storages.add(convertToCredentialStorage(object, storageClass)); } return storages; }
@Override public <T extends CredentialStorage> List<T> retrieveCredentials(Agent agent, Class<T> storageClass) { Property<Object> identityTypeProperty = getConfig().getModelProperty(PROPERTY_CREDENTIAL_IDENTITY); Property<Object> typeProperty = getConfig().getModelProperty(PROPERTY_CREDENTIAL_TYPE); EntityManager em = getEntityManager(); CriteriaBuilder builder = em.getCriteriaBuilder(); CriteriaQuery<?> criteria = builder.createQuery(getConfig().getCredentialClass()); Root<?> root = criteria.from(getConfig().getCredentialClass()); List<Predicate> predicates = new ArrayList<Predicate>(); Object agentInstance = lookupIdentityObjectById(agent); predicates.add(builder.equal(root.get(identityTypeProperty.getName()), agentInstance)); predicates.add(builder.equal(root.get(typeProperty.getName()), storageClass.getName())); criteria.where(predicates.toArray(new Predicate[predicates.size()])); List<?> result = em.createQuery(criteria).getResultList(); List<T> storages = new ArrayList<T>(); for (Object object : result) { storages.add((T) convertToCredentialStorage(object, storageClass)); } return storages; }