/******************************************************************************* * Copyright (c) 2005, 2007 committers of openArchitectureWare 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: * committers of openArchitectureWare - initial API and implementation *******************************************************************************/ package org.eclipse.xtend.expression; import java.util.List; import java.util.Map; import java.util.Set; import org.eclipse.emf.mwe.core.monitor.ProgressMonitor; import org.eclipse.internal.xtend.expression.ast.SyntaxElement; import org.eclipse.internal.xtend.xtend.ast.Around; import org.eclipse.internal.xtend.xtend.ast.Extension; import org.eclipse.xtend.typesystem.Type; /** * @author Sven Efftinge (http://www.efftinge.de) * @author Arno Haase */ public interface ExecutionContext extends TypeSystem { String IMPLICIT_VARIABLE = "this"; ExecutionContext cloneWithVariable(Variable v); ExecutionContext cloneWithoutVariables(); Variable getVariable(String name); Map<String, Variable> getVisibleVariables(); /** * accessible only through special extension methods */ Map<String, Variable> getGlobalVariables(); ExecutionContext cloneWithResource(Resource ns); ExecutionContext cloneWithoutResource(); ExecutionContext cloneWithoutMonitor(); Resource currentResource(); Extension getExtensionForTypes(String functionName, Type[] parameterTypes); Extension getExtension(String functionName, Object[] actualParameters); Set<? extends Extension> getAllExtensions(); List<Around> getExtensionAdvices(); void preTask(Object element); void postTask(Object element); /** * Retrieves the associated ResourceManager * @since 4.1.2 */ ResourceManager getResourceManager (); /** * Retrieves the associated ProgressMonitor * @since 4.1.2 */ ProgressMonitor getMonitor (); void handleRuntimeException (RuntimeException ex, SyntaxElement element, Map<String,Object> additionalContextInfo); Object handleNullEvaluation(SyntaxElement element); public VetoableCallback getCallback(); Type getReturnType(Extension extension, Type[] paramTypes, Set<AnalysationIssue> issues); }