JxRef Complexity Report

JxRef V0.6.0

Produced by JxRefTM -- A Java Code Analysis Toolset

Generated on March 16, 2005 at 02:52 CST

This document provides size and complexity metrics.

Summary StatisticsMost Complex MethodsPackage SummaryClass Summary by PackageDetails by Package/Class/MethodGlossary

Summary Statistics

StatisticValue
Number of Packages11
Number of Classes86
Number of Methods433
Number of JVM Instructions10103
Average Class Complexity (Avg WMC)10.55814
Number of Classes with WMC>503
Cumulative Complexity (Total WMC)939
Percentage of Classes with WMC>503.4883723%
Average McCabe Complexity (method level)2.1685913
Minimum method McCabe Complexity1
Maximum method McCabe Complexity30
Number of Methods with Complexity>1010
Percentage of Methods with Complexity>102.3094687%
Average Nbr of Instructions per Method23.332563
Minimum Nbr of Instructions per Method0
Maximum Nbr of Instructions per Method464

Definitions for these statistics are here.


Most Complex Methods

ClassMethodSignatureMcCabe ComplexityNbr JVM Instructions
org.jxref.inspector.MethodIdentifiergetArgumentText()30306
org.jxref.search.ModifierFilterClausemeetsClauseCriteria(int)25124
org.jxref.search.MethodFilterappend(org.jxref.report.ant.ClassAttributeFilter)14124
org.jxref.search.ModifierFilterClause<init>(java.lang.String, boolean)13173
org.jxref.report.ComplexityReportexecute()12464
org.jxref.inspector.MethodDefinitioncompareTo(java.lang.Object)1165
org.jxref.search.StringMask$MaskdoesApply(java.lang.String)1157
org.jxref.inspector.MethodIdentifierequals(java.lang.Object)1161
org.jxref.inspector.MethodInspectorcomputeMcCabeComplexity(org.jxref.inspector.MethodDefinition)1068
org.jxref.inspector.MethodDefinitiongetAbstractReferences()1093
org.jxref.report.UnusedMethodReportexecute()9241
org.jxref.inspector.MethodDefinitiongetInterfaceReferences()988
org.jxref.search.MethodFilterapply(java.util.Collection)868
org.jxref.reference.ClassStatisticsAggregatorparse()8181
org.jxref.search.MethodFilterapply(org.jxref.inspector.MethodDescriptor[])757
org.jxref.report.ComplexityReport$PackageStatisticcomputeStatistics()798
org.jxref.inspector.MethodInspectorfindCalledMethods(org.jxref.inspector.MethodDescriptor)774
org.jxref.inspector.ClassDefinitionfindMethodDefinition(org.jxref.inspector.MethodDescriptor)748
org.jxref.inspector.ClassDefinitiongetInterfaces()786
org.jxref.search.StringMaskincludeValue(java.lang.String)758

Package Summary

PackageNbr ClassesAvg Complexity / Class (Avg WMC)Max Complexity / Class (Max WMC)Cumulative Complexity (Cum WMC)Avg Nbr JVM Instructions / ClassMax Nbr JVM Instructions / ClassCumulative Nbr JVM Instructions
org.jxref.inspector1322.063286198.769235602584
org.jxref.search919.77777975178158.555565401427
org.jxref.report187.222222318130120.6111155262171
org.jxref.report.ant117.181818197989.27273276982
org.jxref.report.vo126.3333335137681.0231972
org.jxref.iterator68.5145179.333336134476
org.jxref.reference221.54143254.5501509
org.jxref.util46.582651.7577207
org.jxref.sequence210.01520173.5235347
testclasses81.6253138.1252065
org.jxref.report.pkg16.066106.0106106

Class Summary by Package

org.jxref.inspector

ClassNbr MethodsAvg Complexity / MethodMax Complexity / MethodCumulative Complexity (WMC)Avg Nbr JVM Instructions / MethodMax Nbr JVM Instructions / MethodCumulative Nbr JVM Instructions
org.jxref.inspector.MethodDefinition193.3157895116328.26315993537
org.jxref.inspector.MethodIdentifier125.25306346.666668306560
org.jxref.inspector.ClassDefinition113.181818273526.9090986296
org.jxref.inspector.ClassUtility92.666666742426.77777945241
org.jxref.inspector.MethodReferenceListing102.462423.491234
org.jxref.inspector.MethodInspector54.4102234.674173
org.jxref.inspector.ClassInspector63.333333362035.063210
org.jxref.inspector.TestMethodInspector51.83927.044135
org.jxref.inspector.TestClassInspector51.62813.42367
org.jxref.inspector.TestClassDefinition32.33333335719.3333343158
org.jxref.inspector.TestBcelUtility31.66666663515.6666672547
org.jxref.inspector.MethodDescriptor41.0140.000
org.jxref.inspector.TestMethodIdentifier21.01213.02326

org.jxref.iterator

ClassNbr MethodsAvg Complexity / MethodMax Complexity / MethodCumulative Complexity (WMC)Avg Nbr JVM Instructions / MethodMax Nbr JVM Instructions / MethodCumulative Nbr JVM Instructions
org.jxref.iterator.ZipFileClassNameIterator72.051416.42857237115
org.jxref.iterator.DirectoryClassNameIterator62.166666751322.33333455134
org.jxref.iterator.ClassLoadReference42.05824.258597
org.jxref.iterator.IteratorFactory23.05623.54447
org.jxref.iterator.TestZipFileClassNameIterator41.53613.753055
org.jxref.iterator.TestDirectoryClassNameIterator31.3333334249.3333331428

org.jxref.reference

ClassNbr MethodsAvg Complexity / MethodMax Complexity / MethodCumulative Complexity (WMC)Avg Nbr JVM Instructions / MethodMax Nbr JVM Instructions / MethodCumulative Nbr JVM Instructions
org.jxref.reference.ClassStatisticsAggregator142.928571584135.785713181501
org.jxref.reference.ClassStatisticsAggregator$GlobalSearch21.0124.068

org.jxref.report

ClassNbr MethodsAvg Complexity / MethodMax Complexity / MethodCumulative Complexity (WMC)Avg Nbr JVM Instructions / MethodMax Nbr JVM Instructions / MethodCumulative Nbr JVM Instructions
org.jxref.report.ComplexityReport$PackageStatistic82.2571839.375126315
org.jxref.report.ComplexityReport62.8333333121787.666664464526
org.jxref.report.MethodLevelReport52.651328.272141
org.jxref.report.ComplexityReport$CumulativeStatistic111.09090912126.9090913076
org.jxref.report.ComplexityReport$ClassStatistic42.561053.25109213
org.jxref.report.UnusedMethodReport25.0910122.5241245
org.jxref.report.MethodCrossReferenceReport32.66666675850.0126150
org.jxref.report.SequenceFlowReport32.66666676856.333332136169
org.jxref.report.TestUnusedMethods23.05624.54649
org.jxref.report.AbstractReportExecutor31.3333334246.66666651620
org.jxref.report.ComplexityReport$ClassStatisticComparator22.03419.53639
org.jxref.report.ComplexityReport$MethodDefinitionComparator22.03420.53841
org.jxref.report.PackageReferenceReport22.03426.04852
org.jxref.report.TestMethodCrossReference22.03425.54851
org.jxref.report.ComplexityReport$MethodStatistic21.0125.5611
org.jxref.report.ReportTestCase21.0129.51119
org.jxref.report.TestComplexityReport21.0128.51417
org.jxref.report.TestSequenceFlowReport21.01218.53437

org.jxref.report.ant

ClassNbr MethodsAvg Complexity / MethodMax Complexity / MethodCumulative Complexity (WMC)Avg Nbr JVM Instructions / MethodMax Nbr JVM Instructions / MethodCumulative Nbr JVM Instructions
org.jxref.report.ant.CommonReportTask111.727272741925.0909191276
org.jxref.report.ant.JxRefTask91.555555661426.0180234
org.jxref.report.ant.BaseReportTask91.444444451313.11111149118
org.jxref.report.ant.ClassAttributeFilter71.0174.7142861233
org.jxref.report.ant.MethodXref23.56741.07782
org.jxref.report.ant.SequenceFlow32.03622.3333344267
org.jxref.report.ant.Complexity31.66666663518.04254
org.jxref.report.ant.TestJxRefTask31.01324.03472
org.jxref.report.ant.UnusedMethod21.52320.03540
org.jxref.report.ant.Exclude11.0113.033
org.jxref.report.ant.Include11.0113.033

org.jxref.report.pkg

ClassNbr MethodsAvg Complexity / MethodMax Complexity / MethodCumulative Complexity (WMC)Avg Nbr JVM Instructions / MethodMax Nbr JVM Instructions / MethodCumulative Nbr JVM Instructions
org.jxref.report.pkg.LabeledTag41.52626.571106

org.jxref.report.vo

ClassNbr MethodsAvg Complexity / MethodMax Complexity / MethodCumulative Complexity (WMC)Avg Nbr JVM Instructions / MethodMax Nbr JVM Instructions / MethodCumulative Nbr JVM Instructions
org.jxref.report.vo.AnalysisReport81.62531328.875106231
org.jxref.report.vo.XmlTagUtility52.461231.090155
org.jxref.report.vo.Statistic71.428571531014.1428583199
org.jxref.report.vo.ErrorDescription51.84937.0118185
org.jxref.report.vo.TestErrorDescription24.07843.08386
org.jxref.report.vo.Inspectable51.0150.000
org.jxref.report.vo.ReportSection41.252511.752547
org.jxref.report.vo.TestStatistic22.54524.04548
org.jxref.report.vo.LabeledItem31.0134.3333335613
org.jxref.report.vo.TestAnalysisReport31.01324.3333345673
org.jxref.report.vo.ValueDescription21.01217.52535
org.jxref.report.vo.XmlTagEmitable11.0110.000

org.jxref.search

ClassNbr MethodsAvg Complexity / MethodMax Complexity / MethodCumulative Complexity (WMC)Avg Nbr JVM Instructions / MethodMax Nbr JVM Instructions / MethodCumulative Nbr JVM Instructions
org.jxref.search.ModifierFilterClause391.9230769257513.846154173540
org.jxref.search.MethodFilter133.6153846144728.615385124372
org.jxref.search.StringMask$Mask28.0111656.557113
org.jxref.search.ModifierFilter43.2571327.557110
org.jxref.search.TestModifierSearchCriteria52.231127.046135
org.jxref.search.StringMask42.571022.255889
org.jxref.search.ModifierFilter$AndClause21.0124.569
org.jxref.search.ModifierFilter$OrClause21.0124.569
org.jxref.search.TestStringSearchCriteria21.01225.04750

org.jxref.sequence

ClassNbr MethodsAvg Complexity / MethodMax Complexity / MethodCumulative Complexity (WMC)Avg Nbr JVM Instructions / MethodMax Nbr JVM Instructions / MethodCumulative Nbr JVM Instructions
org.jxref.sequence.CalledMethod72.14285751533.5714381235
org.jxref.sequence.MethodSequenceFlow31.66666662537.33333277112

org.jxref.util

ClassNbr MethodsAvg Complexity / MethodMax Complexity / MethodCumulative Complexity (WMC)Avg Nbr JVM Instructions / MethodMax Nbr JVM Instructions / MethodCumulative Nbr JVM Instructions
org.jxref.util.Logger81.0186.3751351
org.jxref.util.TestCollectionUtility23.56738.57477
org.jxref.util.CollectionUtility23.05619.03538
org.jxref.util.Validator31.66666662513.6666672241

testclasses

ClassNbr MethodsAvg Complexity / MethodMax Complexity / MethodCumulative Complexity (WMC)Avg Nbr JVM Instructions / MethodMax Nbr JVM Instructions / MethodCumulative Nbr JVM Instructions
testclasses.MyCalledClass21.52310.01720
testclasses.MyCallingClass21.0124.058
testclasses.MyFactory21.0123.547
testclasses.MyNastyClass$Inner121.0127.5915
testclasses.MyInterface11.0110.000
testclasses.MyNastyClass11.0113.033
testclasses.MyNastyClass$Inner211.0116.066
testclasses.MyNastyClass$Inner2$Inner311.0116.066

Details by Package/Class/Method


org.jxref.inspector.ClassDefinition

MethodSignatureMcCabe ComplexityNbr JVM Instructions
findMethodDefinition(org.jxref.inspector.MethodDescriptor)748
getInterfaces()786
getClassAncestors()542
getInterfaceAncestors()544
<init>(java.lang.String, org.apache.bcel.classfile.JavaClass)216
checkDefinitionStatus()216
getAncestors()218
isDefinitionKnown()27
<init>(java.lang.String)15
getMethodDefinitions()18
getSuperClassName()16

org.jxref.inspector.ClassInspector

MethodSignatureMcCabe ComplexityNbr JVM Instructions
findMethodDefinitions(org.jxref.iterator.ClassLoadReference, org.jxref.search.ModifierFilter)652
findMethodReferenceSingleClass(org.jxref.iterator.ClassLoadReference)563
findClassDependencies(org.jxref.iterator.ClassLoadReference)450
getMethodNames(org.jxref.iterator.ClassLoadReference)335
<init>()13
findMethodReferences(org.jxref.iterator.ClassLoadReference)17

org.jxref.inspector.ClassUtility

MethodSignatureMcCabe ComplexityNbr JVM Instructions
getClassMethods(java.lang.String, org.apache.bcel.classfile.JavaClass)441
createMethodReference(org.apache.bcel.classfile.ConstantPool, org.apache.bcel.classfile.ConstantMethodref)345
getClassName(org.apache.bcel.classfile.ConstantPool, org.apache.bcel.classfile.ConstantClass)331
getLoadedClass(java.lang.String)322
getMethodName(org.apache.bcel.classfile.ConstantPool, org.apache.bcel.classfile.ConstantNameAndType)328
getMethodSignature(org.apache.bcel.classfile.ConstantPool, org.apache.bcel.classfile.ConstantNameAndType)326
addClass(org.jxref.iterator.ClassLoadReference)222
getClassMethods(org.jxref.iterator.ClassLoadReference)223
<init>()13

org.jxref.inspector.MethodDefinition

MethodSignatureMcCabe ComplexityNbr JVM Instructions
compareTo(java.lang.Object)1165
equals(java.lang.Object)1165
getAbstractReferences()1093
getInterfaceReferences()988
<init>(java.lang.String, org.apache.bcel.classfile.Method)441
findInvokedMethod(org.apache.bcel.generic.InvokeInstruction)349
<clinit>()220
getInstructionList()216
emitXmlTag(int)133
getArgumentText()14
getClassName()14
getMethodId()13
getModifiers()14
getName()14
getPackageName()14
getSignatureText()14
hashCode()115
isAbstract()14
toString()121

org.jxref.inspector.MethodDescriptor

MethodSignatureMcCabe ComplexityNbr JVM Instructions
getArgumentText()10
getClassName()10
getName()10
getSignatureText()10

org.jxref.inspector.MethodIdentifier

MethodSignatureMcCabe ComplexityNbr JVM Instructions
getArgumentText()30306
compareTo(java.lang.Object)1165
equals(java.lang.Object)1161
determineArrayNotation(int)218
getPackageName()218
<init>(java.lang.String, java.lang.String)118
emitXmlTag(int)132
getClassName()13
getName()13
getSignatureText()13
hashCode()115
toString()118

org.jxref.inspector.MethodInspector

MethodSignatureMcCabe ComplexityNbr JVM Instructions
computeMcCabeComplexity(org.jxref.inspector.MethodDefinition)1068
findCalledMethods(org.jxref.inspector.MethodDescriptor)774
computeNbrInstructions(org.jxref.inspector.MethodDefinition)215
getInstructions(org.jxref.inspector.MethodDefinition)213
<init>()13

org.jxref.inspector.MethodReferenceListing

MethodSignatureMcCabe ComplexityNbr JVM Instructions
equals(java.lang.Object)630
compareTo(java.lang.Object)335
emitXmlTag(int)391
isInternalReferenceOnly()319
<init>(org.jxref.inspector.MethodIdentifier)218
addClassReference(java.lang.String)213
hasInternalReference()214
getMethodIdentifier()13
getReferencedClasses()17
hashCode()14

org.jxref.inspector.TestBcelUtility

MethodSignatureMcCabe ComplexityNbr JVM Instructions
printArray(java.lang.Object[])319
<init>()13
testGetClassMethods()125

org.jxref.inspector.TestClassDefinition

MethodSignatureMcCabe ComplexityNbr JVM Instructions
testGetInterfaces()531
<init>()111
setUp()116

org.jxref.inspector.TestClassInspector

MethodSignatureMcCabe ComplexityNbr JVM Instructions
printArray(java.lang.Object[])217
testFindClassDependencies()223
testFindMethodReferences()223
<init>()13
ignoreFindAllInnerClasses()11

org.jxref.inspector.TestMethodIdentifier

MethodSignatureMcCabe ComplexityNbr JVM Instructions
<init>()13
testGetArgumentText()123

org.jxref.inspector.TestMethodInspector

MethodSignatureMcCabe ComplexityNbr JVM Instructions
printArray(java.lang.Object[])344
testComputeMcCabeComplexity()225
testFindCalledMethods()235
<init>()111
setUp()120

org.jxref.iterator.ClassLoadReference

MethodSignatureMcCabe ComplexityNbr JVM Instructions
<init>(java.lang.String, java.io.InputStream)585
getClassFileInputStream()16
getClassName()13
toString()13

org.jxref.iterator.DirectoryClassNameIterator

MethodSignatureMcCabe ComplexityNbr JVM Instructions
stackTheClassLoadReferences(java.io.File)555
<init>(java.io.File)336
hasNext()28
extractClassNameFromFile(java.io.File)125
next()15
remove()15

org.jxref.iterator.IteratorFactory

MethodSignatureMcCabe ComplexityNbr JVM Instructions
createClassNameIterator(java.lang.String)544
<init>()13

org.jxref.iterator.TestDirectoryClassNameIterator

MethodSignatureMcCabe ComplexityNbr JVM Instructions
testBasic()211
<init>()13
setUp()114

org.jxref.iterator.TestZipFileClassNameIterator

MethodSignatureMcCabe ComplexityNbr JVM Instructions
testBasic()330
<init>()13
setUp()114
testZipFileClassNameIterator()18

org.jxref.iterator.ZipFileClassNameIterator

MethodSignatureMcCabe ComplexityNbr JVM Instructions
findNextClassNameEntry()537
<init>(java.io.File)226
finalize()27
hasNext()27
extractClassNameFromEntry(java.util.zip.ZipEntry)116
next()117
remove()15

org.jxref.reference.ClassStatisticsAggregator

MethodSignatureMcCabe ComplexityNbr JVM Instructions
parse()8181
checkClassPathEntry(java.lang.String)528
<init>(java.lang.String[])467
findMethodDefinitions(org.jxref.search.ModifierFilter)441
getMethodsReferencedExternallyOnly()435
getMethodsReferencedInternallyOnly()435
addClassPathEntry(java.lang.String)326
<clinit>()220
findMethodDefinitions(org.jxref.search.MethodFilter)212
<init>()126
findAllMethodDefinitions()17
getAllMethodReferenceListings()18
getAllMethodReferences()18
getErrorReports()17

org.jxref.reference.ClassStatisticsAggregator$GlobalSearch

MethodSignatureMcCabe ComplexityNbr JVM Instructions
<init>()16
meetsCriteria(int)12

org.jxref.report.AbstractReportExecutor

MethodSignatureMcCabe ComplexityNbr JVM Instructions
<init>(org.jxref.reference.ClassStatisticsAggregator)216
<clinit>()14
execute()10

org.jxref.report.ant.BaseReportTask

MethodSignatureMcCabe ComplexityNbr JVM Instructions
<clinit>()549
<init>()119
addConfiguredExclude(org.jxref.report.ant.Exclude)16
addConfiguredInclude(org.jxref.report.ant.Include)16
append(org.jxref.report.ant.BaseReportTask)116
getExcludes()17
getIncludes()17
setFormat(java.lang.String)14
setLabel(java.lang.String)14

org.jxref.report.ant.ClassAttributeFilter

MethodSignatureMcCabe ComplexityNbr JVM Instructions
<init>()112
getClassName()13
getMethodModifier()13
getMethodName()13
setClassName(java.lang.String)14
setMethodModifier(java.lang.String)14
setMethodName(java.lang.String)14

org.jxref.report.ant.CommonReportTask

MethodSignatureMcCabe ComplexityNbr JVM Instructions
write(java.lang.String)450
writeHTML(java.lang.String)483
writeFile(java.lang.String, java.lang.String)391
<init>(java.lang.String, java.lang.String)121
getClassStatisticsAggregator()13
isXmlOutputSpecified()14
setClassStatisticsAggregator(org.jxref.reference.ClassStatisticsAggregator)17
setOutDir(java.lang.String)14
setOutFileName(java.lang.String)14
write(org.jxref.report.vo.AnalysisReport)14
writeXML(java.lang.String)15

org.jxref.report.ant.Complexity

MethodSignatureMcCabe ComplexityNbr JVM Instructions
execute()342
<init>()18
setTop(int)14

org.jxref.report.ant.Exclude

MethodSignatureMcCabe ComplexityNbr JVM Instructions
<init>()13

org.jxref.report.ant.Include

MethodSignatureMcCabe ComplexityNbr JVM Instructions
<init>()13

org.jxref.report.ant.JxRefTask

MethodSignatureMcCabe ComplexityNbr JVM Instructions
execute()6180
<clinit>()14
<init>()116
addConfiguredComplexity(org.jxref.report.ant.Complexity)16
addConfiguredFileSet(org.apache.tools.ant.types.FileSet)16
addConfiguredMethodXref(org.jxref.report.ant.MethodXref)16
addConfiguredSequenceFlow(org.jxref.report.ant.SequenceFlow)16
addConfiguredUnusedMethod(org.jxref.report.ant.UnusedMethod)16
setOutDir(java.lang.String)14

org.jxref.report.ant.MethodXref

MethodSignatureMcCabe ComplexityNbr JVM Instructions
execute()677
<init>()15

org.jxref.report.ant.SequenceFlow

MethodSignatureMcCabe ComplexityNbr JVM Instructions
execute()342
setMaxCallDepth(int)217
<init>()18

org.jxref.report.ant.TestJxRefTask

MethodSignatureMcCabe ComplexityNbr JVM Instructions
<init>()111
setUp()134
testExecute()127

org.jxref.report.ant.UnusedMethod

MethodSignatureMcCabe ComplexityNbr JVM Instructions
execute()235
<init>()15

org.jxref.report.ComplexityReport

MethodSignatureMcCabe ComplexityNbr JVM Instructions
execute()12464
<init>(org.jxref.reference.ClassStatisticsAggregator)17
access$200(org.jxref.inspector.MethodDefinition, int)14
getNbrComplexMethods()13
methodFormatter(org.jxref.inspector.MethodDefinition, int)144
setNbrComplexMethods(int)14

org.jxref.report.ComplexityReport$ClassStatistic

MethodSignatureMcCabe ComplexityNbr JVM Instructions
computeStatistics()685
emitXmlTag(int)2109
<init>(java.lang.String)113
addMethodDefinition(org.jxref.inspector.MethodDefinition)16

org.jxref.report.ComplexityReport$ClassStatisticComparator

MethodSignatureMcCabe ComplexityNbr JVM Instructions
compare(java.lang.Object, java.lang.Object)336
<init>(org.jxref.report.ComplexityReport$1)13

org.jxref.report.ComplexityReport$CumulativeStatistic

MethodSignatureMcCabe ComplexityNbr JVM Instructions
checkStatistics()26
<init>(java.lang.String)130
computeStatistics()10
getAverageMcCabeComplexity()15
getAverageNbrInstructions()15
getCumulativeMcCabeComplexity()15
getCumulativeNbrInstructions()15
getMaximumMcCabeComplexity()15
getMaximumNbrInstructions()15
getMinimumMcCabeComplexity()15
getMinimumNbrInstructions()15

org.jxref.report.ComplexityReport$MethodDefinitionComparator

MethodSignatureMcCabe ComplexityNbr JVM Instructions
compare(java.lang.Object, java.lang.Object)338
<init>(org.jxref.report.ComplexityReport$1)13

org.jxref.report.ComplexityReport$MethodStatistic

MethodSignatureMcCabe ComplexityNbr JVM Instructions
<init>(org.jxref.inspector.MethodDefinition)16
emitXmlTag(int)15

org.jxref.report.ComplexityReport$PackageStatistic

MethodSignatureMcCabe ComplexityNbr JVM Instructions
computeStatistics()798
addMethodDefinition(org.jxref.inspector.MethodDefinition)226
computeCumulativeMcCabeComplexity()222
computeCumulativeNbrInstructions()222
emitXmlTag(int)2126
<init>(java.lang.String)112
getNbrClasses()14
getNbrWithComplexityOverFifty()15

org.jxref.report.MethodCrossReferenceReport

MethodSignatureMcCabe ComplexityNbr JVM Instructions
execute()5126
<clinit>()220
<init>(org.jxref.reference.ClassStatisticsAggregator)14

org.jxref.report.MethodLevelReport

MethodSignatureMcCabe ComplexityNbr JVM Instructions
excludeStandardMethods()572
excludedMethodName(java.lang.String)329
addSpecification(org.jxref.report.ant.ClassAttributeFilter)216
excludeMethodsInClass(java.lang.Class)217
<init>(org.jxref.reference.ClassStatisticsAggregator)17

org.jxref.report.PackageReferenceReport

MethodSignatureMcCabe ComplexityNbr JVM Instructions
execute()348
<init>(org.jxref.reference.ClassStatisticsAggregator)14

org.jxref.report.pkg.LabeledTag

MethodSignatureMcCabe ComplexityNbr JVM Instructions
<init>(java.lang.String, java.lang.String)223
emitXmlTag(int)271
addMember(org.jxref.report.vo.XmlTagEmitable)19
getName()13

org.jxref.report.ReportTestCase

MethodSignatureMcCabe ComplexityNbr JVM Instructions
<init>()111
setUp()18

org.jxref.report.SequenceFlowReport

MethodSignatureMcCabe ComplexityNbr JVM Instructions
execute()6136
<init>(org.jxref.reference.ClassStatisticsAggregator)129
setMaxCallDepth(int)14

org.jxref.report.TestComplexityReport

MethodSignatureMcCabe ComplexityNbr JVM Instructions
<init>()13
testExecute()114

org.jxref.report.TestMethodCrossReference

MethodSignatureMcCabe ComplexityNbr JVM Instructions
testExecute()348
<init>()13

org.jxref.report.TestSequenceFlowReport

MethodSignatureMcCabe ComplexityNbr JVM Instructions
<init>()13
testExecute()134

org.jxref.report.TestUnusedMethods

MethodSignatureMcCabe ComplexityNbr JVM Instructions
testFindUnnecessarilyVisibleMethods()546
<init>()13

org.jxref.report.UnusedMethodReport

MethodSignatureMcCabe ComplexityNbr JVM Instructions
execute()9241
<init>(org.jxref.reference.ClassStatisticsAggregator)14

org.jxref.report.vo.AnalysisReport

MethodSignatureMcCabe ComplexityNbr JVM Instructions
emitXmlTag(int)3106
addReportSectionData(java.lang.String, org.jxref.report.vo.XmlTagEmitable)234
getReportSection()232
getReportSectionData(java.lang.String)218
<init>(java.lang.String)123
emitXmlDocument()111
getDescription()13
setDescription(java.lang.String)14

org.jxref.report.vo.ErrorDescription

MethodSignatureMcCabe ComplexityNbr JVM Instructions
emitXmlTag(int)4118
getFormattedException()219
<init>(java.lang.String, java.lang.Throwable)120
addPossibleCause(java.lang.String)114
addSuggestion(java.lang.String)114

org.jxref.report.vo.Inspectable

MethodSignatureMcCabe ComplexityNbr JVM Instructions
getField(java.lang.String)10
getFieldName()10
getInspectableField(int)10
getInspectableFieldName()10
getLabel()10

org.jxref.report.vo.LabeledItem

MethodSignatureMcCabe ComplexityNbr JVM Instructions
<init>()16
getLabel()13
setLabel(java.lang.String)14

org.jxref.report.vo.ReportSection

MethodSignatureMcCabe ComplexityNbr JVM Instructions
emitXmlTag(int)225
<init>(java.lang.String)19
addSectionDetail(org.jxref.report.vo.XmlTagEmitable)16
getSectionDetail()17

org.jxref.report.vo.Statistic

MethodSignatureMcCabe ComplexityNbr JVM Instructions
setType(int)320
getFormattedNumber()231
<init>(java.lang.String, java.lang.Number)113
emitXmlTag(int)125
getNumber()13
getType()13
setNumber(java.lang.Number)14

org.jxref.report.vo.TestAnalysisReport

MethodSignatureMcCabe ComplexityNbr JVM Instructions
<init>()13
setUp()156
testBasic()114

org.jxref.report.vo.TestErrorDescription

MethodSignatureMcCabe ComplexityNbr JVM Instructions
testErrorDescriptionBasic()783
<init>()13

org.jxref.report.vo.TestStatistic

MethodSignatureMcCabe ComplexityNbr JVM Instructions
testStatisticBasic()445
<init>()13

org.jxref.report.vo.ValueDescription

MethodSignatureMcCabe ComplexityNbr JVM Instructions
<init>(java.lang.String, java.lang.String)110
emitXmlTag(int)125

org.jxref.report.vo.XmlTagEmitable

MethodSignatureMcCabe ComplexityNbr JVM Instructions
emitXmlTag(int)10

org.jxref.report.vo.XmlTagUtility

MethodSignatureMcCabe ComplexityNbr JVM Instructions
asXmlElementText(int, java.lang.String, org.jxref.report.vo.XmlTagEmitable[])690
asIndentedString(int)218
validateTagName(java.lang.String, java.lang.String)217
<init>()13
asXmlText(java.lang.String)127

org.jxref.search.MethodFilter

MethodSignatureMcCabe ComplexityNbr JVM Instructions
append(org.jxref.report.ant.ClassAttributeFilter)14124
apply(java.util.Collection)868
apply(org.jxref.inspector.MethodDescriptor[])757
apply(org.jxref.inspector.MethodReferenceListing[])433
maskApplies(org.jxref.inspector.MethodIdentifier)427
maskApplies(org.jxref.inspector.MethodDefinition)321
<init>()112
getClassNameMask()13
getMethodNameMask()13
getModifierFilter()13
setClassNameMask(org.jxref.search.StringMask)17
setMethodNameMask(org.jxref.search.StringMask)17
setModifierFilter(org.jxref.search.ModifierFilter)17

org.jxref.search.ModifierFilter

MethodSignatureMcCabe ComplexityNbr JVM Instructions
meetsCriteria(int)757
<init>(org.jxref.search.ModifierFilterClause)221
and(org.jxref.search.ModifierFilterClause)216
or(org.jxref.search.ModifierFilterClause)216

org.jxref.search.ModifierFilter$AndClause

MethodSignatureMcCabe ComplexityNbr JVM Instructions
<init>(org.jxref.search.ModifierFilterClause)16
getClause()13

org.jxref.search.ModifierFilter$OrClause

MethodSignatureMcCabe ComplexityNbr JVM Instructions
<init>(org.jxref.search.ModifierFilterClause)16
getClause()13

org.jxref.search.ModifierFilterClause

MethodSignatureMcCabe ComplexityNbr JVM Instructions
meetsClauseCriteria(int)25124
<init>(java.lang.String, boolean)13173
<init>()175
isConsiderAbstract()13
isConsiderFinal()13
isConsiderInterface()13
isConsiderNative()13
isConsiderPrivate()13
isConsiderProtected()13
isConsiderPublic()13
isConsiderStatic()13
isConsiderStrict()13
isConsiderSynchronized()13
isConsiderTransient()13
isConsiderVolatile()13
setAbstract(boolean)17
setConsiderAbstract(boolean)14
setConsiderFinal(boolean)14
setConsiderInterface(boolean)14
setConsiderNative(boolean)14
setConsiderPrivate(boolean)14
setConsiderProtected(boolean)14
setConsiderPublic(boolean)14
setConsiderStatic(boolean)14
setConsiderStrict(boolean)14
setConsiderSynchronized(boolean)14
setConsiderTransient(boolean)14
setConsiderVolatile(boolean)14
setFinal(boolean)17
setInterface(boolean)17
setNative(boolean)17
setPrivate(boolean)17
setProtected(boolean)17
setPublic(boolean)17
setStatic(boolean)17
setStrict(boolean)17
setSynchronized(boolean)17
setTransient(boolean)17
setVolatile(boolean)17

org.jxref.search.StringMask

MethodSignatureMcCabe ComplexityNbr JVM Instructions
includeValue(java.lang.String)758
<init>()113
addExcludeMask(java.lang.String)19
addIncludeMask(java.lang.String)19

org.jxref.search.StringMask$Mask

MethodSignatureMcCabe ComplexityNbr JVM Instructions
doesApply(java.lang.String)1157
<init>(java.lang.String)556

org.jxref.search.TestModifierSearchCriteria

MethodSignatureMcCabe ComplexityNbr JVM Instructions
getNbrTrues(java.lang.reflect.Method[], org.jxref.search.ModifierFilter)320
testAnd()340
setUp()246
testOr()226
<init>()13

org.jxref.search.TestStringSearchCriteria

MethodSignatureMcCabe ComplexityNbr JVM Instructions
<init>()13
testIncludeValue()147

org.jxref.sequence.CalledMethod

MethodSignatureMcCabe ComplexityNbr JVM Instructions
<init>(org.jxref.inspector.MethodDescriptor, org.jxref.sequence.CalledMethod, int, int, org.jxref.search.MethodFilter)581
emitXmlTag(int)319
<clinit>()220
emitXmlTagWithChildren(int)269
emitXmlTagWithoutChildren(int)140
getCalledMethod()13
getMethodDesc()13

org.jxref.sequence.MethodSequenceFlow

MethodSignatureMcCabe ComplexityNbr JVM Instructions
<init>(org.jxref.inspector.MethodDefinition, int, org.jxref.search.MethodFilter)224
emitXmlTag(int)277
<init>(org.jxref.inspector.MethodDefinition, org.jxref.search.MethodFilter)111

org.jxref.util.CollectionUtility

MethodSignatureMcCabe ComplexityNbr JVM Instructions
intersect(java.util.Set, java.util.Set)535
<init>()13

org.jxref.util.Logger

MethodSignatureMcCabe ComplexityNbr JVM Instructions
<init>(java.lang.String)113
debug(java.lang.String, java.lang.Throwable)16
error(java.lang.String)15
fatal(java.lang.String, java.lang.Throwable)16
info(java.lang.String, java.lang.Throwable)16
isDebugEnabled()14
trace(java.lang.String)15
warning(java.lang.String, java.lang.Throwable)16

org.jxref.util.TestCollectionUtility

MethodSignatureMcCabe ComplexityNbr JVM Instructions
testIntersect()674
<init>()13

org.jxref.util.Validator

MethodSignatureMcCabe ComplexityNbr JVM Instructions
argNotEmpty(java.lang.String, java.lang.String)222
argNotNull(java.lang.Object, java.lang.String)216
<init>()13

testclasses.MyCalledClass

MethodSignatureMcCabe ComplexityNbr JVM Instructions
executeMe()217
<init>()13

testclasses.MyCallingClass

MethodSignatureMcCabe ComplexityNbr JVM Instructions
<init>()13
doMe()15

testclasses.MyFactory

MethodSignatureMcCabe ComplexityNbr JVM Instructions
<init>()13
getMe()14

testclasses.MyInterface

MethodSignatureMcCabe ComplexityNbr JVM Instructions
executeMe()10

testclasses.MyNastyClass

MethodSignatureMcCabe ComplexityNbr JVM Instructions
<init>()13

testclasses.MyNastyClass$Inner1

MethodSignatureMcCabe ComplexityNbr JVM Instructions
<init>(testclasses.MyNastyClass)16
toString()19

testclasses.MyNastyClass$Inner2

MethodSignatureMcCabe ComplexityNbr JVM Instructions
<init>(testclasses.MyNastyClass)16

testclasses.MyNastyClass$Inner2$Inner3

MethodSignatureMcCabe ComplexityNbr JVM Instructions
<init>(testclasses.MyNastyClass$Inner2)16

Glossary

This section contains a term definitions.

Summary Statistics Definitions

Number of Packages

The number of java packages defined in the code analyzed. This is a crude size metric.

Number of Classes

The number of java classes defined in the code analyzed. This is a size metric.

Number of Methods

The number of java methods (public, protected, and private) defined in the code analyzed. This is a size metric.

Number of JVM Instructions

The number of machine-language like instructions present in the code analyzed. This is a size metric. This is offered as in liu of 'Lines of Code'. While the number of instructions will not equal the number of lines of code, larger code bases will have a larger number of instructions in most cases.

Average Class Complexity (Avg WMC)

The average McCabe complexity per class. This is sometimes known as the Weighted Methods per Class (Complexity).

Number of Classes with WMC>50

Considered an indicator of classes which may need refactoring.

Cumulative Complexity (Total WMC)

Sum of the WMC for all classes.

Percentage of Classes with WMC>50

The percentage of classes for which the WMC metric indicates may be in need of refactoring.

Average McCabe Complexity (method level)

The average McCabe complexity per method. Useful for comparing metrics between applications.

Minimum method McCabe Complexity

The minimum McCabe complexity metric at a method level in the applications. this is typically 1.

Maximum method McCabe Complexity

The maximum McCabe complexity metric at a method level in the applications.

Number of methods with McCabe Complexity > 10

This is considered an indicator that a method may need to be refactored.

General Definitions

McCabe Complexity

The McCabe complexity metric measures the number of conditions present in a unit of code (e.g. method, class). Conditions can be found in if, while, for, and switch statements among others. The minimum McCabe complexity metric is one. Each condition adds one to the McCabe complexity metric. Higher McCabe complexity metrics indicate larger amounts of conditional logic and code complexity.

You can think of this metric as the minimum number of test conditions present in a unit of code. For example, a method with one if statement with a single condition will have a complexity metric of 2. This unit of code has a minimum of two test cases (if the condition is met/not met) to ensure that all lines of code are executed at least once. It is possible that it has more than two as some input could make one of the execution paths except.

The creator of this metric considers a McCabe complexity of 10 to be the point at which a unit of code needs to be refactored and simplified. This is a somewhat arbitrary choice. Some papers place the alarm threshold at 20 rather than 10.

More information about the McCabe metric can be obtained from here.

Avg Complexity

The average method-level McCabe complexity metric for a class, package, or application code base. See McCabe Complexity.

Max Complexity

The maximum method-level McCabe complexity metric for a class, package, or application code base. See McCabe Complexity.

Cumulative Complexity (WMC)

The sum of all method-level McCabe complexity metrics for a given class. This is sometimes known as the Weighted Methods per Class (or WMC) metric.

Chidamber and Kemerer expanded on McCabe's complexity metric in the early 90's. One of their six metrics for object-oriented systems is the Weighted Methods per Class (WMC) metric, which essentially McCabe complexity metrics summed to a class level.

Classes with a WMC >= 50 may need to be refactored and simplified. See McCabe Complexity

More information about Chidamber and Kemerer's work and the WMC metric can be obtained from here.

Complexity / Class [WMC] -- (average, maximum, cumulative)

Class level complexity (WMC) metric statistics. See Cumulative Complexity (WMC)

JVM Instructions (Number of, average, minimum, maximum)

This is the number of Java Virtual Machine instructions present in a unit of code (e.g. method, class). It's a size metric provided to give you a relative measurement of application size that can be used to compare with other Java applications. All size metrics have limitations, and the number of JVM instructions is no exception. These limitations include the following:

  • It is less intuitive than lines of code, but isn't influenced as much by coding styles, line breaks, etc.
  • May differ slightly for different Java compilers (e.g. the JVM commands generated by one compiler may differ slightly from another).
  • Some language constructs (e.g. the '+' operator for string concantonation) may generate a larger number of JVM commands than you would expect given the amount of source code. The number of constructs with this issue is small and the distortion introduced by them within the context of an entire application will be small and immaterial for most applications.