001package com.avaje.ebean.delegate;
002
003import com.avaje.ebean.EbeanServer;
004import com.avaje.ebean.QueryEachConsumer;
005import com.avaje.ebean.QueryEachWhileConsumer;
006import com.avaje.ebean.SqlQuery;
007import com.avaje.ebean.SqlRow;
008import com.avaje.ebean.Transaction;
009
010import java.util.List;
011
012/**
013 * Wraps an underlying EbeanServer.
014 * <p>
015 * Can you used for testing purposes when you want to create a test double that
016 * only replaces some of the underlying functionality of the EbeanServer.
017 */
018public class DelegateFindSqlQuery implements InterceptFindSqlQuery {
019
020  protected EbeanServer delegate;
021
022  /**
023   * Construct with a EbeanServer to delegate to by default.
024   * <p>
025   * This delegate will be used on all method calls that are not overwritten.
026   */
027  public DelegateFindSqlQuery(EbeanServer delegate) {
028    this.delegate = delegate;
029  }
030
031  @Override
032  public List<SqlRow> findList(SqlQuery query, Transaction transaction) {
033    return delegate.findList(query, transaction);
034  }
035
036  @Override
037  public SqlRow findUnique(SqlQuery query, Transaction transaction) {
038    return delegate.findUnique(query, transaction);
039  }
040
041  @Override
042  public void findEach(SqlQuery sqlQuery, QueryEachConsumer<SqlRow> consumer, Transaction transaction) {
043    delegate.findEach(sqlQuery, consumer, transaction);
044  }
045
046  @Override
047  public void findEachWhile(SqlQuery sqlQuery, QueryEachWhileConsumer<SqlRow> consumer, Transaction transaction) {
048    delegate.findEachWhile(sqlQuery, consumer, transaction);
049  }
050}