/*
* Copyright © 2016 Cask Data, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy of
* the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations under
* the License.
*/
package co.cask.cdap.data2.dataset2;
import co.cask.cdap.api.dataset.Dataset;
import co.cask.cdap.api.dataset.DatasetAdmin;
import co.cask.cdap.api.dataset.DatasetManagementException;
import co.cask.cdap.api.dataset.DatasetProperties;
import co.cask.cdap.api.dataset.DatasetSpecification;
import co.cask.cdap.api.dataset.module.DatasetModule;
import co.cask.cdap.data2.datafabric.dataset.type.DatasetClassLoaderProvider;
import co.cask.cdap.data2.metadata.lineage.AccessType;
import co.cask.cdap.proto.DatasetSpecificationSummary;
import co.cask.cdap.proto.Id;
import org.apache.twill.filesystem.Location;
import java.io.IOException;
import java.util.Collection;
import java.util.Map;
import javax.annotation.Nullable;
/**
* Implementation of the {@link DatasetFramework} which forwards all calls to the underlying
* delegate.
*/
public class ForwardingDatasetFramework implements DatasetFramework {
protected final DatasetFramework delegate;
public ForwardingDatasetFramework(DatasetFramework datasetFramework) {
this.delegate = datasetFramework;
}
@Override
public void addModule(Id.DatasetModule moduleId, DatasetModule module) throws DatasetManagementException {
delegate.addModule(moduleId, module);
}
@Override
public void addModule(Id.DatasetModule moduleId, DatasetModule module, Location jarLocation)
throws DatasetManagementException {
delegate.addModule(moduleId, module, jarLocation);
}
@Override
public void deleteModule(Id.DatasetModule moduleId) throws DatasetManagementException {
delegate.deleteModule(moduleId);
}
@Override
public void deleteAllModules(Id.Namespace namespaceId) throws DatasetManagementException {
delegate.deleteAllModules(namespaceId);
}
@Override
public void addInstance(String datasetTypeName, Id.DatasetInstance datasetInstanceId, DatasetProperties props)
throws DatasetManagementException, IOException {
delegate.addInstance(datasetTypeName, datasetInstanceId, props);
}
@Override
public void updateInstance(Id.DatasetInstance datasetInstanceId, DatasetProperties props)
throws DatasetManagementException, IOException {
delegate.updateInstance(datasetInstanceId, props);
}
@Override
public Collection<DatasetSpecificationSummary> getInstances(Id.Namespace namespaceId)
throws DatasetManagementException {
return delegate.getInstances(namespaceId);
}
@Nullable
@Override
public DatasetSpecification getDatasetSpec(Id.DatasetInstance datasetInstanceId) throws DatasetManagementException {
return delegate.getDatasetSpec(datasetInstanceId);
}
@Override
public boolean hasInstance(Id.DatasetInstance datasetInstanceId) throws DatasetManagementException {
return delegate.hasInstance(datasetInstanceId);
}
@Override
public boolean hasSystemType(String typeName) throws DatasetManagementException {
return delegate.hasSystemType(typeName);
}
@Override
public boolean hasType(Id.DatasetType datasetTypeId) throws DatasetManagementException {
return delegate.hasType(datasetTypeId);
}
@Override
public void truncateInstance(Id.DatasetInstance datasetInstanceId) throws DatasetManagementException, IOException {
delegate.truncateInstance(datasetInstanceId);
}
@Override
public void deleteInstance(Id.DatasetInstance datasetInstanceId) throws DatasetManagementException, IOException {
delegate.deleteInstance(datasetInstanceId);
}
@Override
public void deleteAllInstances(Id.Namespace namespaceId) throws DatasetManagementException, IOException {
delegate.deleteAllInstances(namespaceId);
}
@Nullable
@Override
public <T extends DatasetAdmin> T getAdmin(Id.DatasetInstance datasetInstanceId, @Nullable ClassLoader classLoader)
throws DatasetManagementException, IOException {
return delegate.getAdmin(datasetInstanceId, classLoader);
}
@Nullable
@Override
public <T extends DatasetAdmin> T getAdmin(Id.DatasetInstance datasetInstanceId, @Nullable ClassLoader classLoader,
DatasetClassLoaderProvider classLoaderProvider)
throws DatasetManagementException, IOException {
return delegate.getAdmin(datasetInstanceId, classLoader, classLoaderProvider);
}
@Nullable
@Override
public <T extends Dataset> T getDataset(Id.DatasetInstance datasetInstanceId, @Nullable Map<String, String> arguments,
@Nullable ClassLoader classLoader, @Nullable Iterable<? extends Id> owners)
throws DatasetManagementException, IOException {
return delegate.getDataset(datasetInstanceId, arguments, classLoader, owners);
}
@Nullable
@Override
public <T extends Dataset> T getDataset(Id.DatasetInstance datasetInstanceId, @Nullable Map<String, String> arguments,
@Nullable ClassLoader classLoader)
throws DatasetManagementException, IOException {
return delegate.getDataset(datasetInstanceId, arguments, classLoader);
}
@Nullable
@Override
public <T extends Dataset> T getDataset(Id.DatasetInstance datasetInstanceId, @Nullable Map<String, String> arguments,
@Nullable ClassLoader classLoader,
DatasetClassLoaderProvider classLoaderProvider,
@Nullable Iterable<? extends Id> owners)
throws DatasetManagementException, IOException {
return delegate.getDataset(datasetInstanceId, arguments, classLoader, classLoaderProvider, owners);
}
@Nullable
@Override
public <T extends Dataset> T getDataset(Id.DatasetInstance datasetInstanceId, @Nullable Map<String, String> arguments,
@Nullable ClassLoader classLoader,
DatasetClassLoaderProvider classLoaderProvider,
@Nullable Iterable<? extends Id> owners, AccessType accessType)
throws DatasetManagementException, IOException {
return delegate.getDataset(datasetInstanceId, arguments, classLoader, classLoaderProvider, owners, accessType);
}
@Override
public void writeLineage(Id.DatasetInstance datasetInstanceId, AccessType accessType) {
delegate.writeLineage(datasetInstanceId, accessType);
}
@Override
public void createNamespace(Id.Namespace namespaceId) throws DatasetManagementException {
delegate.createNamespace(namespaceId);
}
@Override
public void deleteNamespace(Id.Namespace namespaceId) throws DatasetManagementException {
delegate.deleteNamespace(namespaceId);
}
}