shared-indexes tests: allow to ignore files from checks on double indexing.
[idea/community.git] / platform / lang-api / src / com / intellij / facet / ProjectFacetManager.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.facet;
3
4 import com.intellij.openapi.module.Module;
5 import com.intellij.openapi.project.Project;
6 import org.jetbrains.annotations.ApiStatus;
7 import org.jetbrains.annotations.NotNull;
8
9 import java.util.List;
10
11 @ApiStatus.NonExtendable
12 public abstract class ProjectFacetManager {
13   public static ProjectFacetManager getInstance(@NotNull Project project) {
14     return project.getService(ProjectFacetManager.class);
15   }
16
17   public abstract boolean hasFacets(@NotNull FacetTypeId<?> typeId);
18
19   public abstract <F extends Facet<?>> List<F> getFacets(@NotNull FacetTypeId<F> typeId, final Module[] modules);
20
21   @NotNull
22   public abstract <F extends Facet<?>> List<F> getFacets(@NotNull FacetTypeId<F> typeId);
23
24   @NotNull
25   public abstract List<Module> getModulesWithFacet(@NotNull FacetTypeId<?> typeId);
26
27   public abstract <C extends FacetConfiguration> C createDefaultConfiguration(@NotNull FacetType<?, C> facetType);
28
29   public abstract <C extends FacetConfiguration> void setDefaultConfiguration(@NotNull FacetType<?, C> facetType, @NotNull C configuration);
30 }