001package com.avaje.ebean.delegate;
002
003import com.avaje.ebean.EbeanServer;
004import com.avaje.ebean.Transaction;
005
006import javax.persistence.OptimisticLockException;
007import java.util.Collection;
008
009/**
010 * Delegate based InterceptSave implementation.
011 */
012public class DelegateSave implements InterceptSave {
013
014  protected EbeanServer delegate;
015
016  /**
017   * Construct with a EbeanServer to delegate and using ImmediateBackgroundExecutor.
018   * <p>
019   * This delegate will be used on all method calls that are not overwritten.
020   */
021  public DelegateSave(EbeanServer delegate) {
022    this.delegate = delegate;
023  }
024
025  @Override
026  public Object nextId(Class<?> beanType) {
027    return delegate.nextId(beanType);
028  }
029
030  @Override
031  public void save(Object bean, Transaction transaction) throws OptimisticLockException {
032    delegate.save(bean, transaction);
033  }
034
035  @Override
036  public int saveAll(Collection<?> beans, Transaction transaction) throws OptimisticLockException {
037    return delegate.saveAll(beans, transaction);
038  }
039
040  @Override
041  public void update(Object bean, Transaction t) throws OptimisticLockException {
042    delegate.update(bean, t);
043  }
044
045  @Override
046  public void update(Object bean, Transaction transaction, boolean deleteMissingChildren) throws OptimisticLockException {
047    delegate.update(bean, transaction, deleteMissingChildren);
048  }
049
050  @Override
051  public void updateAll(Collection<?> beans, Transaction transaction) throws OptimisticLockException {
052    delegate.updateAll(beans, transaction);
053  }
054
055  @Override
056  public void insert(Object bean, Transaction t) {
057    delegate.insert(bean, t);
058  }
059
060  @Override
061  public void insertAll(Collection<?> beans, Transaction t) {
062    delegate.insertAll(beans, t);
063  }
064
065}