package jdepend.client.report.way.xmlui; import jdepend.client.report.way.textui.SummaryPrinter; import jdepend.framework.util.MetricsFormat; import jdepend.metadata.Named; import jdepend.model.Component; import jdepend.model.JDependUnit; import jdepend.model.JavaClassUnit; import jdepend.model.result.AnalysisResult; public final class XMLSummaryPrinter extends SummaryPrinter { @Override protected void printHeader(AnalysisResult inputData) { getWriter().println("<?xml version=\"1.0\"?>"); getWriter().println("<Cooper>"); } @Override protected void printFooter() { getWriter().println("</Cooper>"); } @Override protected void printComponentsHeader() { getWriter().println(tab() + "<Units>"); } @Override protected void printComponentsFooter() { getWriter().println(tab() + "</Units>"); } @Override protected void printComponentHeader(Component jPackage) { printSectionBreak(); getWriter().println(tab(2) + "<Unit name=\"" + jPackage.getName() + "\">"); } @Override protected void printComponentFooter(Component jPackage) { getWriter().println(tab(2) + "</Unit>"); } @Override protected void printNoStats() { getWriter().println(tab(3) + "<error>No stats available: " + "package referenced, but not analyzed.</error>"); } @Override protected void printStatistics(Component jPackage) { getWriter().println(tab(3) + "<Stats>"); getWriter().println(tab(4) + "<isInner>" + jPackage.isInner() + "</isInner>"); getWriter().println(tab(4) + "<TotalClasses>" + jPackage.getClassCount() + "</TotalClasses>"); getWriter().println(tab(4) + "<ConcreteClasses>" + jPackage.getConcreteClassCount() + "</ConcreteClasses>"); getWriter().println(tab(4) + "<AbstractClasses>" + jPackage.getAbstractClassCount() + "</AbstractClasses>"); getWriter().println(tab(4) + "<Ca>" + jPackage.getAfferentCoupling() + "</Ca>"); getWriter().println(tab(4) + "<Ce>" + jPackage.getEfferentCoupling() + "</Ce>"); getWriter().println(tab(4) + "<A>" + MetricsFormat.toFormattedMetrics(jPackage.getAbstractness()) + "</A>"); getWriter().println(tab(4) + "<I>" + MetricsFormat.toFormattedMetrics(jPackage.getStability()) + "</I>"); getWriter().println( tab(4) + "<Coupling>" + MetricsFormat.toFormattedMetrics(jPackage.getCoupling()) + "</Coupling>"); getWriter().println( tab(4) + "<Cohesion>" + MetricsFormat.toFormattedMetrics(jPackage.getCohesion()) + "</Cohesion>"); getWriter().println( tab(4) + "<Balance>" + MetricsFormat.toFormattedMetrics(jPackage.getBalance()) + "</Balance>"); getWriter().println(tab(3) + "</Stats>"); } @Override protected void printClassName(JavaClassUnit jClass) { getWriter().println(tab(4) + "<Class>"); getWriter().println(tab(5) + jClass.getName()); getWriter().println(tab(4) + "</Class>"); } @Override protected void printComponentName(Component jPackage) { getWriter().println(tab(4) + "<Unit>" + jPackage.getName() + "</Unit>"); } @Override protected void printAbstractClassesHeader() { getWriter().println(tab(3) + "<AbstractClasses>"); } @Override protected void printAbstractClassesFooter() { getWriter().println(tab(3) + "</AbstractClasses>"); } @Override protected void printConcreteClassesHeader() { getWriter().println(tab(3) + "<ConcreteClasses>"); } @Override protected void printConcreteClassesFooter() { getWriter().println(tab(3) + "</ConcreteClasses>"); } @Override protected void printEfferentsHeader() { getWriter().println(tab(3) + "<DependsUpon>"); } @Override protected void printEfferentsFooter() { getWriter().println(tab(3) + "</DependsUpon>"); } @Override protected void printAfferentsHeader() { getWriter().println(tab(3) + "<UsedBy>"); } @Override protected void printAfferentsFooter() { getWriter().println(tab(3) + "</UsedBy>"); } @Override protected void printCyclesHeader() { printSectionBreak(); getWriter().println(tab() + "<Cycles>"); } @Override protected void printCyclesFooter() { getWriter().println(tab() + "</Cycles>"); } @Override protected void printCycleHeader(Named jPackage) { getWriter().println(tab(2) + "<Unit Name=\"" + jPackage.getName() + "\">"); } @Override protected void printCycleFooter() { getWriter().println(tab(2) + "</Unit>"); printSectionBreak(); } @Override protected void printCycleTarget(Named jPackage) { printCycleContributor(jPackage); } @Override protected void printCycleContributor(Named jPackage) { getWriter().println(tab(3) + "<Unit>" + jPackage.getName() + "</Unit>"); } }