/*******************************************************************************
 * Copyright (c) 2000, 2003 IBM Corporation and others.
 * All rights reserved. This program and the accompanying materials 
 * are made available under the terms of the Common Public License v1.0
 * which accompanies this distribution, and is available at
 * http://www.eclipse.org/legal/cpl-v10.html
 * 
 * Contributors:
 *     IBM Corporation - initial API and implementation
 *******************************************************************************/
package org.eclipse.debug.internal.core.stringsubstitution;

/**
 * A context to assist in variable resolution. If a contributed variable requires
 * context to assist in its resolution, the context may be registered and retrieved
 * from the variable manager.
 * <p>
 * A context may be contributed programmatically or via an extension.
 * </p>
 * 
 * @since 3.0
 */
public interface IStringVariableContext {

	/**
	 * Returns an application defined context.
	 *   
	 * @return context
	 */
	public Object getContext();
	
}
