blob: 3cef402b09d3b0f6ffd13c628f5e0209a0690ce5 [file] [log] [blame]
package com.intellij.structuralsearch.impl.matcher.filters;
import com.intellij.dupLocator.util.NodeFilter;
import com.intellij.psi.PsiElement;
import com.intellij.structuralsearch.StructuralSearchProfile;
import com.intellij.structuralsearch.StructuralSearchUtil;
/**
* Filter for lexical nodes
*/
public final class LexicalNodesFilter implements NodeFilter {
private boolean careKeyWords;
private boolean result;
private LexicalNodesFilter() {}
public static NodeFilter getInstance() {
return NodeFilterHolder.instance;
}
public boolean getResult() {
return result;
}
public void setResult(boolean result) {
this.result = result;
}
private static class NodeFilterHolder {
private static final NodeFilter instance = new LexicalNodesFilter();
}
public boolean isCareKeyWords() {
return careKeyWords;
}
public void setCareKeyWords(boolean careKeyWords) {
this.careKeyWords = careKeyWords;
}
public boolean accepts(PsiElement element) {
result = false;
if (element!=null) {
final StructuralSearchProfile profile = StructuralSearchUtil.getProfileByPsiElement(element);
if (profile != null) {
element.accept(profile.getLexicalNodesFilter(this));
}
}
return result;
}
}