/** {@inheritDoc} */ public Identity findIdentity(final String providerId, final String remoteId) throws IdentityStorageException { // IdentityCompositeKey key = new IdentityCompositeKey(providerId, remoteId); // IdentityKey k = identityIndexCache.get( new ServiceContext<IdentityKey>() { public IdentityKey execute() { Identity i = storage.findIdentity(providerId, remoteId); if (i == null) return null; IdentityKey key = new IdentityKey(i); exoIdentityCache.put(key, new IdentityData(i)); return key; } }, key); // if (k != null) { return findIdentityById(k.getId()); } else { return null; } }
/** * Build the identity list from the caches Ids. * * @param data ids * @return identities */ private List<Identity> buildIdentities(ListIdentitiesData data) { List<Identity> identities = new ArrayList<Identity>(); for (IdentityKey k : data.getIds()) { Identity gotIdentity = findIdentityById(k.getId()); gotIdentity.setProfile(loadProfile(gotIdentity.getProfile())); identities.add(gotIdentity); } return identities; }