001package com.avaje.ebean.delegate;
002
003import com.avaje.ebean.EbeanServer;
004import com.avaje.ebean.Query;
005import com.avaje.ebean.Transaction;
006
007import java.util.List;
008
009/**
010 * Wraps an underlying EbeanServer providing the publishing features.
011 * <p>
012 * Can you used for testing purposes when you want to create a test double that
013 * only replaces some of the underlying functionality of the EbeanServer.
014 */
015public class DelegatePublish implements InterceptPublish {
016
017  protected EbeanServer delegate;
018
019  public DelegatePublish(EbeanServer delegate) {
020    this.delegate = delegate;
021  }
022
023  @Override
024  public <T> T publish(Class<T> beanType, Object id, Transaction transaction) {
025    return delegate.publish(beanType, id, transaction);
026  }
027
028  @Override
029  public <T> T publish(Class<T> beanType, Object id) {
030    return delegate.publish(beanType, id);
031  }
032
033  @Override
034  public <T> List<T> publish(Query<T> query, Transaction transaction) {
035    return delegate.publish(query, transaction);
036  }
037
038  @Override
039  public <T> List<T> publish(Query<T> query) {
040    return delegate.publish(query);
041  }
042
043  @Override
044  public <T> T draftRestore(Class<T> beanType, Object id, Transaction transaction) {
045    return delegate.draftRestore(beanType, id, transaction);
046  }
047
048  @Override
049  public <T> T draftRestore(Class<T> beanType, Object id) {
050    return delegate.draftRestore(beanType, id);
051  }
052
053  @Override
054  public <T> List<T> draftRestore(Query<T> query, Transaction transaction) {
055    return delegate.draftRestore(query, transaction);
056  }
057
058  @Override
059  public <T> List<T> draftRestore(Query<T> query) {
060    return delegate.draftRestore(query);
061  }
062}