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