/*******************************************************************************
 * Copyright (c) 2015 Willink Transformations Ltd., University of York 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
 * http://www.eclipse.org/legal/epl-v20.html
 *
 * Contributors:
 *     Adolfo Sanchez-Barbudo Herrera (University of York) - initial API and implementation
 * 
 *******************************************************************************/
module org.eclipse.qvtd.build.mwe2.GenerateExample2Models

import org.eclipse.ocl.examples.autogen.*
import org.eclipse.ocl.examples.build.utilities.*
import org.eclipse.ocl.examples.build.xtend.*
import org.eclipse.emf.mwe.utils.*
import org.eclipse.emf.ecore.resource.impl.*

var projectName = "org.eclipse.qvtd.cs2as.compiler.tests"
var examplesFolder = "models/SimpleClasses"

Workflow {
	bean = ResourceSetImpl : resourceSet {}
    bean = ProjectMapSetup { resourceSet = resourceSet }
    bean = EcoreGenModelSetup { resourceSet = resourceSet }

	component = GenerateModel { resourceSet = resourceSet skipOnErrors = true
    	genModel = "/${projectName}/${examplesFolder}/Classes.genmodel" clearResourceSet = false
    }
    
    component = GenerateModel { resourceSet = resourceSet skipOnErrors = true
    	genModel = "/${projectName}/${examplesFolder}/Classescs.genmodel" clearResourceSet = false
    }
    
    component = GenerateModel { resourceSet = resourceSet skipOnErrors = true
    	genModel = "/${projectName}/${examplesFolder}/EnvExample2.genmodel" clearResourceSet = false
    }
    
    component = GenerateModel { resourceSet = resourceSet skipOnErrors = true
    	genModel = "/${projectName}/${examplesFolder}/Classescs2as.genmodel" clearResourceSet = false
    }

    component = GenerateASVisitors { resourceSet = resourceSet
    	projectName = "${projectName}"
    	superProjectName = ""
    	genModelFile = "${examplesFolder}/Classes.genmodel"
    }
    
    component = @SubGenerateAutoASModel { resourceSet = resourceSet
    	projectName = "${projectName}"
    	genModelFile = "${examplesFolder}/Classes.genmodel"
    	lookupFilePath = "${examplesFolder}/classescs2asLookup.ocl"
// FIXME    	lookupFilePath = "${examplesFolder}/classescs2asV2Lookup.ocl"
    }
}


