/**
 * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf), Loetz GmbH&Co.KG (Heidelberg)
 * All rights reserved. This program and the accompanying materials
 * are made available under the terms of the Eclipse Public License v1.0
 * which accompanies this distribution, and is available at
 * http://www.eclipse.org/legal/epl-v10.html
 *
 * Contributors:
 *         Florian Pirchner - Initial implementation
 */

module org.eclipse.osbp.ecview.uisemantics.GenerateUISemanticsGrammar

import org.eclipse.emf.mwe.utils.*
import org.eclipse.xtext.xtext.generator.*
import org.eclipse.xtext.xtext.generator.model.project.*

var rootPath = ".."

var fileHeaderText = "/**
 * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf), Loetz GmbH&Co.KG (Heidelberg)
 * All rights reserved. This program and the accompanying materials
 * are made available under the terms of the Eclipse Public License v1.0
 * which accompanies this distribution, and is available at
 * http://www.eclipse.org/legal/epl-v10.html
 *
 * Contributors:
 *         Florian Pirchner - Initial implementation
 *
 * generated by Xtext \${version}
 *
 */

"

Workflow {

	component = XtextGenerator {
		configuration = {
			project = StandardProjectConfig {
				baseName = "org.eclipse.osbp.ecview.uisemantics"
				rootPath = rootPath
				genericIde = {
					enabled = true
					name = "org.eclipse.osbp.ecview.uisemantics.ide"
				}
				runtimeTest = {
					enabled = true
				}
				eclipsePlugin = {
					enabled = true
				}
				eclipsePluginTest = {
					enabled = false
				}
				createEclipseMetaData = true
			}
			code = {
				encoding = "UTF-8"
				lineDelimiter = "\n"
				fileHeader = fileHeaderText
			}
		}

		language = StandardLanguage {
			name = "org.eclipse.osbp.ecview.uisemantics.UISemanticsGrammar"
			fileExtensions = "uisemantic"
			
			referencedResource = "platform:/resource/org.eclipse.osbp.ecview.uisemantics/model/UISemanticsGrammar.ecore"
			referencedResource = "platform:/resource/org.eclipse.osbp.ecview.uisemantics/model/UISemanticsGrammar.genmodel"
			
			generateXtendStubs = false
			
			serializer = {
				generateStub = false
			}
			validator = {
			// composedCheck = "org.eclipse.xtext.validation.NamesAreUniqueValidator"
			}

			generator = {
				generateStub = false
				generateJavaMain = false
				generateXtendStub = false
			}

		}
	}
}

