package siena.core.batch;
import siena.core.async.SienaFuture;
import siena.core.async.PersistenceManagerAsync;
public class BaseBatchAsync<T> implements BatchAsync<T> {
private Class<T> clazz;
private PersistenceManagerAsync pm;
public BaseBatchAsync(PersistenceManagerAsync pm, Class<T> clazz) {
this.clazz = clazz;
this.pm = pm;
}
public BaseBatchAsync(BaseBatchAsync<T> batch) {
this.clazz = batch.clazz;
this.pm = batch.pm;
}
public SienaFuture<Integer> insert(Object... models){
return pm.insert(models);
}
public SienaFuture<Integer> insert(Iterable<T> models){
return pm.insert(models);
}
public SienaFuture<Integer> delete(Object... models){
return pm.delete(models);
}
public SienaFuture<Integer> delete(Iterable<T> models){
return pm.delete(models);
}
public SienaFuture<Integer> deleteByKeys(Object... keys){
return pm.delete(clazz, keys);
}
public SienaFuture<Integer> deleteByKeys(Iterable<?> keys){
return pm.delete(clazz, keys);
}
public SienaFuture<Integer> update(T... models) {
return pm.update(models);
}
public SienaFuture<Integer> update(Iterable<T> models) {
return pm.update(models);
}
public Batch<T> sync() {
return pm.sync().createBatch(clazz);
}
}