summaryrefslogtreecommitdiff
path: root/plugins/structuralsearch/structuralsearch-java/src/com/intellij/structuralsearch/impl/matcher/filters/JavaLexicalNodesFilter.java
blob: 1c86acda3e83ead672b7e916abcf6ad518048148 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
package com.intellij.structuralsearch.impl.matcher.filters;

import com.intellij.psi.*;
import com.intellij.psi.javadoc.PsiDocComment;

/**
* @author Eugene.Kudelevsky
*/
public class JavaLexicalNodesFilter extends JavaElementVisitor {
  private final LexicalNodesFilter myLexicalNodesFilter;

  public JavaLexicalNodesFilter(LexicalNodesFilter lexicalNodesFilter) {
    this.myLexicalNodesFilter = lexicalNodesFilter;
  }

  @Override public void visitJavaToken(final PsiJavaToken t) {
    myLexicalNodesFilter.setResult(true);
  }

  @Override public void visitComment(final PsiComment comment) {
  }

  @Override public void visitDocComment(final PsiDocComment comment) {
  }

  @Override public void visitKeyword(PsiKeyword keyword) {
    myLexicalNodesFilter.setResult(!myLexicalNodesFilter.isCareKeyWords());
  }

  @Override public void visitWhiteSpace(final PsiWhiteSpace space) {
    myLexicalNodesFilter.setResult(true);
  }

  @Override public void visitErrorElement(final PsiErrorElement element) {
    myLexicalNodesFilter.setResult(true);
  }
}