lvcs-impl
[idea/community.git] / lang-api / src / com / intellij / facet / ProjectFacetManager.java
1 package com.intellij.facet;
2
3 import com.intellij.openapi.components.ServiceManager;
4 import com.intellij.openapi.module.Module;
5 import com.intellij.openapi.project.Project;
6 import org.jetbrains.annotations.NotNull;
7
8 import java.util.List;
9
10 /**
11  * @author nik
12  */
13 public abstract class ProjectFacetManager {
14
15   public static ProjectFacetManager getInstance(@NotNull Project project) {
16     return ServiceManager.getService(project, ProjectFacetManager.class);
17   }
18
19   public abstract <F extends Facet> List<F> getFacets(@NotNull FacetTypeId<F> typeId, final Module[] modules);
20
21   public abstract <F extends Facet> List<F> getFacets(@NotNull FacetTypeId<F> typeId);
22
23   public abstract <C extends FacetConfiguration> C createDefaultConfiguration(@NotNull FacetType<?, C> facetType);
24
25   public abstract <C extends FacetConfiguration> void setDefaultConfiguration(@NotNull FacetType<?, C> facetType, @NotNull C configuration);
26 }