cleanup
[idea/community.git] / platform / lang-api / src / com / intellij / facet / ProjectWideFacetListenersRegistry.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.Disposable;
5 import com.intellij.openapi.project.Project;
6 import org.jetbrains.annotations.ApiStatus;
7 import org.jetbrains.annotations.NotNull;
8
9 @ApiStatus.NonExtendable
10 public abstract class ProjectWideFacetListenersRegistry {
11   public static ProjectWideFacetListenersRegistry getInstance(@NotNull Project project) {
12     return project.getService(ProjectWideFacetListenersRegistry.class);
13   }
14
15   public abstract <F extends Facet<?>> void registerListener(@NotNull FacetTypeId<F> typeId, @NotNull ProjectWideFacetListener<? extends F> listener);
16   public abstract <F extends Facet<?>> void registerListener(@NotNull FacetTypeId<F> typeId, @NotNull ProjectWideFacetListener<? extends F> listener,
17                                                           @NotNull Disposable parentDisposable);
18   public abstract <F extends Facet<?>> void unregisterListener(@NotNull FacetTypeId<F> typeId, @NotNull ProjectWideFacetListener<? extends F> listener);
19
20   public abstract void registerListener(@NotNull ProjectWideFacetListener<Facet> listener);
21   public abstract void unregisterListener(@NotNull ProjectWideFacetListener<Facet> listener);
22   public abstract void registerListener(@NotNull ProjectWideFacetListener<Facet> listener, @NotNull Disposable parentDisposable);
23 }