blob: a8ff108ac72b105f658b8a7cbe51c8bacfa22318 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2012, 2013 The University of York, Willink Transformations 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:
* Horacio Hoyos - initial API and implementation
******************************************************************************/
package org.eclipse.qvtd.pivot.qvtimperative.evaluation;
import org.eclipse.emf.common.util.Monitor;
import org.eclipse.jdt.annotation.NonNull;
import org.eclipse.jdt.annotation.Nullable;
import org.eclipse.ocl.examples.domain.elements.DomainExpression;
import org.eclipse.ocl.examples.domain.elements.DomainStandardLibrary;
import org.eclipse.ocl.examples.domain.elements.DomainType;
import org.eclipse.ocl.examples.domain.evaluation.DomainLogger;
import org.eclipse.ocl.examples.domain.types.IdResolver;
import org.eclipse.ocl.examples.domain.values.impl.InvalidValueException;
import org.eclipse.ocl.examples.domain.values.util.ValuesUtil;
import org.eclipse.ocl.examples.pivot.ExpressionInOCL;
import org.eclipse.ocl.examples.pivot.evaluation.AbstractEvaluationVisitorDecorator;
import org.eclipse.ocl.examples.pivot.evaluation.EvaluationVisitor;
import org.eclipse.ocl.examples.pivot.manager.MetaModelManager;
import org.eclipse.ocl.examples.pivot.util.Visitable;
import org.eclipse.qvtd.pivot.qvtbase.BaseModel;
import org.eclipse.qvtd.pivot.qvtbase.Domain;
import org.eclipse.qvtd.pivot.qvtbase.Function;
import org.eclipse.qvtd.pivot.qvtbase.FunctionParameter;
import org.eclipse.qvtd.pivot.qvtbase.Pattern;
import org.eclipse.qvtd.pivot.qvtbase.Predicate;
import org.eclipse.qvtd.pivot.qvtbase.Rule;
import org.eclipse.qvtd.pivot.qvtbase.Transformation;
import org.eclipse.qvtd.pivot.qvtbase.TypedModel;
import org.eclipse.qvtd.pivot.qvtbase.Unit;
import org.eclipse.qvtd.pivot.qvtcorebase.Assignment;
import org.eclipse.qvtd.pivot.qvtcorebase.BottomPattern;
import org.eclipse.qvtd.pivot.qvtcorebase.CoreDomain;
import org.eclipse.qvtd.pivot.qvtcorebase.CorePattern;
import org.eclipse.qvtd.pivot.qvtcorebase.EnforcementOperation;
import org.eclipse.qvtd.pivot.qvtcorebase.GuardPattern;
import org.eclipse.qvtd.pivot.qvtcorebase.PropertyAssignment;
import org.eclipse.qvtd.pivot.qvtcorebase.RealizedVariable;
import org.eclipse.qvtd.pivot.qvtcorebase.VariableAssignment;
import org.eclipse.qvtd.pivot.qvtimperative.ImperativeModel;
import org.eclipse.qvtd.pivot.qvtimperative.Mapping;
import org.eclipse.qvtd.pivot.qvtimperative.MappingCall;
import org.eclipse.qvtd.pivot.qvtimperative.MappingCallBinding;
/**
* QVTcoreEvaluationVisitorImpl is the class for ...
*/
public abstract class QVTiEvaluationVisitorDecorator extends AbstractEvaluationVisitorDecorator<QVTiEvaluationVisitor>
implements QVTiEvaluationVisitor {
public QVTiEvaluationVisitorDecorator(@NonNull QVTiEvaluationVisitor decorated) {
super(decorated);
}
/**
* Delegates to my decorated visitor.
*/
@Override
public @NonNull QVTiEvaluationVisitor createNestedEvaluator() {
return delegate.createNestedEvaluator();
}
public void dispose() {}
/**
* Delegates to my decorated visitor.
*/
public @Nullable Object evaluate(@NonNull DomainExpression body) {
return delegate.evaluate(body);
}
/**
* Delegates to my decorated visitor.
*/
public @Nullable Object evaluate(@NonNull ExpressionInOCL expressionInOCL) {
return delegate.evaluate(expressionInOCL);
}
/**
* Delegates to my decorated visitor.
*/
public @NonNull EvaluationVisitor getEvaluator() {
return delegate.getEvaluator();
}
/**
* Delegates to my decorated visitor.
*/
public @NonNull IdResolver getIdResolver() {
return delegate.getIdResolver();
}
/**
* Delegates to my decorated visitor.
*/
public @Nullable DomainLogger getLogger() {
return delegate.getLogger();
}
/**
* Delegates to my decorated visitor.
*/
public @NonNull MetaModelManager getMetaModelManager() {
return delegate.getMetaModelManager();
}
/**
* Delegates to my decorated visitor.
*/
public @Nullable Monitor getMonitor() {
return delegate.getMonitor();
}
/**
* Delegates to my decorated visitor.
*/
public @NonNull DomainStandardLibrary getStandardLibrary() {
return delegate.getStandardLibrary();
}
/**
* Delegates to my decorated visitor.
*/
public @NonNull DomainType getStaticTypeOf(@Nullable Object value) {
return delegate.getStaticTypeOf(value);
}
/**
* Delegates to my decorated visitor.
*/
public @NonNull DomainType getStaticTypeOf(@Nullable Object value,
@NonNull Object... values) {
return delegate.getStaticTypeOf(value, values);
}
/**
* Delegates to my decorated visitor.
*/
public @NonNull DomainType getStaticTypeOf(@Nullable Object value,
@NonNull Iterable<?> values) {
return delegate.getStaticTypeOf(value, values);
}
/**
* Delegates to my decorated visitor.
*/
public boolean isCanceled() {
return delegate.isCanceled();
}
/**
* Delegates to my decorated visitor.
*/
public void setCanceled(boolean isCanceled) {
delegate.setCanceled(isCanceled);
}
/**
* Delegates to my decorated visitor.
*/
public void setLogger(@Nullable DomainLogger logger) {
delegate.setLogger(logger);
}
/**
* Delegates to my decorated visitor.
*/
public void setMonitor(@Nullable Monitor monitor) {
delegate.setMonitor(monitor);
}
@Override
public Object safeVisit(@Nullable Visitable v) {
if (v == null) {
throw new InvalidValueException("null expression");
}
try {
Object result = v.accept(delegate);
assert ValuesUtil.isBoxed(result); // Make sure Integer/Real are boxed, invalid is an exception, null is null
return result;
} catch (InvalidValueException e) {
throw e;
} catch (Exception e) {
throw new InvalidValueException(e, "Evaluation Failure");
}
}
/**
* Delegates to my decorated visitor.
*/
public @Nullable Object visitAssignment(@NonNull Assignment assignment) {
return delegate.visitAssignment(assignment);
}
/**
* Delegates to my decorated visitor.
*/
public @Nullable Object visitBaseModel(@NonNull BaseModel baseModel) {
return delegate.visitBaseModel(baseModel);
}
/**
* Delegates to my decorated visitor.
*/
public @Nullable Object visitBottomPattern(@NonNull BottomPattern bottomPattern) {
return delegate.visitBottomPattern(bottomPattern);
}
/**
* Delegates to my decorated visitor.
*/
public @Nullable Object visitCoreDomain(@NonNull CoreDomain coreDomain) {
return delegate.visitCoreDomain(coreDomain);
}
/**
* Delegates to my decorated visitor.
*/
public @Nullable Object visitDomain(@NonNull Domain domain) {
return delegate.visitDomain(domain);
}
/**
* Delegates to my decorated visitor.
*/
public @Nullable Object visitCorePattern(@NonNull CorePattern corePattern) {
return delegate.visitCorePattern(corePattern);
}
/**
* Delegates to my decorated visitor.
*/
public @Nullable Object visitEnforcementOperation(@NonNull EnforcementOperation enforcementOperation) {
return delegate.visitEnforcementOperation(enforcementOperation);
}
/**
* Delegates to my decorated visitor.
*/
public @Nullable Object visitFunction(@NonNull Function function) {
return delegate.visitFunction(function);
}
/**
* Delegates to my decorated visitor.
*/
public @Nullable Object visitFunctionParameter(@NonNull FunctionParameter functionParameter) {
return delegate.visitFunctionParameter(functionParameter);
}
/**
* Delegates to my decorated visitor.
*/
public @Nullable Object visitGuardPattern(@NonNull GuardPattern guardPattern) {
return delegate.visitGuardPattern(guardPattern);
}
/**
* Delegates to my decorated visitor.
*/
public @Nullable Object visitPattern(@NonNull Pattern pattern) {
return delegate.visitPattern(pattern);
}
/**
* Delegates to my decorated visitor.
*/
public @Nullable Object visitPredicate(@NonNull Predicate predicate) {
return delegate.visitPredicate(predicate);
}
/**
* Delegates to my decorated visitor.
*/
public @Nullable Object visitPropertyAssignment(@NonNull PropertyAssignment propertyAssignment) {
return delegate.visitPropertyAssignment(propertyAssignment);
}
/**
* Delegates to my decorated visitor.
*/
public @Nullable Object visitRealizedVariable(@NonNull RealizedVariable realizedVariable) {
return delegate.visitRealizedVariable(realizedVariable);
}
/**
* Delegates to my decorated visitor.
*/
public @Nullable Object visitRule(@NonNull Rule rule) {
return delegate.visitRule(rule);
}
/**
* Delegates to my decorated visitor.
*/
public @Nullable Object visitTransformation(@NonNull Transformation transformation) {
return delegate.visitTransformation(transformation);
}
/**
* Delegates to my decorated visitor.
*/
public @Nullable Object visitTypedModel(@NonNull TypedModel typedModel) {
return delegate.visitTypedModel(typedModel);
}
/**
* Delegates to my decorated visitor.
*/
public @Nullable Object visitUnit(@NonNull Unit unit) {
return delegate.visitUnit(unit);
}
/**
* Delegates to my decorated visitor.
*/
public @Nullable Object visitVariableAssignment(@NonNull VariableAssignment variableAssignment) {
return delegate.visitVariableAssignment(variableAssignment);
}
/**
* Delegates to my decorated visitor.
*/
public @Nullable Object visitImperativeModel(@NonNull ImperativeModel imperativeModel) {
return delegate.visitImperativeModel(imperativeModel);
}
/**
* Delegates to my decorated visitor.
*/
public @Nullable Object visitMapping(@NonNull Mapping mapping) {
return delegate.visitMapping(mapping);
}
/**
* Delegates to my decorated visitor.
*/
public @Nullable Object visitMappingCall(@NonNull MappingCall mappingCall) {
return delegate.visitMappingCall(mappingCall);
}
/**
* Delegates to my decorated visitor.
*/
public @Nullable Object visitMappingCallBinding(@NonNull MappingCallBinding mappingCallBinding) {
return delegate.visitMappingCallBinding(mappingCallBinding);
}
/**
* Delegates to my decorated visitor.
*/
@Override
public @Nullable Object visiting(@NonNull Visitable visitable) {
return delegate.visiting(visitable);
}
}