SSR: script log first pass
[idea/community.git] / platform / structuralsearch / source / com / intellij / structuralsearch / impl / matcher / predicates / ScriptPredicate.java
1 package com.intellij.structuralsearch.impl.matcher.predicates;
2
3 import com.intellij.openapi.project.Project;
4 import com.intellij.psi.PsiElement;
5 import com.intellij.structuralsearch.impl.matcher.MatchContext;
6
7 /**
8  * @author Maxim.Mossienko
9  */
10 public class ScriptPredicate extends AbstractStringBasedPredicate {
11   private final ScriptSupport scriptSupport;
12
13   public ScriptPredicate(Project project, String name, String within) {
14     super(name, within);
15     scriptSupport = new ScriptSupport(project, within, name);
16   }
17
18   @Override
19   public boolean match(PsiElement node, PsiElement match, int start, int end, MatchContext context) {
20     if (match == null) return false;
21
22     return Boolean.TRUE.equals(
23       Boolean.valueOf(scriptSupport.evaluate(
24         context.hasResult() ? context.getResult() : null,
25         match
26       ))
27     );
28   }
29
30 }