1 32 33 package com.jeantessier.dependency; 34 35 import java.util.*; 36 37 public abstract class ClosureSelector implements Visitor { 38 private Collection selectedNodes; 39 private Collection copiedNodes; 40 41 private NodeFactory factory; 42 43 public ClosureSelector() { 44 reset(); 45 } 46 47 public ClosureSelector(NodeFactory factory) { 48 this(); 49 setFactory(factory); 50 } 51 52 public void reset() { 53 selectedNodes = new HashSet(); 54 copiedNodes = new HashSet(); 55 } 56 57 public NodeFactory getFactory() { 58 return factory; 59 } 60 61 public void setFactory(NodeFactory factory) { 62 this.factory = factory; 63 } 64 65 public Collection getSelectedNodes() { 66 return selectedNodes; 67 } 68 69 public Collection getCopiedNodes() { 70 return copiedNodes; 71 } 72 73 public void traverseNodes(Collection nodes) { 74 Iterator i = nodes.iterator(); 75 while (i.hasNext()) { 76 ((Node) i.next()).accept(this); 77 } 78 } 79 80 protected void traverseInbound(Collection nodes) { 81 Iterator i = nodes.iterator(); 82 while (i.hasNext()) { 83 ((Node) i.next()).acceptInbound(this); 84 } 85 } 86 87 protected void traverseOutbound(Collection nodes) { 88 Iterator i = nodes.iterator(); 89 while (i.hasNext()) { 90 ((Node) i.next()).acceptOutbound(this); 91 } 92 } 93 } 94 | Popular Tags |