1 19 20 package edu.umd.cs.findbugs.graph; 21 22 import java.util.HashMap ; 23 import java.util.Iterator ; 24 import java.util.LinkedList ; 25 26 33 public class SearchTreeBuilder <VertexType extends GraphVertex<VertexType>> 34 implements SearchTreeCallback<VertexType> { 35 36 private HashMap <VertexType, SearchTree<VertexType>> searchTreeMap = 37 new HashMap <VertexType, SearchTree<VertexType>>(); 38 39 private LinkedList <SearchTree<VertexType>> searchTreeList = 40 new LinkedList <SearchTree<VertexType>>(); 41 42 public void startSearchTree(VertexType vertex) { 43 searchTreeList.add(createSearchTree(vertex)); 44 } 45 46 public void addToSearchTree(VertexType parent, VertexType child) { 47 SearchTree<VertexType> parentTree = searchTreeMap.get(parent); 48 if (parentTree == null) 49 throw new IllegalStateException (); 50 SearchTree<VertexType> childTree = createSearchTree(child); 51 parentTree.addChild(childTree); 52 } 53 54 57 public Iterator <SearchTree<VertexType>> searchTreeIterator() { 58 return searchTreeList.iterator(); 59 } 60 61 private SearchTree<VertexType> createSearchTree(VertexType vertex) { 62 SearchTree<VertexType> searchTree = new SearchTree<VertexType>(vertex); 63 searchTreeMap.put(vertex, searchTree); 64 return searchTree; 65 } 66 } 67 68 | Popular Tags |