/*******************************************************************************
* Copyright (c) 2004, 2009 IBM Corporation 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:
* IBM - Initial API and implementation
*******************************************************************************/
package org.eclipse.core.resources.refresh;
import org.eclipse.core.resources.IResource;
/**
* An <code>IRefreshResult</code> is provided to an auto-refresh
* monitor. The result is used to submit resources to be refreshed, and
* for reporting failure of the monitor.
*
* @since 3.0
* @noimplement This interface is not intended to be implemented by clients.
* @noextend This interface is not intended to be extended by clients.
*/
public interface IRefreshResult {
/**
* Notifies that the given monitor has encountered a failure from which it
* cannot recover while monitoring the given resource.
* <p>
* If the given resource is <code>null</code> it indicates that the
* monitor has failed completely, and the refresh manager will have to
* take over the monitoring responsibilities for all resources that the
* monitor was monitoring.
*
* @param monitor a monitor which has encountered a failure that it
* cannot recover from
* @param resource the resource that the monitor can no longer
* monitor, or <code>null</code> to indicate that the monitor can no
* longer monitor any of the resources it was monitoring
*/
public void monitorFailed(IRefreshMonitor monitor, IResource resource);
/**
* Requests that the provided resource be refreshed. The refresh will
* occur in the background during the next scheduled refresh.
*
* @param resource the resource to refresh
*/
public void refresh(IResource resource);
}