IDEA-214538: remove auto-disabling of input methods, remake via notification
[idea/community.git] / platform / core-api / src / com / intellij / openapi / roots / ContentIteratorEx.java
1 // Copyright 2000-2020 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
2 package com.intellij.openapi.roots;
3
4 import com.intellij.openapi.vfs.VirtualFile;
5 import org.jetbrains.annotations.ApiStatus;
6 import org.jetbrains.annotations.NotNull;
7
8 /**
9  * Interface which can be used to receive the contents of a project.
10  *
11  * @see FileIndex#iterateContent(ContentIterator)
12  */
13 @FunctionalInterface
14 @ApiStatus.Experimental
15 public interface ContentIteratorEx extends ContentIterator {
16   /**
17    * Processes the specified file or directory.
18    *
19    * @param fileOrDir the file or directory to process.
20    * @return <ul>
21    *         <li>{@code Status.CONTINUE} if files processing should be continued;</li>
22    *         <li>{@code Status.SKIP_CHILDREN} if descendant files of the specified file shouldn't be processed;</li>
23    *         <li>{@code Status.STOP} if files processing should be stopped.</li>
24    *         </ul>
25    */
26   @NotNull Status processFileEx(@NotNull VirtualFile fileOrDir);
27
28   @Override
29   default boolean processFile(@NotNull VirtualFile fileOrDir) {
30     throw new IllegalStateException("Call com.intellij.openapi.roots.ContentIteratorEx#processFileEx instead");
31   }
32
33   enum Status {
34     CONTINUE, SKIP_CHILDREN, STOP
35   }
36 }