/*******************************************************************************
 * Copyright (c) 2013 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
 *******************************************************************************/
module SubGenerateASModel

import org.eclipse.ocl.examples.build.utilities.GenerateModel
import org.eclipse.ocl.examples.build.xtend.GenerateASVisitors
import org.eclipse.emf.ecore.resource.ResourceSet

/**
 * A ResourceSet that may be shared by workflow components.
 */
var ResourceSet resourceSet

/**
 * The name of the project hosting the generated models; e.g. "org.eclipse.ocl.xtext.essentialocl"
 */
var projectName

/**
 *  The project-relative genmodel file; e.g. "model/MyModel.genmodel".
 */
var genModelFile


/**
 * (Optional) The name of the inherited project hosting the generated models; e.g. "org.eclipse.ocl.xtext.basecs", "" for a base visitor.
 */
var superProjectName = ""

/**
 *  (Optional) The project-relative genmodel file of the inherited project; e.g. "model/MyModel.genmodel"; default: "".
 */
var superGenModelFile = ""

/**
 * (Optional) The name of the base project hosting the generated models; e.g. "org.eclipse.ocl.xtext.basecs", "" for a base visitor.
 */
var baseProjectName = ""

/**
 *  (Optional) The project-relative genmodel file of the base project; e.g. "model/MyModel.genmodel"; default: "".
 */
var baseGenModelFile = ""

/**
 * (Optional) The workspace-relative name of the gen model file; default: "/${projectName}/${genModelFile}"
 */
var genModel = "/${projectName}/${genModelFile}"

/**
 *	Generate an Abstract Syntax Model and its visitors as used by the evaluator.
 */
Workflow {
    component = GenerateModel { resourceSet = resourceSet skipOnErrors = true
    	genModel = genModel clearResourceSet = false
    }
    component = GenerateASVisitors { resourceSet = resourceSet skipOnErrors = true
    	projectName = projectName
    	genModelFile = genModelFile
    	superProjectName = superProjectName
    	superGenModelFile = superGenModelFile
    	baseProjectName = baseProjectName
    	baseGenModelFile = baseGenModelFile
    }
}
