1 package com.intellij.structuralsearch.impl.matcher;
3 import com.intellij.lang.Language;
4 import com.intellij.openapi.fileTypes.FileType;
5 import com.intellij.openapi.fileTypes.LanguageFileType;
6 import com.intellij.openapi.project.Project;
7 import com.intellij.psi.PsiElement;
8 import com.intellij.structuralsearch.MatchOptions;
9 import com.intellij.structuralsearch.StructuralSearchProfile;
10 import com.intellij.structuralsearch.StructuralSearchUtil;
11 import com.intellij.structuralsearch.impl.matcher.compiler.PatternCompiler;
12 import com.intellij.util.IncorrectOperationException;
15 * Created by IntelliJ IDEA.
16 * User: Maxim.Mossienko
19 * To change this template use File | Settings | File Templates.
21 public class MatcherImplUtil {
23 public static void transform(MatchOptions options) {
24 if (options.hasVariableConstraints()) return;
25 PatternCompiler.transformOldPattern(options);
28 public static PsiElement[] createTreeFromText(String text, PatternTreeContext context, FileType fileType, Project project)
29 throws IncorrectOperationException {
30 return createTreeFromText(text, context, fileType, null, null, project, false);
33 public static PsiElement[] createSourceTreeFromText(String text,
34 PatternTreeContext context,
39 if (fileType instanceof LanguageFileType) {
40 Language language = ((LanguageFileType)fileType).getLanguage();
41 StructuralSearchProfile profile = StructuralSearchUtil.getProfileByLanguage(language);
42 if (profile != null) {
43 return profile.createPatternTree(text, context, fileType, null, null, extension, project, physical);
46 return PsiElement.EMPTY_ARRAY;
49 public static PsiElement[] createTreeFromText(String text,
50 PatternTreeContext context,
55 boolean physical) throws IncorrectOperationException {
56 if (language == null && fileType instanceof LanguageFileType) {
57 language = ((LanguageFileType)fileType).getLanguage();
59 if (language != null) {
60 StructuralSearchProfile profile = StructuralSearchUtil.getProfileByLanguage(language);
61 if (profile != null) {
62 return profile.createPatternTree(text, context, fileType, language, contextName, null, project, physical);
65 return PsiElement.EMPTY_ARRAY;