blob: 6c548a3e633775c279a70a0b0cb7ff9201de4f82 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2010, 2013 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
* Adolfo Sanchez-Barbudo Herrera (University of York) - bug397429"
*
* Run As->MWE2 Workflow to regenerate the pivot model.
*******************************************************************************/
module GeneratePivotModel
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.*
import org.eclipse.uml2.uml.resource.XMI2UMLResource
var ecoreSlot = "ecore"
var umlSlot = "uml"
var pivotProjectName = "org.eclipse.ocl.pivot"
var internalProjectName = "org.eclipse.ocl.pivot"
//var platformURI = ".."
/**
* Generate the Pivot Model, by performing the merge to create the flattened package
* with additional MDT/OCL content, alphabeticsing the classes, reloading the genmodel
* and finally generating the model code.
*/
Workflow {
bean = ResourceSetImpl : resourceSet {}
bean = ProjectMapSetup { resourceSet = resourceSet }
bean = UMLStandaloneSetup { resourceSet = resourceSet }
bean = OCLStandaloneSetup {}
// bean = GenModelSetup { resourceSet = resourceSet }
// bean = UMLGenModelSetup { resourceSet = resourceSet }
bean = SplitGenModelSetup { resourceSet = resourceSet }
component = ResourceReader { resourceSet = resourceSet skipOnErrors = true
modelSlot = "${umlSlot}"
uri = "/${internalProjectName}/model/RawPivot.ecore"
}
// component = PackageMerger { skipOnErrors = true
// modelSlot = "${umlSlot}"
// }
component = EPackageAlphabetizer { skipOnErrors = true
modelSlot = "${umlSlot}"
}
component = EConstraintRemover { skipOnErrors = true
modelSlot = "${umlSlot}"
}
// component = NonAbstractTypeZapper { skipOnErrors = true
// modelSlot = "${umlSlot}"
// }
// component = CommentNormalizer { skipOnErrors = true
// modelSlot = "${umlSlot}"
// }
// component = UMLIDAssigner { skipOnErrors = true
// modelSlot = "${umlSlot}"
// }
component = ResourceWriter { resourceSet = resourceSet skipOnErrors = true
modelSlot = "${umlSlot}"
uri = "/${internalProjectName}/model/Pivot.ecore"
// contentTypeIdentifier = "org.eclipse.uml2.uml_5_0_0" // UMLResource.UML_CONTENT_TYPE_IDENTIFIER
}
component = GenmodelReloader { resourceSet = resourceSet skipOnErrors = true
projectName = "${internalProjectName}"
modelSlot = "${ecoreSlot}"
genModel = "/${internalProjectName}/model/Pivot.genmodel"
ecoreFile = "/${internalProjectName}/model/Pivot.ecore"
// modelImporter = "org.eclipse.uml2.uml.ecore.importer.UMLImporter"
// modelImporter = "org.eclipse.ocl.examples.build.utilities.UMLImporterWithDelegates"
}
component = ResourceReader { resourceSet = resourceSet skipOnErrors = true
modelSlot = "${ecoreSlot}"
uri = "/${internalProjectName}/model/Pivot.ecore"
}
component = ConstraintMerger { resourceSet = resourceSet skipOnErrors = true
projectName = "${internalProjectName}"
modelSlot = "${ecoreSlot}"
uri = "model/Pivot.ocl"
invariantPrefix = "validate"
}
component = EPackageAlphabetizer { skipOnErrors = true
modelSlot = "${ecoreSlot}"
}
component = PruneSuperClasses { skipOnErrors = true
modelSlot = "${ecoreSlot}"
}
component = SetASmetamodel { skipOnErrors = true
modelSlot = "${ecoreSlot}"
}
// component = PivotWorkarounds { skipOnErrors = true
// modelSlot = "${ecoreSlot}"
// }
// component = OCLDelegateActivator { skipOnErrors = true
// modelSlot = "${pivotSlot}"
// }
component = ResourceWriter { resourceSet = resourceSet skipOnErrors = true
modelSlot = "${ecoreSlot}"
}
component = GenerateModel { resourceSet = resourceSet skipOnErrors = true
// projectName = "${internalProjectName}"
genModel = "/${internalProjectName}/model/Pivot.genmodel"
// clearResourceSet = false
// modelSlot = "${ecoreSlot}"
}
component = GenerateASVisitors { resourceSet = resourceSet
projectName = "${internalProjectName}"
projectPrefix = "Pivot"
superProjectName = ""
genModelFile = "model/Pivot.genmodel"
javaFolder = "emf-gen"
modelPackageName = "${pivotProjectName}"
visitorPackageName = "${pivotProjectName}.util"
visitorClassName = "Visitor"
// visitablePackageName = "${pivotProjectName}.util"
visitableClassName = "Visitable"
}
component = GenerateOCLmetamodelXtend { //resourceSet = resourceSet
projectName = "${internalProjectName}"
modelFile = "model/Pivot.ecore"
uri = "http://www.eclipse.org/ocl/2015/Pivot"
javaFolder = "emf-gen"
javaPackageName = "${pivotProjectName}.model"
javaClassName = "OCLmetamodel"
}
}