001package com.avaje.ebean.delegate; 002 003import com.avaje.ebean.EbeanServer; 004import com.avaje.ebean.FutureIds; 005import com.avaje.ebean.FutureList; 006import com.avaje.ebean.FutureRowCount; 007import com.avaje.ebean.PagedList; 008import com.avaje.ebean.Query; 009import com.avaje.ebean.QueryEachConsumer; 010import com.avaje.ebean.QueryEachWhileConsumer; 011import com.avaje.ebean.Transaction; 012import com.avaje.ebean.Version; 013import com.avaje.ebeaninternal.api.SpiQuery; 014 015import java.util.List; 016import java.util.Map; 017import java.util.Set; 018 019/** 020 * Wraps an underlying EbeanServer. 021 * <p> 022 * Can you used for testing purposes when you want to create a test double that 023 * only replaces some of the underlying functionality of the EbeanServer. 024 */ 025public class DelegateFind implements InterceptFind { 026 027 protected EbeanServer delegate; 028 029 /** 030 * Construct with a EbeanServer to delegate to by default. 031 * <p> 032 * This delegate will be used on all method calls that are not overwritten. 033 */ 034 public DelegateFind(EbeanServer delegate) { 035 this.delegate = delegate; 036 } 037 038 @Override 039 public void refresh(Object bean) { 040 delegate.refresh(bean); 041 } 042 043 @Override 044 public void refreshMany(Object bean, String propertyName) { 045 delegate.refreshMany(bean, propertyName); 046 } 047 048 @Override 049 public <T> T findUnique(Query<T> query, Transaction transaction) { 050 return delegate.findUnique(query, transaction); 051 } 052 053 @Override 054 public <T> T find(Class<T> beanType, Object id, Transaction transaction) { 055 return delegate.find(beanType, id, transaction); 056 } 057 058 @Override 059 public <T> int findRowCount(Query<T> query, Transaction transaction) { 060 return delegate.findRowCount(query, transaction); 061 } 062 063 @Override 064 public <T> List<Object> findIds(Query<T> query, Transaction transaction) { 065 return delegate.findIds(query, transaction); 066 } 067 068 @Override 069 public <T> void findEach(Query<T> query, QueryEachConsumer<T> consumer, Transaction transaction) { 070 delegate.findEach(query, consumer, transaction); 071 } 072 073 @Override 074 public <T> void findEachWhile(Query<T> query, QueryEachWhileConsumer<T> consumer, Transaction transaction) { 075 delegate.findEachWhile(query, consumer, transaction); 076 } 077 078 @Override 079 public <T> List<T> findList(Query<T> query, Transaction transaction) { 080 081 SpiQuery q = (SpiQuery)query; 082 q.getBeanType(); 083 return delegate.findList(query, transaction); 084 } 085 086 @Override 087 public <T> FutureRowCount<T> findFutureRowCount(Query<T> query, Transaction transaction) { 088 return delegate.findFutureRowCount(query, transaction); 089 } 090 091 @Override 092 public <T> FutureIds<T> findFutureIds(Query<T> query, Transaction transaction) { 093 return delegate.findFutureIds(query, transaction); 094 } 095 096 @Override 097 public <T> FutureList<T> findFutureList(Query<T> query, Transaction transaction) { 098 return delegate.findFutureList(query, transaction); 099 } 100 101 @Override 102 public <T> PagedList<T> findPagedList(Query<T> query, Transaction transaction) { 103 return delegate.findPagedList(query, transaction); 104 } 105 106 @Override 107 public <T> Set<T> findSet(Query<T> query, Transaction transaction) { 108 return delegate.findSet(query, transaction); 109 } 110 111 @Override 112 public <T> Map<?, T> findMap(Query<T> query, Transaction transaction) { 113 return delegate.findMap(query, transaction); 114 } 115 116 @Override 117 public <T> List<Version<T>> findVersions(Query<T> query, Transaction transaction) { 118 return delegate.findVersions(query, transaction); 119 } 120}