package org.atricore.idbus.kernel.main.mediation.provider;
import org.atricore.idbus.kernel.main.federation.metadata.CircleOfTrust;
import org.atricore.idbus.kernel.main.federation.metadata.CircleOfTrustMemberDescriptor;
import org.atricore.idbus.kernel.main.mediation.Skinnable;
import java.util.List;
import java.util.Set;
/**
* @author <a href=mailto:sgonzalez@atricore.org>Sebastian Gonzalez Oyuela</a>
*/
public interface FederatedProvider extends Provider, Skinnable {
/**
* Returns the COT definition
* @return
*/
CircleOfTrust getCircleOfTrust();
/**
* Returns all the COT members associated with this provider's default servcie.
* @return
*/
List<CircleOfTrustMemberDescriptor> getMembers();
/**
* Returns all the COT members associated with a provider's given service
* @return
*/
List<CircleOfTrustMemberDescriptor> getMembers(String svcType);
/**
* Returns all the COT members associated with this provider (for any service)
* @return
*/
List<CircleOfTrustMemberDescriptor> getAllMembers();
/**
* Set of Federation services available in this provider.
* @return
*/
Set<FederationService> getFederationServices();
/**
* Default federation service
*/
FederationService getDefaultFederationService();
}