package org.apereo.cas.mgmt.services.web.factory;
import org.apereo.cas.mgmt.services.web.beans.RegisteredServiceEditBean;
import org.apereo.cas.services.RegisteredService;
import org.apereo.cas.mgmt.services.web.beans.RegisteredServiceViewBean;
/**
* Factory used to convert {@link RegisteredService} from/to {@link RegisteredServiceEditBean.ServiceData}.
*
* @author Daniel Frett
* @since 4.2
*/
public interface RegisteredServiceFactory {
/**
* Create a {@link RegisteredServiceEditBean.FormData} bean with configuration for the edit service form.
*
* @return the form data bean
*/
RegisteredServiceEditBean.FormData createFormData();
/**
* Create a {@link RegisteredServiceEditBean.ServiceData} bean from the provided {@link RegisteredService}.
*
* @param svc service being converted
* @return the data bean representing the provided service
*/
RegisteredServiceEditBean.ServiceData createServiceData(RegisteredService svc);
/**
* Create a {@link RegisteredServiceViewBean} bean from the provided {@link RegisteredService}.
*
* @param svc service being converted
* @return the data bean representing the provided service
*/
RegisteredServiceViewBean createServiceViewBean(RegisteredService svc);
/**
* Create a {@link RegisteredService} object from the provided {@link RegisteredServiceEditBean.ServiceData} data bean.
*
* @param data the data bean being converted
* @return the registered service created from the provided data bean
*/
RegisteredService createRegisteredService(RegisteredServiceEditBean.ServiceData data);
}