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