1 package spoon.reflect.visitor; 2 3 import java.util.ArrayList ; 4 import java.util.List ; 5 6 import spoon.reflect.declaration.CtElement; 7 8 12 public class QueryVisitor<T extends CtElement> extends CtScanner { 13 Filter<T> filter; 14 15 List <T> result = new ArrayList <T>(); 16 17 20 public QueryVisitor(Filter<T> filter) { 21 super(); 22 this.filter = filter; 23 } 24 25 28 public List <T> getResult() { 29 return result; 30 } 31 32 @SuppressWarnings ("unchecked") 33 @Override 34 public void scan(CtElement element) { 35 if (element == null) 36 return; 37 if (filter.getType().isAssignableFrom(element.getClass())) { 38 if (filter.matches((T) element)) { 39 result.add((T) element); 40 } 41 } 42 super.scan(element); 43 } 44 } 45 | Popular Tags |