public void updateProfileActivityId(
     Identity identity, String activityId, AttachedActivityType type) {
   storage.updateProfileActivityId(identity, activityId, type);
   //
   IdentityKey key = new IdentityKey(new Identity(identity.getId()));
   exoProfileCache.remove(key);
   clearCache();
 }
  /** {@inheritDoc} */
  public void saveProfile(final Profile profile) throws IdentityStorageException {

    //
    storage.saveProfile(profile);

    //
    IdentityKey key = new IdentityKey(new Identity(profile.getIdentity().getId()));
    exoProfileCache.remove(key);
  }
  /** {@inheritDoc} */
  public Identity updateIdentity(final Identity identity) throws IdentityStorageException {

    //
    IdentityKey key = new IdentityKey(new Identity(identity.getId()));
    exoIdentityCache.remove(key);
    clearCache();

    //
    return storage.updateIdentity(identity);
  }
  /** {@inheritDoc} */
  public void saveIdentity(final Identity identity) throws IdentityStorageException {

    //
    storage.saveIdentity(identity);

    //
    IdentityKey key = new IdentityKey(new Identity(identity.getId()));
    exoIdentityCache.put(key, new IdentityData(identity));
    clearCache();
  }
  /** {@inheritDoc} */
  public void hardDeleteIdentity(final Identity identity) throws IdentityStorageException {

    //
    storage.hardDeleteIdentity(identity);

    //
    IdentityKey key = new IdentityKey(new Identity(identity.getId()));
    IdentityData data = exoIdentityCache.remove(key);
    if (data != null) {
      exoIdentityIndexCache.remove(
          new IdentityCompositeKey(data.getProviderId(), data.getRemoteId()));
    }
    exoProfileCache.remove(key);
    clearCache();
  }
 public String getProfileActivityId(Profile profile, AttachedActivityType type) {
   return storage.getProfileActivityId(profile, type);
 }
  /** {@inheritDoc} */
  public void addOrModifyProfileProperties(final Profile profile) throws IdentityStorageException {

    storage.addOrModifyProfileProperties(profile);
  }
  /** {@inheritDoc} */
  public String getType(final String nodetype, final String property) {

    return storage.getType(nodetype, property);
  }
  /** {@inheritDoc} */
  public int getIdentitiesCount(final String providerId) throws IdentityStorageException {

    return storage.getIdentitiesCount(providerId);
  }