io.ebean.event.BeanFindController Maven / Gradle / Ivy
package io.ebean.event;
import io.ebean.bean.BeanCollection;
/**
* Used to override the finding implementation for a bean.
*
* For beans that are not in a JDBC data source you can implement this handle
* bean finding. For example, read a log file building each entry as a bean and
* returning that.
*
*
* There are a number of internal BeanFinders in Ebean to return meta data from
* Ebean at runtime such as query execution statistics etc.
*
*/
public interface BeanFindController {
/**
* Return true if this BeanPersistController should be registered for events
* on this entity type.
*/
boolean isRegisterFor(Class> cls);
/**
* Return true if this controller should intercept and process this find request.
*
* Return false to allow the default behavior to process the request.
*/
boolean isInterceptFind(BeanQueryRequest> request);
/**
* Find a bean using its id or unique predicate.
*/
T find(BeanQueryRequest request);
/**
* Return true if this controller should intercept and process this findMany request.
*
* Return false to allow the default behavior to process the request.
*/
boolean isInterceptFindMany(BeanQueryRequest> request);
/**
* Return a List, Set or Map for the given find request.
*
* Note the returning object is cast to a List Set or Map so you do need to
* get the return type right.
*
*/
BeanCollection findMany(BeanQueryRequest request);
/**
* Allows post-processing of the find result.
*/
default BeanCollection postProcessMany(BeanQueryRequest request, BeanCollection result) {
return result;
}
/**
* Allows post-processing of the find result.
*/
default T postProcess(BeanQueryRequest request, T result) {
return result;
};
}