1 /******************************************************************************* 2 * Copyright (c) 2000, 2005 IBM Corporation and others. 3 * All rights reserved. This program and the accompanying materials 4 * are made available under the terms of the Eclipse Public License v1.0 5 * which accompanies this distribution, and is available at 6 * http://www.eclipse.org/legal/epl-v10.html 7 * 8 * Contributors: 9 * IBM Corporation - initial API and implementation 10 *******************************************************************************/ 11 package org.eclipse.debug.core.model; 12 13 /** 14 * A delegate which computes the value of a watch expression 15 * when provided a context. Watch delegates are provided on a 16 * per debug model basis. Watch expressions query the appropriate 17 * delegate based on the debug model of the context element. 18 * Plug-ins that wish to contribute watch expression delegates may do so using the 19 * <code>org.eclipse.debug.core.watchExpressionDelegates</code> 20 * extension point. 21 * <p> 22 * For example, the following is the definition of a watch expression 23 * delegate for the com.example.foo plug-in: 24 * <pre> 25 * <extension point="org.eclipse.debug.core.watchExpressionDelegates"> 26 * <watchExpressionDelegate 27 * debugModel="org.eclipse.jdt.debug" 28 * delegateClass="org.eclipse.jdt.internal.debug.ui.JavaWatchExpressionDelegate"/> 29 * </extension> 30 * </pre> 31 * <p> 32 * Clients are intended to implement this interface. 33 * </p> 34 * @see org.eclipse.debug.core.model.IWatchExpression 35 * @see org.eclipse.debug.core.model.IWatchExpressionListener 36 * 37 * @since 3.0 38 */ 39 public interface IWatchExpressionDelegate { 40 41 /** 42 * Evaluates the given expression in the given context asynchronously and 43 * notifies the given listener when the evaluation finishes. 44 * 45 * @param expression the expression to evaluate 46 * @param context the context for the evaluation 47 * @param listener the listener to notify when the evaluation completes 48 */ 49 public void evaluateExpression(String expression, IDebugElement context, IWatchExpressionListener listener); 50 51 } 52