blob: 67da0db566ab0ff4362f6b91e78fbb88f7e5a7b7 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2004-2008 Peter Pasztor, Akos Horvath, Gergely Varro, Istvan Rath and Daniel Varro
* 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:
* Peter Pasztor, Akos Horvath, Gergely Varro, Istvan Rath - initial API and implementation
*******************************************************************************/
package org.eclipse.viatra2.gtasm.interpreter.executionEnvironment;
import java.util.HashMap;
import java.util.Map;
import java.util.Vector;
import org.eclipse.emf.common.util.EList;
import org.eclipse.viatra2.framework.IFramework;
import org.eclipse.viatra2.gtasm.interpreter.exception.ViatraTransformationException;
import org.eclipse.viatra2.gtasmmodel.gtasm.metamodel.asm.definitions.ASMFunction;
import org.eclipse.viatra2.gtasmmodel.gtasm.metamodel.asm.definitions.Variable;
import org.eclipse.viatra2.gtasmmodel.gtasm.metamodel.asm.terms.Term;
public interface IExecutionEnvironment {
public IFramework getFramework();
// public void onBegin(Map<Variable, Object> variables);
// public Map<Variable, Object> onTerminate();
public Object getValueOfASMFunction(ASMFunction asmFunction, EList<Object> location);
public void updateASMFunction(ASMFunction asmFunction, EList<Object> location,
Object value) throws ViatraTransformationException;
public void addVariable(Variable key, Object value)
throws ViatraTransformationException;
public Object getVariableValue(Variable variable)
throws ViatraTransformationException;
public void setVariableValue(Variable variable, Object value)
throws ViatraTransformationException;
/**
* @return the variableValues
*/
public Map<Variable, Object> getVariableValues();
public void fetchVariableVariations(
HashMap<Variable, Vector<Object>> possibleVariableValues,
Term termToBeEvaluated);
}