com.dooapp.gaedo.finders.dynamic.ServiceGenerator Maven / Gradle / Ivy
package com.dooapp.gaedo.finders.dynamic;
import com.dooapp.gaedo.finders.FinderCrudService;
import com.dooapp.gaedo.finders.Informer;
/**
* From a dynamic interface and a backend implementation, implementors of this interface are able to generate an implementor of this interface
* @author ndx
*
*/
public interface ServiceGenerator {
/**
* Factory method creating the required obejct from the given interface and back-end implementor
* @param type of data managed by this service
* @param informer used to provide informations about data
* @param returned implementation
* @param toImplement class of Implementation
* @param backEnd back end that MUST receive all translated calls
* @return an object implementing Implementation and redirecting decorated calls to backEnd
*/
, Implementation extends DynamicFinder> Implementation generate(
Class toImplement,
FinderCrudService backEnd);
}