002070e0243e544be5fbf5bf333e2e5bb571737b
[idea/community.git] / platform / core-api / src / com / intellij / openapi / vfs / VirtualFileListener.java
1 /*
2  * Copyright 2000-2014 JetBrains s.r.o.
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 package com.intellij.openapi.vfs;
17
18 import org.jetbrains.annotations.NotNull;
19
20 import java.util.EventListener;
21
22 /**
23  * Receives notifications about changes in the virtual file system.
24  *
25  * @see com.intellij.openapi.vfs.VirtualFileManager#addVirtualFileListener(VirtualFileListener)
26  * @see com.intellij.openapi.vfs.VirtualFileAdapter
27  */
28 public interface VirtualFileListener extends EventListener {
29   /**
30    * Fired when a virtual file is renamed from within IDEA, or its writable status is changed.
31    * For files renamed externally, {@link #fileCreated} and {@link #fileDeleted} events will be fired.
32    *
33    * @param event the event object containing information about the change.
34    */
35   void propertyChanged(@NotNull VirtualFilePropertyEvent event);
36
37   /**
38    * Fired when the contents of a virtual file is changed.
39    *
40    * @param event the event object containing information about the change.
41    */
42   void contentsChanged(@NotNull VirtualFileEvent event);
43
44   /**
45    * Fired when a virtual file is created. This event is not fired for files discovered during initial VFS initialization.
46    *
47    * @param event the event object containing information about the change.
48    */
49   void fileCreated(@NotNull VirtualFileEvent event);
50
51   /**
52    * Fired when a virtual file is deleted.
53    *
54    * @param event the event object containing information about the change.
55    */
56   void fileDeleted(@NotNull VirtualFileEvent event);
57
58   /**
59    * Fired when a virtual file is moved from within IDEA.
60    *
61    * @param event the event object containing information about the change.
62    */
63   void fileMoved(@NotNull VirtualFileMoveEvent event);
64
65   /**
66    * Fired when a virtual file is copied from within IDEA.
67    *
68    * @param event the event object containing information about the change.
69    */
70   void fileCopied(@NotNull VirtualFileCopyEvent event);
71
72   /**
73    * Fired before the change of a name or writable status of a file is processed.
74    *
75    * @param event the event object containing information about the change.
76    */
77   void beforePropertyChange(@NotNull VirtualFilePropertyEvent event);
78
79   /**
80    * Fired before the change of contents of a file is processed.
81    *
82    * @param event the event object containing information about the change.
83    */
84   void beforeContentsChange(@NotNull VirtualFileEvent event);
85
86   /**
87    * Fired before the deletion of a file is processed.
88    *
89    * @param event the event object containing information about the change.
90    */
91   void beforeFileDeletion(@NotNull VirtualFileEvent event);
92
93   /**
94    * Fired before the movement of a file is processed.
95    *
96    * @param event the event object containing information about the change.
97    */
98   void beforeFileMovement(@NotNull VirtualFileMoveEvent event);
99 }