/*
* Copyright (c) 2017 OBiBa. All rights reserved.
*
* This program and the accompanying materials
* are made available under the terms of the GNU Public License v3.0.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package org.obiba.magma.support;
import javax.validation.constraints.NotNull;
import org.obiba.magma.AbstractDatasourceFactory;
import org.obiba.magma.Datasource;
import org.obiba.magma.DatasourceFactory;
import org.obiba.magma.Initialisable;
public class BatchDatasourceFactory extends AbstractDatasourceFactory implements Initialisable {
@NotNull
private final DatasourceFactory wrappedFactory;
private final int limit;
public BatchDatasourceFactory(@NotNull DatasourceFactory wrappedFactory, int limit) {
this.wrappedFactory = wrappedFactory;
this.limit = limit;
}
@Override
public void setName(@NotNull String name) {
wrappedFactory.setName(name);
}
@Override
public String getName() {
return wrappedFactory.getName();
}
@NotNull
@Override
protected Datasource internalCreate() {
return new BatchDatasource(wrappedFactory.create(), limit);
}
@Override
public void initialise() {
Initialisables.initialise(wrappedFactory);
}
}