/*******************************************************************************
* Copyright (c) 2011, 2012 Wind River Systems, Inc. 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:
* Wind River Systems - initial API and implementation
*******************************************************************************/
package org.eclipse.tcf.debug.ui;
import org.eclipse.tcf.util.TCFDataCache;
/**
* TCF clients can implement ITCFPrettyExpressionProvider to provide human
* readable "pretty expression" strings that represent values of the TCF debug model objects
* to be shown in the debugger views.
*
* TCF will use internal pretty expression if no suitable provider is found
* through "pretty_expression_provider" extension point.
*/
public interface ITCFPrettyExpressionProvider {
/**
* Get cache item that contains human readable "pretty expression" string
* that represents value of the object.
* @param object - TCF debug model object
* @return cache item or null if "pretty expression" not available for the object
*/
TCFDataCache<String> getText(ITCFObject object);
/**
* Get cache item that contains expressions of "pretty expression" children.
* The debugger will evaluate those expressions using Expressions service.
* Results of the evaluation will be shown as children of the object.
* @param object - TCF debug model object
* @return cache item or null if children not available for the object
*/
TCFDataCache<String[]> getChildren(ITCFObject object);
/**
* Cancel pending "pretty expression" evaluations and invalidate caches
* associated with a model object.
* @param object - TCF debug model object
*/
void cancel(ITCFObject object);
/**
* Dispose "pretty expression" caches associated with a model object.
* @param object - TCF debug model object
*/
void dispose(ITCFObject object);
}