blob: 1c3868d7deae6e82aa3ad5699b3fe5662d6aa048 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2014, 2016 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:
* E.D.Willink - Initial API and implementation
*******************************************************************************/
package org.eclipse.qvtd.debug.stepper;
import org.eclipse.jdt.annotation.NonNull;
import org.eclipse.jdt.annotation.Nullable;
import org.eclipse.ocl.examples.debug.stepper.NonStepper;
import org.eclipse.ocl.examples.debug.vm.evaluator.IStepper;
import org.eclipse.qvtd.pivot.qvtbase.Domain;
import org.eclipse.qvtd.pivot.qvtbase.Predicate;
import org.eclipse.qvtd.pivot.qvtbase.Transformation;
import org.eclipse.qvtd.pivot.qvtimperative.AddStatement;
import org.eclipse.qvtd.pivot.qvtimperative.AppendParameter;
import org.eclipse.qvtd.pivot.qvtimperative.AppendParameterBinding;
import org.eclipse.qvtd.pivot.qvtimperative.BufferStatement;
import org.eclipse.qvtd.pivot.qvtimperative.CheckStatement;
import org.eclipse.qvtd.pivot.qvtimperative.ConnectionVariable;
import org.eclipse.qvtd.pivot.qvtimperative.DeclareStatement;
import org.eclipse.qvtd.pivot.qvtimperative.GuardParameter;
import org.eclipse.qvtd.pivot.qvtimperative.GuardParameterBinding;
import org.eclipse.qvtd.pivot.qvtimperative.ImperativeTransformation;
import org.eclipse.qvtd.pivot.qvtimperative.ImperativeTypedModel;
import org.eclipse.qvtd.pivot.qvtimperative.LoopParameterBinding;
import org.eclipse.qvtd.pivot.qvtimperative.LoopVariable;
import org.eclipse.qvtd.pivot.qvtimperative.Mapping;
import org.eclipse.qvtd.pivot.qvtimperative.MappingCall;
import org.eclipse.qvtd.pivot.qvtimperative.MappingLoop;
import org.eclipse.qvtd.pivot.qvtimperative.MappingParameter;
import org.eclipse.qvtd.pivot.qvtimperative.MappingParameterBinding;
import org.eclipse.qvtd.pivot.qvtimperative.MappingStatement;
import org.eclipse.qvtd.pivot.qvtimperative.NewStatement;
import org.eclipse.qvtd.pivot.qvtimperative.ObservableStatement;
import org.eclipse.qvtd.pivot.qvtimperative.SetStatement;
import org.eclipse.qvtd.pivot.qvtimperative.SimpleParameter;
import org.eclipse.qvtd.pivot.qvtimperative.SimpleParameterBinding;
import org.eclipse.qvtd.pivot.qvtimperative.Statement;
public class QVTiStepperVisitor extends AbstractQVTimperativeStepperVisitor
{
public static @NonNull QVTiStepperVisitor INSTANCE = new QVTiStepperVisitor(QVTiStepperVisitor.class);
protected QVTiStepperVisitor(@NonNull Object context) {
super(context);
}
@Override
public @Nullable IStepper visitAddStatement(@NonNull AddStatement object) {
return PreStepper.INSTANCE;
}
@Override
public @Nullable IStepper visitAppendParameter(@NonNull AppendParameter object) {
return NonStepper.INSTANCE;
}
@Override
public IStepper visitAppendParameterBinding(@NonNull AppendParameterBinding object) {
return PreStepper.INSTANCE;
}
@Override
public @Nullable IStepper visitBufferStatement(@NonNull BufferStatement object) {
return PreStepper.INSTANCE;
}
@Override
public @Nullable IStepper visitCheckStatement(@NonNull CheckStatement object) {
return PreStepper.INSTANCE;
}
@Override
public @Nullable IStepper visitConnectionVariable(@NonNull ConnectionVariable object) {
return visiting(object);
}
@Override
public @Nullable IStepper visitDeclareStatement(@NonNull DeclareStatement asVariable) {
return PreStepper.INSTANCE;
}
@Override
public @Nullable IStepper visitDomain(@NonNull Domain object) {
return visiting(object);
}
@Override
public @Nullable IStepper visitGuardParameter(@NonNull GuardParameter asVariable) {
return NonStepper.INSTANCE;
}
@Override
public IStepper visitGuardParameterBinding(@NonNull GuardParameterBinding object) {
return PreStepper.INSTANCE;
}
@Override
public @Nullable IStepper visitImperativeTransformation(@NonNull ImperativeTransformation object) {
return PrePostStepper.INSTANCE;
}
@Override
public @Nullable IStepper visitImperativeTypedModel(@NonNull ImperativeTypedModel object) {
return NonStepper.INSTANCE;
}
@Override
public IStepper visitLoopParameterBinding(@NonNull LoopParameterBinding object) {
return PreStepper.INSTANCE;
}
@Override
public @Nullable IStepper visitLoopVariable(@NonNull LoopVariable asVariable) {
return NonStepper.INSTANCE;
}
@Override
public @Nullable IStepper visitMapping(@NonNull Mapping object) {
return PreStepper.INSTANCE;
}
@Override
public @Nullable IStepper visitMappingCall(@NonNull MappingCall object) {
return PreStepper.INSTANCE;
}
@Override
public @Nullable IStepper visitMappingLoop(@NonNull MappingLoop object) {
return PreStepper.INSTANCE;
}
@Override
public @Nullable IStepper visitMappingParameter(@NonNull MappingParameter object) {
return visiting(object);
}
@Override
public @Nullable IStepper visitMappingParameterBinding(@NonNull MappingParameterBinding object) {
return visiting(object);
}
@Override
public @Nullable IStepper visitMappingStatement(@NonNull MappingStatement object) {
return visiting(object);
}
@Override
public @Nullable IStepper visitNewStatement(@NonNull NewStatement object) {
return PreStepper.INSTANCE;
}
@Override
public @Nullable IStepper visitObservableStatement(@NonNull ObservableStatement object) {
return visiting(object);
}
@Override
public @Nullable IStepper visitPredicate(@NonNull Predicate object) {
return NonStepper.INSTANCE;
}
@Override
public @Nullable IStepper visitSetStatement(@NonNull SetStatement object) {
return PreStepper.INSTANCE;
}
@Override
public @Nullable IStepper visitSimpleParameter(@NonNull SimpleParameter asVariable) {
return NonStepper.INSTANCE;
}
@Override
public IStepper visitSimpleParameterBinding(@NonNull SimpleParameterBinding object) {
return PreStepper.INSTANCE;
}
@Override
public @Nullable IStepper visitStatement(@NonNull Statement object) {
return visiting(object);
}
@Override
public @Nullable IStepper visitTransformation(@NonNull Transformation object) {
return visiting(object);
}
}