<!--
  <copyright>
  
  Copyright (c) 2011 See4sys and others.
  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
  https://www.eclipse.org/org/documents/epl-2.0/EPL-2.0.html
  
  Contributors: 
      See4sys - Initial API and implementation
  </copyright>
 -->
<workflow>
	<property name="srcMetaModelPackage" value="org.eclipse.sphinx.examples.hummingbird20.instancemodel.InstanceModel20Package" />
	<property name="srcModelFile" value="model/sample.instancemodel" />
	<property name="srcModelSlot" value="hb20Model" />

	<property name="dstFolder" value="gen" />
	<property name="dstFileEncoding" value="ISO-8859-1" />

	<bean id="srcMetaModel" class="org.eclipse.xtend.typesystem.emf.EmfRegistryMetaModel" />

	<component class="org.eclipse.xtend.typesystem.emf.XmiReader">
		<metaModelPackage value="${srcMetaModelPackage}" />
		<modelFile value="${srcModelFile}" />
		<firstElementOnly value="true" />
		<outputSlot value="${srcModelSlot}" />
	</component>
	
	<component class="org.eclipse.xtend.check.CheckComponent">
		<metaModel idRef="srcMetaModel"/>
		<checkFile value="checks::InstanceModel"/>
		<emfAllChildrenSlot value="${srcModelSlot}"/>
	</component>
	
	<component class="org.eclipse.xpand2.Generator">
		<skipOnErrors value="true" />
		<metaModel idRef="srcMetaModel" />
		<expand value="templates::ConfigH::main FOR ${srcModelSlot}" />
		<outlet path="${dstFolder}" />
		<fileEncoding value="${dstFileEncoding}" />
	</component>   
</workflow>
