dd3a1b5788389f8e0d6768ef7018ca35a2516082
[idea/community.git] / java / java-impl / src / com / intellij / openapi / roots / impl / ProjectModelModificationServiceImpl.java
1 /*
2  * Copyright 2000-2015 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.roots.impl;
17
18 import com.intellij.codeInsight.daemon.quickFix.ExternalLibraryDescriptor;
19 import com.intellij.openapi.module.Module;
20 import com.intellij.openapi.roots.DependencyScope;
21 import com.intellij.openapi.roots.ProjectModelModificationService;
22 import com.intellij.openapi.roots.ProjectModelModifier;
23 import org.jetbrains.annotations.NotNull;
24
25 /**
26  * @author nik
27  */
28 public class ProjectModelModificationServiceImpl extends ProjectModelModificationService {
29   @Override
30   public void addDependency(@NotNull Module from, @NotNull Module to, @NotNull DependencyScope scope) {
31     for (ProjectModelModifier modifier : getModelModifiers()) {
32       if (modifier.addModuleDependency(from, to, scope)) {
33         return;
34       }
35     }
36   }
37
38   @Override
39   public void addDependency(@NotNull Module from, @NotNull ExternalLibraryDescriptor libraryDescriptor, @NotNull DependencyScope scope) {
40     for (ProjectModelModifier modifier : getModelModifiers()) {
41       if (modifier.addExternalLibraryDependency(from, libraryDescriptor, scope)) {
42         return;
43       }
44     }
45   }
46
47   @NotNull
48   private static ProjectModelModifier[] getModelModifiers() {
49     return ProjectModelModifier.EP_NAME.getExtensions();
50   }
51 }