package org.atricore.idbus.idojos.virtualidentitystore;
import org.atricore.idbus.kernel.main.authn.BaseRole;
import java.util.Collection;
/**
* Service Provider Interface (SPI) for realizing components capable of mapping
* multiple source roles entries to virtual roles entries.
* <p/>
* Role Mapping Rules support :
* <p/>
* a. selecting a set of roles entries from the entire set of role entries provided by the associated sources
* b. joining multiple source role entries
* c. transforming the joint role entry
* d. validating the virtual role entry
*
* @author <a href="mailto:gbrigand@josso.org">Gianluca Brigandi</a>
* @version $Id: RoleMappingRule.java 1644 2010-07-27 19:31:39Z sgonzalez $
*/
public interface RoleMappingRule {
Collection<BaseRole> select(Collection<BaseRole> sourceRoles);
Collection<BaseRole> join(Collection<BaseRole> selectedRoles);
Collection<BaseRole> transform(Collection<BaseRole> jointRoles);
void validate(Collection<BaseRole> transformedRoles);
}