package com.intellij.structuralsearch.impl.matcher.strategies; import com.intellij.dupLocator.util.NodeFilter; import com.intellij.psi.*; /** * Base filtering strategy to find statements */ public class MatchingStrategyBase extends JavaElementVisitor implements MatchingStrategy, NodeFilter { protected boolean result; @Override public void visitReferenceExpression(final PsiReferenceExpression psiReferenceExpression) { visitExpression(psiReferenceExpression); } @Override public void visitCodeBlock(final PsiCodeBlock block) { result = true; } @Override public void visitCatchSection(final PsiCatchSection section) { result = true; } @Override public void visitStatement(final PsiStatement statement) { result = true; } public boolean continueMatching(final PsiElement start) { return accepts(start); } @Override public boolean shouldSkip(PsiElement element, PsiElement elementToMatchWith) { return false; } public boolean accepts(PsiElement element) { result = false; if (element!=null) element.accept(this); return result; } }