/*
* Copyright (c) 2012 Data Harmonisation Panel
*
* All rights reserved. This program and the accompanying materials are made
* available under the terms of the GNU Lesser General Public License as
* published by the Free Software Foundation, either version 3 of the License,
* or (at your option) any later version.
*
* You should have received a copy of the GNU Lesser General Public License
* along with this distribution. If not, see <http://www.gnu.org/licenses/>.
*
* Contributors:
* Data Harmonisation Panel <http://www.dhpanel.eu>
*/
package eu.esdihumboldt.hale.common.headless;
import java.util.Map;
import eu.esdihumboldt.hale.common.align.model.Alignment;
import eu.esdihumboldt.hale.common.core.io.project.ProjectInfo;
import eu.esdihumboldt.hale.common.core.io.project.model.IOConfiguration;
import eu.esdihumboldt.hale.common.core.service.ServiceProvider;
import eu.esdihumboldt.hale.common.schema.model.SchemaSpace;
/**
* Represents a loaded alignment and possible configuration for loading source
* data and writing transformed data.
*
* @author Simon Templer
*/
public interface TransformationEnvironment extends ServiceProvider {
/**
* Get the unique identifier for this transformation environment.
*
* @return the identifier
*/
public String getId();
/**
* Get information on the associated project, if available.
*
* @return the project information or <code>null</code>
*/
public ProjectInfo getProjectInfo();
/**
* Get the alignment between source and target schemas.
*
* @return the alignment
*/
public Alignment getAlignment();
/**
* Get the source schemas.
*
* @return the source schemas
*/
public SchemaSpace getSourceSchema();
/**
* Get the target schemas.
*
* @return the target schemas
*/
public SchemaSpace getTargetSchema();
/**
* Get the export presets configured for the project.
*
* @return copies of the export presets, fully configured except for the
* target
*/
public Map<String, ? extends IOConfiguration> getExportPresets();
/**
* Get export templates compatible to the target schema, not fully
* configured.
*
* @return copies of the export templates, configured at least with the
* action and provider ID
*/
public Map<String, ? extends IOConfiguration> getExportTemplates();
// TODO import/export configurations
}