summaryrefslogtreecommitdiff
path: root/java/structuralsearch-java/src/com/intellij/structuralsearch/impl/matcher/filters/SymbolNodeFilter.java
diff options
context:
space:
mode:
Diffstat (limited to 'java/structuralsearch-java/src/com/intellij/structuralsearch/impl/matcher/filters/SymbolNodeFilter.java')
-rw-r--r--java/structuralsearch-java/src/com/intellij/structuralsearch/impl/matcher/filters/SymbolNodeFilter.java72
1 files changed, 72 insertions, 0 deletions
diff --git a/java/structuralsearch-java/src/com/intellij/structuralsearch/impl/matcher/filters/SymbolNodeFilter.java b/java/structuralsearch-java/src/com/intellij/structuralsearch/impl/matcher/filters/SymbolNodeFilter.java
new file mode 100644
index 000000000000..3e461b6738b6
--- /dev/null
+++ b/java/structuralsearch-java/src/com/intellij/structuralsearch/impl/matcher/filters/SymbolNodeFilter.java
@@ -0,0 +1,72 @@
+package com.intellij.structuralsearch.impl.matcher.filters;
+
+import com.intellij.dupLocator.util.NodeFilter;
+import com.intellij.psi.*;
+
+/**
+ * Tree filter for searching symbols ('T)
+ */
+public class SymbolNodeFilter extends JavaElementVisitor implements NodeFilter {
+ private boolean result;
+
+ @Override public void visitExpression(PsiExpression expr) {
+ result = true;
+ }
+
+ @Override public void visitLiteralExpression(PsiLiteralExpression psiLiteralExpression) {
+ result = true;
+ }
+
+ @Override public void visitReferenceExpression(PsiReferenceExpression psiReferenceExpression) {
+ result = true;
+ }
+
+ @Override public void visitAnnotation(final PsiAnnotation annotation) {
+ result = true;
+ }
+
+ @Override public void visitAnnotationMethod(final PsiAnnotationMethod method) {
+ result = true;
+ }
+
+ @Override public void visitNameValuePair(final PsiNameValuePair pair) {
+ result = true;
+ }
+
+ @Override public void visitMethod(PsiMethod psiMethod) {
+ result = true;
+ }
+
+ @Override public void visitClass(PsiClass psiClass) {
+ result = true;
+ }
+
+ @Override public void visitReferenceElement(PsiJavaCodeReferenceElement psiJavaCodeReferenceElement) {
+ result = true;
+ }
+
+ @Override public void visitVariable(PsiVariable psiVar) {
+ result = true;
+ }
+
+ @Override public void visitTypeParameter(PsiTypeParameter psiTypeParameter) {
+ result = true;
+ }
+
+ private static class NodeFilterHolder {
+ private static final NodeFilter instance = new SymbolNodeFilter();
+ }
+
+ public static NodeFilter getInstance() {
+ return NodeFilterHolder.instance;
+ }
+
+ private SymbolNodeFilter() {
+ }
+
+ public boolean accepts(PsiElement element) {
+ result = false;
+ if (element!=null) element.accept(this);
+ return result;
+ }
+}