1 25 package classycle.renderer; 26 27 import classycle.ClassAttributes; 28 import classycle.graph.AtomicVertex; 29 import classycle.graph.StrongComponent; 30 31 37 public class PlainClassRenderer implements AtomicVertexRenderer 38 { 39 45 public String render(AtomicVertex vertex, StrongComponent cycle, 46 int layerIndex) 47 { 48 if (vertex.getAttributes() instanceof ClassAttributes) 49 { 50 int usesInternal = 0; 51 int usesExternal = 0; 52 for (int i = 0, n = vertex.getNumberOfOutgoingArcs(); i < n; i++) 53 { 54 if (((AtomicVertex) vertex.getHeadVertex(i)).isGraphVertex()) 55 { 56 usesInternal++; 57 } else 58 { 59 usesExternal++; 60 } 61 } 62 StringBuffer result 63 = new StringBuffer (vertex.getAttributes().toString()); 64 result.append(": Used by ").append(vertex.getNumberOfIncomingArcs()) 65 .append(" classes. Uses ").append(usesInternal).append('/') 66 .append(usesExternal).append(" internal/external classes"); 67 return new String (result); 68 } 69 throw new IllegalArgumentException ( 70 "Missing class attributes in vertex " + vertex); 71 } 72 } | Popular Tags |