/*******************************************************************************
* 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);
}