package org.apereo.cas.mgmt.services.web.factory;
import org.apereo.cas.authentication.principal.PrincipalAttributesRepository;
import org.apereo.cas.mgmt.services.web.beans.RegisteredServiceEditBean.ServiceData;
/**
* Interface for converting {@link PrincipalAttributesRepository} to/from {@link ServiceData}.
*
* @author Daniel Frett
* @since 4.2
*/
public interface PrincipalAttributesRepositoryMapper {
/**
* Map {@link PrincipalAttributesRepository} onto the target {@link ServiceData} data bean.
*
* @param repository the source principal attribute repository
* @param bean the destination data bean
*/
void mapPrincipalRepository(PrincipalAttributesRepository repository, ServiceData bean);
/**
* Create a {@link PrincipalAttributesRepository} represented by the specified {@link ServiceData} bean. Return null
* if a supported {@link PrincipalAttributesRepository} couldn't be created.
*
* @param data a source data bean
* @return the principal attribute repository config represented by the specified data bean
*/
PrincipalAttributesRepository toPrincipalRepository(ServiceData data);
}