package org.societies.privacytrust.privacyprotection.api.identity; import java.util.List; import org.societies.api.identity.IIdentity; import org.societies.api.internal.privacytrust.privacyprotection.model.privacypolicy.IAgreement; import org.societies.api.privacytrust.privacy.model.privacypolicy.Resource; public interface IIdentitySelection { /** * Called by the Privacy Negotiation Agent behaving as a service consumer in the end of the negotiation process, after the Privacy Policy Negotiation Aggreement is reached but before it is signed. * It evaluates the suitability of the identity options to be used in the interaction with the remote entity, and returns a list to be processed w.r.t. the User Identity Selection Preferences, and ultimately to be . * * @param ppna * @return */ List<IIdentityOption> processIdentityContext(IAgreement ppna); /** * * To be used when a remote entity requests some data to a user-owned entity. It evaluates the risk of linkability existing identities in the case of disclosure. * * @param remoteEntity * @param userOwnedEntity * @param dataToBeReleased * @return */ IIdentityOption evaluateLinkability(IIdentity remoteEntity, IIdentity userOwnedEntity, Resource dataToBeReleased); }