/*******************************************************************************
 * Copyright (c) 2018 Willink Transformations 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:
 *     E.D.Willink - initial API and implementation
 *
 * Run As->MWE2 Workflow to regenerate the Xtest CST models.
 *******************************************************************************/
module GenerateQVTdTraceModels

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

/**
 *	Generate the Trace Model used by the QVT run-time.
 */
Workflow {
	bean = ResourceSetImpl : qvttraceResourceSet {}
    bean = ProjectMapSetup { resourceSet = qvttraceResourceSet }
    bean = StandaloneSetup { resourceSet = qvttraceResourceSet
    	platformUri = ".."
    	scanClassPath = true
    }
    bean = EcoreGenModelSetup { resourceSet = qvttraceResourceSet }

//    component = @SubGenerateASModel { resourceSet = qvttraceResourceSet
//    	projectName = "org.eclipse.qvtd.qvttrace"
//    	genModelFile =  "model/QVTtrace.genmodel"
//    	superProjectName = "org.eclipse.qvtd.qvttrace"
//    	superGenModelFile = "model/QVTtrace.genmodel"
//    	baseProjectName = "org.eclipse.ocl.pivot"
//    	baseGenModelFile = "model/Pivot.genmodel"
//    }
    
    component = GenerateModel { resourceSet = qvttraceResourceSet skipOnErrors = true
//    	projectName = "org.eclipse.qvtd.qvttrace"
    	genModel = "/org.eclipse.qvtd.runtime/model/QVTtrace.genmodel"
//    	clearResourceSet = false
//    	modelSlot = "${ecoreSlot}"
    }

    component = GenerateASVisitors { resourceSet = qvttraceResourceSet
    	projectName = "org.eclipse.qvtd.runtime"
    	genModelFile = "model/QVTtrace.genmodel"
    }
/* A Pivot version of QVTtrace is unhelpful since extensions must use the dynamic model when running
 * in interpreted form. See Bug 532561.
    component = GenerateOCLmetamodelXtend { resourceSet = qvttraceResourceSet
    	projectName = "org.eclipse.qvtd.runtime"
    	modelFile = "model/QVTtrace.ecore"
    	uri = "http://www.eclipse.org/qvt/2018/QVTtrace"
    	javaFolder = "emf-gen"
    	javaPackageName = "org.eclipse.qvtd.runtime.model"
    	javaClassName = "QVTtraceMetamodel"
    } */

//    component = GenerateModel { resourceSet = resourceSet skipOnErrors = true
//    	genModel = "/org.eclipse.qvtd.pivot.qvtschedule/model/Schedule.genmodel" 	
//    }
/*    component = GenerateScheduleVisitors { resourceSet = resourceSet
    	projectName = "org.eclipse.qvtd.pivot.schedule"
    	genModelFile = "model/Schedule.genmodel"
    } */
	component = ConvertToUnixLineEndings {
		directory = "org.eclipse.qvtd.runtime/emf-gen"
	}
}