]>
Commit | Line | Data |
---|---|---|
46cc235b EK |
1 | package no.uio.ifi.refaktor.analyze; |
2 | ||
3 | import org.eclipse.jdt.core.dom.ASTNode; | |
4 | import org.eclipse.jdt.core.dom.ASTVisitor; | |
5 | import org.eclipse.jdt.core.dom.IBinding; | |
6 | import org.eclipse.jdt.core.dom.IVariableBinding; | |
7 | import org.eclipse.jdt.core.dom.SimpleName; | |
8 | ||
9 | public class VariableBindingFinder extends ASTVisitor { | |
10 | private String bindingKey; | |
11 | private boolean bindingFound; | |
12 | private IVariableBinding variableBinding; | |
13 | ||
14 | public VariableBindingFinder(String bindingKey) { | |
15 | this.bindingKey = bindingKey; | |
16 | bindingFound = false; | |
17 | } | |
18 | ||
19 | @Override | |
20 | public boolean visit(SimpleName node) { | |
21 | IBinding binding = node.resolveBinding(); | |
22 | ||
23 | if (binding instanceof IVariableBinding && binding.getKey().equals(bindingKey)) { | |
24 | variableBinding = (IVariableBinding) binding; | |
25 | bindingFound = true; | |
26 | } | |
27 | ||
28 | return false; | |
29 | } | |
30 | ||
31 | @Override | |
32 | public boolean preVisit2(ASTNode node) { | |
33 | return !bindingFound; | |
34 | } | |
35 | ||
36 | public IVariableBinding getVariableBinding() { | |
37 | return variableBinding; | |
38 | } | |
39 | } |