1 25 28 package classycle.dependency; 29 30 import java.util.ArrayList ; 31 import java.util.Iterator ; 32 import java.util.List ; 33 34 import classycle.graph.AtomicVertex; 35 import classycle.graph.NameAttributes; 36 import classycle.graph.StrongComponent; 37 import classycle.renderer.AbstractStrongComponentRenderer; 38 39 public class CyclesResult implements Result 40 { 41 private final List _cycles = new ArrayList (); 42 private final String _statement; 43 private final String _vertexType; 44 45 public CyclesResult(String statement, boolean packageCycle) 46 { 47 _statement = statement; 48 _vertexType = packageCycle ? "packages" : "classes"; 49 } 50 51 public void addCycle(StrongComponent cycle) 52 { 53 _cycles.add(cycle); 54 } 55 56 public boolean isOk() 57 { 58 return _cycles.size() == 0; 59 } 60 61 public String toString() 62 { 63 StringBuffer buffer = new StringBuffer (_statement); 64 if (isOk()) 65 { 66 buffer.append("\tOK"); 67 } else 68 { 69 for (Iterator iter = _cycles.iterator(); iter.hasNext();) 70 { 71 StrongComponent component = (StrongComponent) iter.next(); 72 int numberOfVertices = component.getNumberOfVertices(); 73 buffer.append("\n "); 74 buffer.append(AbstractStrongComponentRenderer.createName(component)); 75 buffer.append(" contains ").append(numberOfVertices); 76 buffer.append(' ').append(_vertexType).append(':'); 77 for (int i = 0; i < numberOfVertices; i++) 78 { 79 buffer.append("\n "); 80 AtomicVertex vertex = component.getVertex(i); 81 buffer.append(((NameAttributes) vertex.getAttributes()).getName()); 82 } 83 } 84 } 85 return new String (buffer.append('\n')); 86 } 87 88 } 89 | Popular Tags |