/*******************************************************************************
 * 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.jdt.debug.core;


import org.eclipse.debug.core.DebugException;

/**
 * Notification of hot code replace failure and success. As resources are
 * modified in the workspace, targets that support hot code replace are
 * udpated with new class files.
 * <p>
 * Clients may implement this interface
 * </p>
 * @since 2.0
 */
public interface IJavaHotCodeReplaceListener {

	/**
	 * Notification that a hot code replace attempt failed in the given target.
	 * 
	 * @param target the target in which the hot code replace failed
	 * @param exception the exception generated by the hot code replace
	 *  failure, or <code>null</code> if the hot code replace failed because
	 *  the target VM does not support hot code replace
	 */
	public void hotCodeReplaceFailed(IJavaDebugTarget target, DebugException exception);
	
	/**
	 * Notification that a hot code replace attempt succeeded in the
	 * given target.
	 * 
	 * @param target the target in which the hot code replace succeeded
	 */
	public void hotCodeReplaceSucceeded(IJavaDebugTarget target);	
	
	/**
	 * Notification that obsolete methods remain on the stack
	 * in one or more threads in the given target after a hot code
	 * replace.
	 * 
	 * @param target the target in which obsolete methods remain after
	 *  a hot code replace
	 */
	public void obsoleteMethods(IJavaDebugTarget target);

}

