/**
* <copyright>
*
* Copyright (c) 2013 Willink Transformations Ltd., University of York 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:
* Adolfo Sanchez-Barbudo Herrera (University of York) - initial API and implementation
*
* </copyright>
*/
package org.eclipse.qvto.examples.build.utilities;
import org.eclipse.emf.codegen.ecore.genmodel.GenPackage;
import org.eclipse.emf.ecore.EPackage;
import org.eclipse.jdt.annotation.NonNull;
import org.eclipse.ocl.pivot.model.OCLstdlib;
import org.eclipse.ocl.xtext.essentialocl.EssentialOCLStandaloneSetup;
import org.eclipse.qvto.examples.xtext.imperativeocl.ImperativeOCLStandaloneSetup;
import org.eclipse.qvto.examples.xtext.qvtoperational.QVTOperationalStandaloneSetup;
// TODO non-derived visitor is not supported, since currently
// the root CS2AS are not generated but manually coded.
public class GenerateCS2ASVisitors extends org.eclipse.ocl.examples.build.xtend.GenerateCS2ASVisitors
{
// private String asGenModelURI;
@Override
protected void doSetup() {
EssentialOCLStandaloneSetup.doSetup();
ImperativeOCLStandaloneSetup.doSetup();
QVTOperationalStandaloneSetup.doSetup();
OCLstdlib.install();
}
@Override
public void generateVisitors(GenPackage genPackage) {
super.generateVisitors(genPackage);
EPackage csPackage = genPackage.getEcorePackage();
generateAbstractExtendingDelegatingVisitor(csPackage); // FIXME not generated by OCL. Move to GenerateCSVisitors
}
@Override
protected void generateContainmentVisitor(@NonNull GenPackage genPackage) {
if (isDerived()) {
// CS2ASCodeGenerator.generate(genPackage, projectPrefix, projectName, visitorPackageName, visitorClassName,
// superProjectPrefix, superProjectName, superVisitorClassName
// );
} else {
// CS2ASCodeGenerator.generate(genPackage, projectPrefix, projectName, visitorPackageName, visitorClassName,
// null, null, null);
}
}
}