package org.apereo.cas.mgmt.services.web.factory;
import org.apereo.cas.mgmt.services.web.beans.RegisteredServiceEditBean;
import org.apereo.cas.mgmt.services.web.beans.RegisteredServiceViewBean;
import org.apereo.cas.services.RegisteredServiceAccessStrategy;
/**
* Interface for converting {@link RegisteredServiceAccessStrategy} to/from {@link RegisteredServiceEditBean.ServiceData}.
*
* @author Daniel Frett
* @since 4.2
*/
public interface AccessStrategyMapper {
/**
* Map {@link RegisteredServiceAccessStrategy} onto the target {@link RegisteredServiceEditBean.ServiceData} data bean.
*
* @param accessStrategy the source access strategy
* @param bean the destination data bean
*/
void mapAccessStrategy(RegisteredServiceAccessStrategy accessStrategy, RegisteredServiceEditBean.ServiceData bean);
/**
* Map {@link RegisteredServiceAccessStrategy} onto the target {@link RegisteredServiceViewBean} data bean.
*
* @param accessStrategy the source access strategy
* @param bean the destination data bean
*/
void mapAccessStrategy(RegisteredServiceAccessStrategy accessStrategy, RegisteredServiceViewBean bean);
/**
* Create a {@link RegisteredServiceAccessStrategy} represented by the specified
* {@link RegisteredServiceEditBean.ServiceData} bean. Return
* null if a supported {@link RegisteredServiceAccessStrategy} couldn't be created.
*
* @param bean a source data bean
* @return the access strategy represented by the specified data bean
*/
RegisteredServiceAccessStrategy toAccessStrategy(RegisteredServiceEditBean.ServiceData bean);
}