001package com.avaje.ebean.delegate;
002
003import com.avaje.ebean.FutureIds;
004import com.avaje.ebean.FutureList;
005import com.avaje.ebean.FutureRowCount;
006import com.avaje.ebean.PagedList;
007import com.avaje.ebean.Query;
008import com.avaje.ebean.QueryEachConsumer;
009import com.avaje.ebean.QueryEachWhileConsumer;
010import com.avaje.ebean.Transaction;
011import com.avaje.ebean.Version;
012
013import java.util.List;
014import java.util.Map;
015import java.util.Set;
016
017/**
018 * Provides an adaption layer for find methods.
019 */
020public interface InterceptFind {
021
022  void refresh(Object bean);
023
024  void refreshMany(Object bean, String propertyName);
025
026  <T> T findUnique(Query<T> query, Transaction transaction);
027
028  <T> T find(Class<T> beanType, Object id, Transaction transaction);
029
030  <T> int findRowCount(Query<T> query, Transaction transaction);
031
032  <T> List<Object> findIds(Query<T> query, Transaction transaction);
033
034  <T> void findEach(Query<T> query, QueryEachConsumer<T> consumer, Transaction transaction);
035
036  <T> void findEachWhile(Query<T> query, QueryEachWhileConsumer<T> consumer, Transaction transaction);
037
038  <T> List<T> findList(Query<T> query, Transaction transaction);
039
040  <T> FutureRowCount<T> findFutureRowCount(Query<T> query, Transaction transaction);
041
042  <T> FutureIds<T> findFutureIds(Query<T> query, Transaction transaction);
043
044  <T> FutureList<T> findFutureList(Query<T> query, Transaction transaction);
045
046  <T> PagedList<T> findPagedList(Query<T> query, Transaction transaction);
047
048  <T> Set<T> findSet(Query<T> query, Transaction transaction);
049
050  <T> Map<?, T> findMap(Query<T> query, Transaction transaction);
051
052  <T> List<Version<T>> findVersions(Query<T> query, Transaction transaction);
053
054}