1 23 package org.hammurapi.inspectors.metrics.reporting; 24 import java.io.File ; 25 import java.io.FileOutputStream ; 26 import java.io.OutputStream ; 27 28 import org.hammurapi.inspectors.metrics.CodeMetric; 29 import org.hammurapi.inspectors.metrics.statistics.IntVector; 30 import org.hammurapi.results.AnnotationContext; 31 import org.jfree.chart.ChartUtilities; 32 import org.jfree.chart.JFreeChart; 33 34 public class LocReporter { 35 36 private String projectBaseDir = ""; 37 private JFreeChart jFreeChartClasses; 38 private JFreeChart jFreeChartFunctions; 39 private AnnotationContext.FileEntry fileEntry; 40 private File outFile; 41 private Integer classMaxLoc; 42 private Integer functionMaxLoc; 43 private Integer ncssReport; 44 private Integer chartDebugWindow; 45 46 private AnnotationContext context; 47 private AnnotationContext.FileEntry jpgClassFileEntry; 48 private AnnotationContext.FileEntry jpgFunctionFileEntry; 49 50 51 55 private IntVector ncssClassList = new IntVector(); 56 57 61 private IntVector ncssFunctionList = new IntVector(); 62 63 64 65 public LocReporter(AnnotationContext _context, Integer _classMaxLoc, Integer _functionMaxLoc, Integer _ncssReport, Integer _chartDebugWindow ) { 66 super(); 67 context = _context; 68 classMaxLoc = _classMaxLoc; 71 functionMaxLoc = _functionMaxLoc; 72 ncssReport = _ncssReport; 73 chartDebugWindow = _chartDebugWindow; 74 } 75 76 77 public void doIt(CodeMetric projectMetric) { 78 if (ncssReport.intValue() > 0) { 81 LocCharts locClassCharts = new LocCharts("NCSS: Classes", classMaxLoc.intValue(), this.ncssClassList, 82 chartDebugWindow); 83 locClassCharts.setGraphicDimX(350); 84 locClassCharts.setGraphicDimY(250); 85 this.jFreeChartClasses = locClassCharts.generateChart(); 86 LocCharts locFunctionCharts = new LocCharts("NCSS: Functions", functionMaxLoc.intValue(), 87 this.ncssFunctionList, chartDebugWindow); 88 locFunctionCharts.setGraphicDimX(350); 89 locFunctionCharts.setGraphicDimY(250); 90 this.jFreeChartFunctions = locFunctionCharts.generateChart(); 91 93 try { 94 95 jpgClassFileEntry = context.getNextFile("Class.jpg"); 96 jpgFunctionFileEntry = context.getNextFile("Function.jpg"); 97 FileOutputStream out = new FileOutputStream (jpgClassFileEntry.getFile()); 98 ChartUtilities.writeChartAsJPEG((OutputStream ) out, this.jFreeChartClasses, 500, 300); 99 out = new FileOutputStream (jpgFunctionFileEntry.getFile()); 102 ChartUtilities.writeChartAsJPEG((OutputStream ) out, this.jFreeChartFunctions, 500, 300); 103 } catch (Exception e) { 104 e.printStackTrace(); 105 } 106 } 107 } 108 111 public AnnotationContext.FileEntry getJpgClassFileEntry() { 112 return jpgClassFileEntry; 113 } 114 117 public AnnotationContext.FileEntry getJpgFunctionFileEntry() { 118 return jpgFunctionFileEntry; 119 } 120 123 public IntVector getNcssClassList() { 124 return ncssClassList; 125 } 126 129 public void setNcssClassList(IntVector ncssClassList) { 130 this.ncssClassList = ncssClassList; 131 } 132 135 public IntVector getNcssFunctionList() { 136 return ncssFunctionList; 137 } 138 141 public void setNcssFunctionList(IntVector ncssFunctionList) { 142 this.ncssFunctionList = ncssFunctionList; 143 } 144 } 145 | Popular Tags |