/*
* ARX: Powerful Data Anonymization
* Copyright 2014 - 2015 Karol Babioch, Fabian Prasser, Florian Kohlmayer
*
* 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 org.deidentifier.arx.io;
import java.util.ArrayList;
import java.util.List;
/**
* Abstract base configuration
*
* This abstract superclass defines properties that all configurations have
* in common, i.e. a notion of columns, which can be added and retrieved.
*
* @author Karol Babioch
* @author Fabian Prasser
*/
public abstract class ImportConfiguration {
/**
* List of columns to be imported
*
* Each element of this list represents a single column to import from.
* Refer to {@link ImportColumn} for details. Columns can be added by invoking
* {@link #addColumn(ImportColumn)} and retrieved by {@link #getColumns()}.
*
* @note Only columns that are part of this list will be imported from,
* any other column will simply be ignored.
*/
protected List<ImportColumn> columns = new ArrayList<ImportColumn>();
/**
* Adds a single column to import from.
*
* @param column A single column to import from
* @note This needs to be implemented by the specific configuration class,
* as {@link ImportColumn} is only an abstract superclass for various kind of
* columns.
*/
abstract public void addColumn(ImportColumn column);
/**
* Returns all added columns.
*
* @return {@link #columns}
*/
public List<ImportColumn> getColumns() {
return columns;
}
}