/*
* 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;
import org.obiba.magma.MagmaEngine;
public class IncrementalDatasourceFactory extends AbstractDatasourceFactory implements Initialisable {
@NotNull
private final DatasourceFactory wrappedFactory;
@NotNull
private final String destinationDatasourceName;
public IncrementalDatasourceFactory(@NotNull DatasourceFactory wrappedFactory,
@NotNull String destinationDatasourceName) {
this.wrappedFactory = wrappedFactory;
this.destinationDatasourceName = destinationDatasourceName;
}
@Override
public void setName(@NotNull String name) {
wrappedFactory.setName(name);
}
@Override
public String getName() {
return wrappedFactory.getName();
}
@NotNull
@Override
protected Datasource internalCreate() {
return new IncrementalDatasource(wrappedFactory.create(),
MagmaEngine.get().getDatasource(destinationDatasourceName));
}
@Override
public void initialise() {
Initialisables.initialise(wrappedFactory);
}
}