1 32 33 package com.jeantessier.dependency; 34 35 import java.util.*; 36 37 public abstract class ClosureLayerSelector extends ClosureSelector { 38 private Node currentNode; 39 40 private Collection coverage; 41 42 public ClosureLayerSelector() { 43 super(); 44 } 45 46 public ClosureLayerSelector(NodeFactory factory, Collection coverage) { 47 super(factory); 48 49 setCoverage(coverage); 50 } 51 52 public void reset() { 53 super.reset(); 54 55 currentNode = null; 56 } 57 58 public Collection getCoverage() { 59 return coverage; 60 } 61 62 public void setCoverage(Collection coverage) { 63 this.coverage = coverage; 64 } 65 66 public void visitPackageNode(PackageNode node) { 67 currentNode = getFactory().createPackage(node.getName(), node.isConfirmed()); 68 } 69 70 public void visitInboundPackageNode(PackageNode node) { 71 if (!getCoverage().contains(node)) { 72 getSelectedNodes().add(node); 73 74 Node copy = getFactory().createPackage(node.getName(), node.isConfirmed()); 75 getCopiedNodes().add(copy); 76 copy.addDependency(currentNode); 77 } 78 } 79 80 public void visitOutboundPackageNode(PackageNode node) { 81 if (!getCoverage().contains(node)) { 82 getSelectedNodes().add(node); 83 84 Node copy = getFactory().createPackage(node.getName(), node.isConfirmed()); 85 getCopiedNodes().add(copy); 86 currentNode.addDependency(copy); 87 } 88 } 89 90 public void visitClassNode(ClassNode node) { 91 currentNode = getFactory().createClass(node.getName(), node.isConfirmed()); 92 } 93 94 public void visitInboundClassNode(ClassNode node) { 95 if (!getCoverage().contains(node)) { 96 getSelectedNodes().add(node); 97 98 Node copy = getFactory().createClass(node.getName(), node.isConfirmed()); 99 getCopiedNodes().add(copy); 100 copy.addDependency(currentNode); 101 } 102 } 103 104 public void visitOutboundClassNode(ClassNode node) { 105 if (!getCoverage().contains(node)) { 106 getSelectedNodes().add(node); 107 108 Node copy = getFactory().createClass(node.getName(), node.isConfirmed()); 109 getCopiedNodes().add(copy); 110 currentNode.addDependency(copy); 111 } 112 } 113 114 public void visitFeatureNode(FeatureNode node) { 115 currentNode = getFactory().createFeature(node.getName(), node.isConfirmed()); 116 } 117 118 public void visitInboundFeatureNode(FeatureNode node) { 119 if (!getCoverage().contains(node)) { 120 getSelectedNodes().add(node); 121 122 Node copy = getFactory().createFeature(node.getName(), node.isConfirmed()); 123 getCopiedNodes().add(copy); 124 copy.addDependency(currentNode); 125 } 126 } 127 128 public void visitOutboundFeatureNode(FeatureNode node) { 129 if (!getCoverage().contains(node)) { 130 getSelectedNodes().add(node); 131 132 Node copy = getFactory().createFeature(node.getName(), node.isConfirmed()); 133 getCopiedNodes().add(copy); 134 currentNode.addDependency(copy); 135 } 136 } 137 } 138 | Popular Tags |