FUS-450 add project as parameter to FileTypeUsageSchemaDescriptor
[idea/community.git] / platform / platform-impl / src / com / intellij / internal / statistic / collectors / fus / fileTypes / FileTypeUsageSchemaDescriptor.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.internal.statistic.collectors.fus.fileTypes;
3
4 import com.intellij.openapi.project.Project;
5 import com.intellij.openapi.vfs.VirtualFile;
6 import org.jetbrains.annotations.NotNull;
7
8 public interface FileTypeUsageSchemaDescriptor {
9   /**
10    * @deprecated use {@link FileTypeUsageSchemaDescriptor#describes(Project, VirtualFile)}
11    */
12   @Deprecated
13   default boolean describes(@NotNull VirtualFile file) {
14     return false;
15   }
16
17   /**
18    * Is used to categorise file types usage statistics.
19    * If a file has some generic file type (e.g. XML), this method allow specifying its 'schema' more precisely, e.g `Maven` or `Spring`.
20    *
21    * @return true if the given file has the schema name, given in the `schema` attribute of the `FileTypeUsageSchemaDescriptor` extension.
22    */
23   default boolean describes(@NotNull Project project, @NotNull VirtualFile file) {
24     return describes(file);
25   }
26 }