blob: 621202d8cd25bf55a6b3b0bb1675563a51334ca9 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2012 E.D.Willink and others.
* 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:
* E.D.Willink - initial API and implementation
*
* Run As->MWE2 Workflow to regenerate the LPG files.
*******************************************************************************/
module GenerateLPG
import org.eclipse.ocl.examples.build.utilities.*
import org.eclipse.emf.mwe.utils.*
import org.eclipse.emf.mwe.utils.*
import org.eclipse.emf.ecore.resource.impl.*
import org.eclipse.m2m.internal.qvt.oml.runtime.ant.QvtoAntTransformationTask
var projectName = "org.eclipse.ocl.examples.xtext2lpg"
var projectURI = "platform:/resource/${projectName}"
var CompleteOCLxtext = "platform:/resource/org.eclipse.ocl.examples.xtext.completeocl/src/org/eclipse/ocl/examples/xtext/completeocl/CompleteOCL.xtext"
var CompleteOCLxtextXBNF = "platform:/resource/${projectName}/generatedModels/CompleteOCL.xtext.XBNF"
var CompleteOCLnormalXBNF = "platform:/resource/${projectName}/generatedModels/CompleteOCL.normal.XBNF"
var CompleteOCLinlineXBNF = "platform:/resource/${projectName}/generatedModels/CompleteOCL.inline.XBNF"
var EssentialOCLxtext = "platform:/resource/org.eclipse.ocl.examples.xtext.essentialocl/src/org/eclipse/ocl/examples/xtext/essentialocl/EssentialOCL.xtext"
var EssentialOCLxtextXBNF = "platform:/resource/${projectName}/generatedModels/EssentialOCL.xtext.XBNF"
var EssentialOCLnormalXBNF = "platform:/resource/${projectName}/generatedModels/EssentialOCL.normal.XBNF"
var EssentialOCLinlineXBNF = "platform:/resource/${projectName}/generatedModels/EssentialOCL.inline.XBNF"
var OCLinEcorextext = "platform:/resource/org.eclipse.ocl.examples.xtext.oclinecore/src/org/eclipse/ocl/examples/xtext/oclinecore/OCLinEcore.xtext"
var OCLinEcorextextXBNF = "platform:/resource/${projectName}/generatedModels/OCLinEcore.xtext.XBNF"
var OCLinEcorenormalXBNF = "platform:/resource/${projectName}/generatedModels/OCLinEcore.normal.XBNF"
var OCLinEcoreinlineXBNF = "platform:/resource/${projectName}/generatedModels/OCLinEcore.inline.XBNF"
var OCLstdlibxtext = "platform:/resource/org.eclipse.ocl.examples.xtext.oclstdlib/src/org/eclipse/ocl/examples/xtext/oclstdlib/OCLstdlib.xtext"
var OCLstdlibxtextXBNF = "platform:/resource/${projectName}/generatedModels/OCLstdlib.xtext.XBNF"
var OCLstdlibnormalXBNF = "platform:/resource/${projectName}/generatedModels/OCLstdlib.normal.XBNF"
var OCLstdlibinlineXBNF = "platform:/resource/${projectName}/generatedModels/OCLstdlib.inline.XBNF"
/**
* Generate the Concrete Syntax Models used by the Xtext editors.
*/
Workflow {
bean = ResourceSetImpl : resourceSet {}
bean = StandaloneSetup { resourceSet = resourceSet
extensionMap = Mapping {
from = "XBNF"
to = "org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl"
}
// platformUri = "./META-INF" // A local folder to minimize workspace searching
// scanClassPath = true // But we do need to search the plugin-space
// registerGeneratedEPackage = "org.eclipse.xtext.common.types.TypesPackage"
// uriMap = Mapping {
// from = "platform:/plugin/org.eclipse.xtext.common.types/"
// to = "platform:/resource/org.eclipse.xtext.common.types/"
// }
}
bean = XtextStandaloneSetupBean {}
bean = ProjectMapSetup { resourceSet = resourceSet }
bean = DynamicEPackageSetup { resourceSet = resourceSet
dynamicEPackage = "/${projectName}/model/XBNF.ecore"
dynamicEPackage = "/${projectName}/model/XBNFwithCardinality.ecore"
}
component = QVToTransformationExecutor {
resourceSet = resourceSet
uri = "${projectURI}/transforms/xtext2xbnf.qvto"
in = "${EssentialOCLxtext}"
out = "${EssentialOCLxtextXBNF}"
}
component = QVToTransformationExecutor {
resourceSet = resourceSet
uri = "${projectURI}/transforms/xtext2xbnf.qvto"
in = "${CompleteOCLxtext}"
out = "${CompleteOCLxtextXBNF}"
}
component = QVToTransformationExecutor {
resourceSet = resourceSet
uri = "${projectURI}/transforms/xtext2xbnf.qvto"
in = "${OCLinEcorextext}"
out = "${OCLinEcorextextXBNF}"
}
component = QVToTransformationExecutor {
resourceSet = resourceSet
uri = "${projectURI}/transforms/xtext2xbnf.qvto"
in = "${OCLstdlibxtext}"
out = "${OCLstdlibxtextXBNF}"
}
component = QVToTransformationExecutor {
resourceSet = resourceSet
uri = "${projectURI}/transforms/normalize.qvto"
in = "${EssentialOCLxtextXBNF}"
out = "${EssentialOCLnormalXBNF}"
}
component = QVToTransformationExecutor {
resourceSet = resourceSet
uri = "${projectURI}/transforms/normalize.qvto"
in = "${CompleteOCLxtextXBNF}"
out = "${CompleteOCLnormalXBNF}"
}
component = QVToTransformationExecutor {
resourceSet = resourceSet
uri = "${projectURI}/transforms/normalize.qvto"
in = "${OCLinEcorextextXBNF}"
out = "${OCLinEcorenormalXBNF}"
}
component = QVToTransformationExecutor {
resourceSet = resourceSet
uri = "${projectURI}/transforms/normalize.qvto"
in = "${OCLstdlibxtextXBNF}"
out = "${OCLstdlibnormalXBNF}"
}
component = QVToTransformationExecutor {
resourceSet = resourceSet
uri = "${projectURI}/transforms/inline.qvto"
in = "${EssentialOCLnormalXBNF}"
out = "${EssentialOCLinlineXBNF}"
}
component = QVToTransformationExecutor {
resourceSet = resourceSet
uri = "${projectURI}/transforms/inline.qvto"
in = "${CompleteOCLnormalXBNF}"
out = "${CompleteOCLinlineXBNF}"
}
component = QVToTransformationExecutor {
resourceSet = resourceSet
uri = "${projectURI}/transforms/inline.qvto"
in = "${OCLinEcorenormalXBNF}"
out = "${OCLinEcoreinlineXBNF}"
}
component = QVToTransformationExecutor {
resourceSet = resourceSet
uri = "${projectURI}/transforms/inline.qvto"
in = "${OCLstdlibnormalXBNF}"
out = "${OCLstdlibinlineXBNF}"
}
component = XBNF2LPGCodeGenerator { resourceSet = resourceSet
in = "${EssentialOCLinlineXBNF}"
javaFolder = "../${projectName}/generatedModels"
javaPackageName = "${projectName}"
}
component = XBNF2LPGCodeGenerator { resourceSet = resourceSet
in = "${CompleteOCLinlineXBNF}"
javaFolder = "../${projectName}/generatedModels"
javaPackageName = "${projectName}"
}
component = XBNF2LPGCodeGenerator { resourceSet = resourceSet
in = "${OCLinEcoreinlineXBNF}"
javaFolder = "../${projectName}/generatedModels"
javaPackageName = "${projectName}"
}
component = XBNF2LPGCodeGenerator { resourceSet = resourceSet
in = "${OCLstdlibinlineXBNF}"
javaFolder = "../${projectName}/generatedModels"
javaPackageName = "${projectName}"
}
}