1 /*******************************************************************************
2  *  Copyright (c) 2000, 2017 IBM Corporation and others.
3  *
4  *  This program and the accompanying materials
5  *  are made available under the terms of the Eclipse Public License 2.0
6  *  which accompanies this distribution, and is available at
7  *  https://www.eclipse.org/legal/epl-2.0/
8  *
9  *  SPDX-License-Identifier: EPL-2.0
10  *
11  *  Contributors:
12  *     IBM Corporation - initial API and implementation
13  *     Lars Vogel <Lars.Vogel@vogella.com> - Bug 527657
14  *******************************************************************************/
15 package org.eclipse.core.resources;
16 
17 import java.util.EventListener;
18 
19 /**
20  * A resource change listener is notified of changes to resources
21  * in the workspace.
22  * These changes arise from direct manipulation of resources, or
23  * indirectly through re-synchronization with the local file system.
24  * <p>
25  * Clients may implement this interface.
26  * </p>
27  * @see IResourceDelta
28  * @see IWorkspace#addResourceChangeListener(IResourceChangeListener, int)
29  */
30 
31 @FunctionalInterface
32 public interface IResourceChangeListener extends EventListener {
33 	/**
34 	 * Notifies this listener that some resource changes
35 	 * are happening, or have already happened.
36 	 * <p>
37 	 * The supplied event gives details. This event object (and the
38 	 * resource delta within it) is valid only for the duration of
39 	 * the invocation of this method.
40 	 * </p>
41 	 * <p>
42 	 * Note: This method is called by the platform; it is not intended
43 	 * to be called directly by clients.
44 	 * <p>
45 	 * Note that during resource change event notification, further changes
46 	 * to resources may be disallowed.
47 	 * </p>
48 	 *
49 	 * @param event the resource change event
50 	 * @see IResourceDelta
51 	 */
resourceChanged(IResourceChangeEvent event)52 	void resourceChanged(IResourceChangeEvent event);
53 }
54