0c8504f839c8f98772c6683c837ccd6f58ceba80
[idea/community.git] / plugins / maven / src / main / java / org / jetbrains / idea / maven / plugins / groovy / MavenGroovyScriptTypeDetector.java
1 /*
2  * Copyright 2000-2016 JetBrains s.r.o.
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 package org.jetbrains.idea.maven.plugins.groovy;
17
18 import com.intellij.internal.statistic.collectors.fus.fileTypes.FileTypeUsageSchemaDescriptor;
19 import com.intellij.openapi.fileTypes.FileTypeRegistry;
20 import com.intellij.openapi.vfs.VirtualFile;
21 import org.jetbrains.annotations.NotNull;
22 import org.jetbrains.plugins.groovy.GroovyFileType;
23 import org.jetbrains.plugins.groovy.extensions.GroovyScriptTypeDetector;
24 import org.jetbrains.plugins.groovy.lang.psi.GroovyFile;
25
26 /**
27  * @author Vladislav.Soroka
28  */
29 public class MavenGroovyScriptTypeDetector extends GroovyScriptTypeDetector implements FileTypeUsageSchemaDescriptor {
30   public MavenGroovyScriptTypeDetector() {
31     super(MavenGroovyPomScriptType.INSTANCE);
32   }
33
34   @Override
35   public boolean isSpecificScriptFile(@NotNull GroovyFile script) {
36     return isMavenGroovyScript(script.getViewProvider().getVirtualFile());
37   }
38
39   @Override
40   public boolean describes(@NotNull VirtualFile file) {
41     return isMavenGroovyScript(file);
42   }
43
44   private static boolean isMavenGroovyScript(@NotNull VirtualFile file) {
45     return FileTypeRegistry.getInstance().isFileOfType(file, GroovyFileType.GROOVY_FILE_TYPE) && "pom".equals(file.getNameWithoutExtension());
46   }
47 }