blob: ee8d084cb634d5a2e09c3770d3354334a678c9c8 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2014 C.Gerpheide 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:
* Christine Gerpheide - initial API and implementation
*******************************************************************************/
package org.eclipse.m2m.internal.qvt.oml.evaluator;
import java.util.List;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.m2m.internal.qvt.oml.ast.env.QvtOperationalEvaluationEnv;
import org.eclipse.m2m.internal.qvt.oml.evaluator.QvtOperationalEvaluationVisitorImpl.OperationCallResult;
import org.eclipse.m2m.internal.qvt.oml.expressions.OperationalTransformation;
import org.eclipse.m2m.qvt.oml.util.IContext;
import org.eclipse.ocl.utilities.ASTNode;
import org.eclipse.ocl.utilities.Visitable;
public class QvtGenericVisitorDecorator extends QvtGenericEvaluationVisitor implements InternalEvaluator {
static abstract class Any extends QvtGenericVisitorDecorator {
protected Any(InternalEvaluator qvtExtVisitor) {
super(qvtExtVisitor);
}
protected abstract Object genericVisitAny(Object object);
@Override
protected Object genericPreVisitAST(ASTNode visited) {
return genericVisitAny(visited);
}
@Override
protected Object genericPreVisitVisitable(Visitable visited) {
return genericVisitAny(visited);
}
@Override
protected void genericPreVisitEObject(EObject visited) {
genericVisitAny(visited);
}
}
public QvtGenericVisitorDecorator(InternalEvaluator qvtExtVisitor) {
super(qvtExtVisitor);
}
public IContext getContext() {
return getQVTDelegate().getContext();
}
public void setOperationalEvaluationEnv(QvtOperationalEvaluationEnv evalEnv) {
getQVTDelegate().setOperationalEvaluationEnv(evalEnv);
}
public QvtOperationalEvaluationEnv getOperationalEvaluationEnv() {
return getQVTDelegate().getOperationalEvaluationEnv();
}
protected InternalEvaluator getInternalEvalDelegate() {
return (InternalEvaluator) getQVTDelegate();
}
public ModuleInstance callTransformationImplicitConstructor(OperationalTransformation transformation, List<ModelInstance> args) {
return getInternalEvalDelegate().callTransformationImplicitConstructor(transformation, args);
}
public OperationCallResult runMainEntry(OperationalTransformation transformation, List<Object> args) {
return getInternalEvalDelegate().runMainEntry(transformation, args);
}
public Object execute(OperationalTransformation transformation) throws QvtRuntimeException {
return getInternalEvalDelegate().execute(transformation);
}
}