shared-indexes tests: allow to ignore files from checks on double indexing.
[idea/community.git] / platform / lang-api / src / com / intellij / facet / FacetModificationTrackingService.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
3 package com.intellij.facet;
4
5 import com.intellij.openapi.Disposable;
6 import com.intellij.openapi.module.Module;
7 import com.intellij.openapi.util.ModificationTracker;
8 import com.intellij.openapi.util.ModificationTrackerListener;
9 import org.jetbrains.annotations.ApiStatus;
10 import org.jetbrains.annotations.NotNull;
11
12 @ApiStatus.NonExtendable
13 public abstract class FacetModificationTrackingService {
14
15   public static FacetModificationTrackingService getInstance(@NotNull Module module) {
16     return module.getService(FacetModificationTrackingService.class);
17   }
18
19   public static FacetModificationTrackingService getInstance(@NotNull Facet<?> facet) {
20     return facet.getModule().getService(FacetModificationTrackingService.class);
21   }
22
23   @NotNull
24   public abstract ModificationTracker getFacetModificationTracker(@NotNull Facet<?> facet);
25
26   public abstract void incFacetModificationTracker(@NotNull Facet<?> facet);
27
28   public abstract <T extends Facet<?>> void addModificationTrackerListener(final T facet, final ModificationTrackerListener<? super T> listener, final Disposable parent);
29
30   public abstract void removeModificationTrackerListener(final Facet<?> facet, final ModificationTrackerListener<?> listener);
31 }