# *******************************************************************************
#  Copyright (c) 2018 Robert Bosch GmbH and others.
#  All rights reserved. This program and the accompanying materials
#  are made available under the terms of the Eclipse Public License 2.0
#  which accompanies this distribution, and is available at
#  https://www.eclipse.org/legal/epl-2.0/
# 
#   Contributors:
#  	 Robert Bosch GmbH - initial API and implementation
# 
# *******************************************************************************
input_models_folder=./input/amalthea_models
m2m_output_folder=./output/m2m_output_models
m2t_output_folder=./output/m2t_output_text_files
log_file=./output/transformation.txt
m2mTransformers.target=(transformation=Amalthea2SampleModel)
allModelToModelConfig.target=(transformation=Amalthea2SampleModel)
m2tTransformers.target=(transformation=Amalthea2Text)
allModelToTextConfig.target=(transformation=Amalthea2Text)
