1 2 25 26 package org.aspectj.ajde.ui; 27 28 import java.util.*; 29 import org.aspectj.ajde.*; 30 import org.aspectj.ajde.ui.internal.*; 31 import org.aspectj.asm.*; 32 import org.aspectj.asm.associations.*; 33 34 37 public class StructureSearchManager { 38 39 44 public List findMatches( 45 String pattern, 46 ProgramElementNode.Kind kind) { 47 48 List matches = new ArrayList(); 49 StructureModel model = Ajde.getDefault().getStructureModelManager().getStructureModel(); 50 if (model.equals(StructureModel.NO_STRUCTURE)) { 51 return null; 52 } else { 53 return findMatchesHelper((ProgramElementNode)model.getRoot(), pattern, kind, matches); 54 } 55 } 56 57 58 private List findMatchesHelper( 59 ProgramElementNode node, 60 String pattern, 61 ProgramElementNode.Kind kind, 62 List matches) { 63 64 if (node != null && node.getName().indexOf(pattern) != -1) { 65 if (kind == null || node.getProgramElementKind().equals(kind)) { 66 matches.add(node); 67 } 68 } 69 70 for (Iterator it = node.getChildren().iterator(); it.hasNext(); ) { 71 StructureNode nextNode = (StructureNode)it.next(); 72 if (nextNode instanceof ProgramElementNode) { 73 findMatchesHelper( 74 (ProgramElementNode)nextNode, 75 pattern, 76 kind, 77 matches); 78 } 79 } 80 81 return matches; 82 } 83 } | Popular Tags |