1 32 33 package com.jeantessier.dependency; 34 35 public class GraphCopier extends VisitorBase { 36 private NodeFactory scopeFactory = new NodeFactory(); 37 private NodeFactory filterFactory = new NodeFactory(); 38 39 public GraphCopier() { 40 super(); 41 } 42 43 public GraphCopier(TraversalStrategy strategy) { 44 super(strategy); 45 } 46 47 public NodeFactory getScopeFactory() { 48 return scopeFactory; 49 } 50 51 public NodeFactory getFilterFactory() { 52 return filterFactory; 53 } 54 55 protected void preprocessPackageNode(PackageNode node) { 56 super.preprocessPackageNode(getScopeFactory().createPackage(node.getName(), node.isConfirmed())); 57 } 58 59 public void visitInboundPackageNode(PackageNode node) { 60 if (getStrategy().isInFilter(node)) { 61 getFilterFactory().createPackage(node.getName(), node.isConfirmed()).addDependency(getCurrentNode()); 62 } 63 } 64 65 public void visitOutboundPackageNode(PackageNode node) { 66 if (getStrategy().isInFilter(node)) { 67 getCurrentNode().addDependency(getFilterFactory().createPackage(node.getName(), node.isConfirmed())); 68 } 69 } 70 71 protected void preprocessClassNode(ClassNode node) { 72 super.preprocessClassNode(getScopeFactory().createClass(node.getName(), node.isConfirmed())); 73 } 74 75 public void visitInboundClassNode(ClassNode node) { 76 if (getStrategy().isInFilter(node)) { 77 getFilterFactory().createClass(node.getName(), node.isConfirmed()).addDependency(getCurrentNode()); 78 } 79 } 80 81 public void visitOutboundClassNode(ClassNode node) { 82 if (getStrategy().isInFilter(node)) { 83 getCurrentNode().addDependency(getFilterFactory().createClass(node.getName(), node.isConfirmed())); 84 } 85 } 86 87 protected void preprocessFeatureNode(FeatureNode node) { 88 super.preprocessFeatureNode(getScopeFactory().createFeature(node.getName(), node.isConfirmed())); 89 } 90 91 public void visitInboundFeatureNode(FeatureNode node) { 92 if (getStrategy().isInFilter(node)) { 93 getFilterFactory().createFeature(node.getName(), node.isConfirmed()).addDependency(getCurrentNode()); 94 } 95 } 96 97 public void visitOutboundFeatureNode(FeatureNode node) { 98 if (getStrategy().isInFilter(node)) { 99 getCurrentNode().addDependency(getFilterFactory().createFeature(node.getName(), node.isConfirmed())); 100 } 101 } 102 } 103 | Popular Tags |