FUS-450 add project as parameter to FileTypeUsageSchemaDescriptor
[idea/community.git] / plugins / gradle / java / src / config / GradleScriptTypeDetector.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 org.jetbrains.plugins.gradle.config;
3
4 import com.intellij.internal.statistic.collectors.fus.fileTypes.FileTypeUsageSchemaDescriptor;
5 import com.intellij.openapi.fileTypes.FileTypeRegistry;
6 import com.intellij.openapi.project.Project;
7 import com.intellij.openapi.vfs.VirtualFile;
8 import org.jetbrains.annotations.NotNull;
9 import org.jetbrains.plugins.gradle.util.GradleConstants;
10 import org.jetbrains.plugins.groovy.GroovyFileType;
11 import org.jetbrains.plugins.groovy.extensions.GroovyScriptTypeDetector;
12 import org.jetbrains.plugins.groovy.lang.psi.GroovyFile;
13
14 /**
15  * @author sergey.evdokimov
16  */
17 public class GradleScriptTypeDetector extends GroovyScriptTypeDetector implements FileTypeUsageSchemaDescriptor {
18
19   public GradleScriptTypeDetector() {
20     super(GradleScriptType.INSTANCE);
21   }
22
23   @Override
24   public boolean isSpecificScriptFile(@NotNull GroovyFile script) {
25     return GradleConstants.EXTENSION.equals(script.getViewProvider().getVirtualFile().getExtension());
26   }
27
28   @Override
29   public boolean describes(@NotNull Project project, @NotNull VirtualFile file) {
30     String name = file.getName();
31     return FileTypeRegistry.getInstance().isFileOfType(file, GroovyFileType.GROOVY_FILE_TYPE) &&
32            (name.equals(GradleConstants.DEFAULT_SCRIPT_NAME) || name.equals(GradleConstants.SETTINGS_FILE_NAME));
33   }
34 }