Introduction

This page is a code analysis report about Jasper Report auto-generated by XDepend.
In this report, you will find useful project metrics about the 3.6.0 release of Jasper Report such as the most used types.
This report detailled also what has changed since the previous release 3.5.3 and also the evolution between abstractness and instability.
You may also leave comments to point out more information about this release
To get explanations concerning these metrics, go to the XDepend home page.


About this report

Project Metrics

StatOccurrencesAvgStdDevMax
Properties on Interfaces 248 Interfaces 000 properties on net.sf.jasperreports.charts.JRXAxisFormat
Methods on Interfaces 248 Interfaces 5.8111.87149 methods on net.sf.jasperreports.engine.JRStyle
Arguments on Methods on Interfaces 1441 Methods 0.380.64 arguments on net.sf.jasperreports.engine.fill.JRTextMeasurer.measure(JRStyledText,int,int,boolean)
Public Properties on Classes 1311 Classes 1.133.1639 public properties on net.sf.jasperreports.engine.xml.JRXmlConstants
Public Methods on Classes 1311 Classes 7.8516.62182 public methods on net.sf.jasperreports.engine.base.JRBasePrintText
Arguments on Public Methods on Classes 10285 Methods 0.670.8718 arguments on net.sf.jasperreports.engine.export.TextRenderer.render(Graphics2D,int,int,int,int,int,int,int,int,float,byte,byte,float,float,int,boolean,JRStyledText,String)
BC Instructions in non-abstract Methods 13454 Methods 20.8966.275051 BC instructions in net.sf.jasperreports.engine.xml.JRXmlDigesterFactory.addChartRules(Digester)
Cyclomatic complexity on non abstract Methods 13454 Methods 2.14.75 CC = 373 for net.sf.jasperreports.engine.xml.JRXmlDigesterFactory.addChartRules(Digester)

Jars Metrics

Jar# Types# Abstract Types# BC InstAfferent CouplingEfferent CouplingRelational CohesionInstabilityAbstractnessDistance
jasperreports v1.0155934328107506125.6210.220.22

Abstractness Versus Instability

CurrentPrevious

What happened since the previous release

Here is an overview of what has changed between the two versions analyzed. You can click on a line to have the full list of elements matching the rule.

ZoomAPI Breaking Changes: Methods : 0% (1/17199)
// <Name>API Breaking Changes: Methods</Name>
WARN IF Count > 0 IN SELECT METHODS WHERE IsPublic AND (VisibilityWasChanged OR WasRemoved)
This list was extracted from the codebase thanks to this specific query in XDepend
  • net.sf.jasperreports.engine.export.JRXlsExporter.JRXlsExporter()
ZoomAPI Breaking Changes: Interfaces : 0% (2/2175)
// <Name>API Breaking Changes: Interfaces</Name>
WARN IF Count > 0 IN SELECT TYPES
WHERE IsInterface AND IsPublic AND (WasChanged AND !CommentsWereChanged)
This list was extracted from the codebase thanks to this specific query in XDepend
  • net.sf.jasperreports.engine.component.FillContext
  • net.sf.jasperreports.charts.ChartContext
ZoomMethods added : 0% (24/17238)
// <Name>Methods added</Name>
WARN IF Count > 0 IN SELECT METHODS WHERE WasAdded AND IsPublic
This list was extracted from the codebase thanks to this specific query in XDepend
  • net.sf.jasperreports.engine.fill.JRFillChart$FillChartContext.getTimeZone()
  • net.sf.jasperreports.engine.fill.JRFillComponentElement.getReportResourceBundle()
  • net.sf.jasperreports.engine.fill.JRFillComponentElement.getReportLocale()
  • net.sf.jasperreports.engine.fill.JRFillComponentElement.getReportTimezone()
  • net.sf.jasperreports.engine.fill.JRFillChart.getTimeZone()
  • net.sf.jasperreports.engine.component.FillContext.getReportTimezone()
  • net.sf.jasperreports.engine.component.FillContext.getReportResourceBundle()
  • net.sf.jasperreports.engine.component.FillContext.getReportLocale()
  • net.sf.jasperreports.engine.convert.ConvertChartContext.getTimeZone()
  • net.sf.jasperreports.engine.util.BigDecimalUtils.BigDecimalUtils()
  • net.sf.jasperreports.engine.util.BigDecimalUtils.divide(BigDecimal,BigDecimal)
  • net.sf.jasperreports.engine.util.Java14BigDecimalHandler.divide(BigDecimal,BigDecimal)
  • net.sf.jasperreports.engine.util.Java14BigDecimalHandler.Java14BigDecimalHandler()
  • net.sf.jasperreports.engine.util.BigDecimalHandler.divide(BigDecimal,BigDecimal)
  • net.sf.jasperreports.engine.util.Java15BigDecimalHandler.Java15BigDecimalHandler(int)
  • net.sf.jasperreports.engine.util.Java15BigDecimalHandler.divide(BigDecimal,BigDecimal)
  • net.sf.jasperreports.engine.util.Java15BigDecimalHandler.Java15BigDecimalHandler()
  • net.sf.jasperreports.engine.util.FileBufferedWriter.dispose()
  • net.sf.jasperreports.engine.util.FileBufferedWriter.close()
  • net.sf.jasperreports.engine.util.FileBufferedWriter.write(char[],int,int)
  • net.sf.jasperreports.engine.util.FileBufferedWriter.flush()
  • net.sf.jasperreports.engine.util.FileBufferedWriter.FileBufferedWriter()
  • net.sf.jasperreports.engine.util.FileBufferedWriter.writeData(Writer)
  • net.sf.jasperreports.charts.ChartContext.getTimeZone()
ZoomMethods removed : 0% (2/17199)
// <Name>Methods removed</Name>
WARN IF Count > 0 IN SELECT METHODS WHERE WasRemoved
This list was extracted from the codebase thanks to this specific query in XDepend
  • net.sf.jasperreports.engine.export.JRRtfExporter.createColorAndFontEntries()
  • net.sf.jasperreports.engine.export.JRXlsExporter$1.JRXlsExporter$1(JRXlsExporter,JRExporterGridCell,int,int,JRXlsExporter$StyleInfo,JRStyledText,short,JRPrintText)

Types Metrics

TypeRank values are computed by applying the Google PageRank algorithm on the graph of types' dependencies. A homothety of center 0.15 is applied to make it so that the average of TypeRank is 1.
Types with high TypeRank should be more carefully tested because bugs in such types will likely be more catastrophic. It is a value calculated only by XDepend

RankTypeNamespace
26.46JRExpressionnet.sf.jasperreports.engine
23.14JRExceptionnet.sf.jasperreports.engine
22.74JRCloneablenet.sf.jasperreports.engine
18.44JRBaseFactorynet.sf.jasperreports.engine.xml
13.08JRRuntimeExceptionnet.sf.jasperreports.engine
12.4JRCalculablenet.sf.jasperreports.engine.fill
10.89JRPrintElementnet.sf.jasperreports.engine
9.82JRStylenet.sf.jasperreports.engine
8.99AbstractValueProvidernet.sf.jasperreports.engine.fill
7.49JRFontnet.sf.jasperreports.engine
7.49JRPropertyChangeSupportnet.sf.jasperreports.engine.design.events
7.11JRBaseObjectFactorynet.sf.jasperreports.engine.base
6.97JRLineBoxnet.sf.jasperreports.engine
6.81JRAbstractObjectFactorynet.sf.jasperreports.engine