notnull
[idea/community.git] / platform / lang-impl / src / com / intellij / openapi / projectRoots / ex / ProjectRootContainer.java
1 /*
2  * Copyright 2000-2009 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
17 /*
18  * Created by IntelliJ IDEA.
19  * User: mike
20  * Date: Jul 16, 2002
21  * Time: 7:14:37 PM
22  * To change template for new interface use 
23  * Code Style | Class Templates options (Tools | IDE Options).
24  */
25 package com.intellij.openapi.projectRoots.ex;
26
27 import com.intellij.openapi.roots.OrderRootType;
28 import com.intellij.openapi.vfs.VirtualFile;
29 import org.jetbrains.annotations.NotNull;
30
31 public interface ProjectRootContainer {
32   @NotNull
33   VirtualFile[] getRootFiles(@NotNull OrderRootType type);
34   @NotNull ProjectRoot[] getRoots(@NotNull OrderRootType type);
35
36   void startChange();
37   void finishChange();
38
39   @NotNull 
40   ProjectRoot addRoot(@NotNull VirtualFile virtualFile, @NotNull OrderRootType type);
41   void addRoot(@NotNull ProjectRoot root, @NotNull OrderRootType type);
42   void removeRoot(@NotNull ProjectRoot root, @NotNull OrderRootType type);
43   void removeAllRoots(@NotNull OrderRootType type);
44
45   void removeAllRoots();
46
47   void removeRoot(@NotNull VirtualFile root, @NotNull OrderRootType type);
48
49   void update();
50 }