<!--
/********************************************************************************
 * Copyright (c) 2007, 2019 INRIA. 
 * All rights reserved. This program and the accompanying materials 
 * are made available under the terms of the Eclipse Public License v2.0 
 * which accompanies this distribution, and is available at
 * http://www.eclipse.org/legal/epl-v20.html
 * 
 * Contributors: 
 *     INRIA - Initial implementation
 *     
 ******************************************************************************/
-->

<!-- author: Hugo Bruneliere -->

<project name="BugzillaModel-Understanding" default="understand">

	<target name="understand" depends="loadMetamodels">
		
		<!-- Load the Bugzilla model -->
		<am3.loadModel modelHandler="EMF" name="Bugs_GMT-Bugzilla" metamodel="Bugzilla" path="Outputs/Bugzilla/Bugs_GMT-Bugzilla.xmi"/>
		
		<!-- Generate the Metrics model from the Bugzilla model -->		
		<am3.atl path="Transformations/Bugzilla2Metrics.atl">
			<inModel name="IN" model="Bugs_GMT-Bugzilla"/>
			<inModel name="Bugzilla" model="Bugzilla"/>
			<inModel name="Metrics" model="Metrics"/>
			<outModel name="OUT" model="Bugs_GMT-Metrics" metamodel="Metrics"/>
		</am3.atl>
		<am3.saveModel model="Bugs_GMT-Metrics" path="Outputs/Metrics/Bugs_GMT-Metrics.xmi"/>
		
	</target>
	
	
	<target name="loadMetamodels">

		<!-- Load Bugzilla metamodel -->
		<am3.loadModel modelHandler="EMF" name="Bugzilla" metamodel="MOF" path="Metamodels/Bugzilla.ecore" />
		
		<!-- Load Metrics metamodel -->
		<am3.loadModel modelHandler="EMF" name="Metrics" metamodel="MOF" path="/org.eclipse.modisco.tool.metricsvisualizationbuilder/Metamodels/Metrics.ecore" />
		
	</target>
	
</project>