JavaNCSS Metric Results

[ package ] [ object ] [ method ] [ explanation ]

The following document contains the results of a JavaNCSS metric analysis, using JavaNCSS version 32.53.
JavaNCSS web site.

Packages

[ package ] [ object ] [ method ] [ explanation ]

Packages sorted by NCSS.

PackageClassesMethodsNCSSJavadocsJavadoc linesSingle lines commentMulti lines comment
org.slasoi.gslam.syntaxconverter.webservice231501830107503175135
org.slasoi.businessManager.control2479427062
org.slasoi.businessManager.track1260213439
org.slasoi.businessManager.track.internal131700031
org.slasoi.businessManager.track.interfaces127213031
Classes totalMethods totalNCSS totalJavadocsJavadoc linesSingle lines commentMulti lines comment
281611993115556179298

Objects

[ package ] [ object ] [ method ] [ explanation ]

TOP 30 classes containing the most NCSS.

ObjectNCSSMethodsClassesJavadocs
org.slasoi.gslam.syntaxconverter.webservice.ControlStub181622999
org.slasoi.gslam.syntaxconverter.webservice.ControlStub.Policy31220218
org.slasoi.gslam.syntaxconverter.webservice.ControlStub.SetPolicies28618216
org.slasoi.gslam.syntaxconverter.webservice.ControlStub.Context26918216
org.slasoi.gslam.syntaxconverter.webservice.ControlStub.GetPoliciesResponse24416214
org.slasoi.gslam.syntaxconverter.webservice.ControlStub.GetPolicies18914212
org.slasoi.gslam.syntaxconverter.webservice.ControlStub.SetPoliciesResponse18614212
org.slasoi.gslam.syntaxconverter.webservice.ControlStub.Policy.Factory71101
org.slasoi.gslam.syntaxconverter.webservice.ControlStub.SetPolicies.Factory71101
org.slasoi.businessManager.control.ControlClient66202
org.slasoi.gslam.syntaxconverter.webservice.ControlStub.GetPoliciesResponse.Factory60101
org.slasoi.gslam.syntaxconverter.webservice.ControlStub.Context.Factory59101
org.slasoi.gslam.syntaxconverter.webservice.ControlStub.org.apache.axis2.client.async.AxisCallback48400
org.slasoi.gslam.syntaxconverter.webservice.ControlStub.org.apache.axis2.client.async.AxisCallback48400
org.slasoi.businessManager.track.Track47202
org.slasoi.gslam.syntaxconverter.webservice.ControlStub.GetPolicies.Factory40101
org.slasoi.gslam.syntaxconverter.webservice.ControlStub.SetPoliciesResponse.Factory37101
org.slasoi.gslam.syntaxconverter.webservice.ControlCallbackHandler12708
org.slasoi.businessManager.track.internal.Activator10300
org.slasoi.gslam.syntaxconverter.webservice.ControlStub.ExtensionMapper7100
org.slasoi.businessManager.control.IControlClient3202
org.slasoi.businessManager.track.interfaces.ITrack3202
org.slasoi.gslam.syntaxconverter.webservice.ControlStub.Context.org.apache.axis2.databinding.ADBDataSource2100
org.slasoi.gslam.syntaxconverter.webservice.ControlStub.GetPolicies.org.apache.axis2.databinding.ADBDataSource2100
org.slasoi.gslam.syntaxconverter.webservice.ControlStub.GetPoliciesResponse.org.apache.axis2.databinding.ADBDataSource2100
org.slasoi.gslam.syntaxconverter.webservice.ControlStub.Policy.org.apache.axis2.databinding.ADBDataSource2100
org.slasoi.gslam.syntaxconverter.webservice.ControlStub.SetPolicies.org.apache.axis2.databinding.ADBDataSource2100
org.slasoi.gslam.syntaxconverter.webservice.ControlStub.SetPoliciesResponse.org.apache.axis2.databinding.ADBDataSource2100

TOP 30 classes containing the most methods.

ObjectNCSSMethodsClassesJavadocs
org.slasoi.gslam.syntaxconverter.webservice.ControlStub181622999
org.slasoi.gslam.syntaxconverter.webservice.ControlStub.Policy31220218
org.slasoi.gslam.syntaxconverter.webservice.ControlStub.Context26918216
org.slasoi.gslam.syntaxconverter.webservice.ControlStub.SetPolicies28618216
org.slasoi.gslam.syntaxconverter.webservice.ControlStub.GetPoliciesResponse24416214
org.slasoi.gslam.syntaxconverter.webservice.ControlStub.GetPolicies18914212
org.slasoi.gslam.syntaxconverter.webservice.ControlStub.SetPoliciesResponse18614212
org.slasoi.gslam.syntaxconverter.webservice.ControlCallbackHandler12708
org.slasoi.gslam.syntaxconverter.webservice.ControlStub.org.apache.axis2.client.async.AxisCallback48400
org.slasoi.gslam.syntaxconverter.webservice.ControlStub.org.apache.axis2.client.async.AxisCallback48400
org.slasoi.businessManager.track.internal.Activator10300
org.slasoi.businessManager.control.ControlClient66202
org.slasoi.businessManager.control.IControlClient3202
org.slasoi.businessManager.track.interfaces.ITrack3202
org.slasoi.businessManager.track.Track47202
org.slasoi.gslam.syntaxconverter.webservice.ControlStub.Context.Factory59101
org.slasoi.gslam.syntaxconverter.webservice.ControlStub.Context.org.apache.axis2.databinding.ADBDataSource2100
org.slasoi.gslam.syntaxconverter.webservice.ControlStub.ExtensionMapper7100
org.slasoi.gslam.syntaxconverter.webservice.ControlStub.GetPolicies.Factory40101
org.slasoi.gslam.syntaxconverter.webservice.ControlStub.GetPolicies.org.apache.axis2.databinding.ADBDataSource2100
org.slasoi.gslam.syntaxconverter.webservice.ControlStub.GetPoliciesResponse.Factory60101
org.slasoi.gslam.syntaxconverter.webservice.ControlStub.GetPoliciesResponse.org.apache.axis2.databinding.ADBDataSource2100
org.slasoi.gslam.syntaxconverter.webservice.ControlStub.Policy.Factory71101
org.slasoi.gslam.syntaxconverter.webservice.ControlStub.Policy.org.apache.axis2.databinding.ADBDataSource2100
org.slasoi.gslam.syntaxconverter.webservice.ControlStub.SetPolicies.Factory71101
org.slasoi.gslam.syntaxconverter.webservice.ControlStub.SetPolicies.org.apache.axis2.databinding.ADBDataSource2100
org.slasoi.gslam.syntaxconverter.webservice.ControlStub.SetPoliciesResponse.Factory37101
org.slasoi.gslam.syntaxconverter.webservice.ControlStub.SetPoliciesResponse.org.apache.axis2.databinding.ADBDataSource2100

Averages.

NCSS averageProgram NCSSClasses averageMethods averageJavadocs average
139.141,993.000.755.757.46

Methods

[ package ] [ object ] [ method ] [ explanation ]

TOP 30 Methods containing the most NCSS.

MethodsNCSSCCNJavadocs
org.slasoi.gslam.syntaxconverter.webservice.ControlStub.Policy.serialize(javax.xml.namespace.QName,org.apache.axiom.om.OMFactory,org.apache.axis2.databinding.utils.writer.MTOMAwareXMLStreamWriter,boolean)96250
org.slasoi.gslam.syntaxconverter.webservice.ControlStub.Context.serialize(javax.xml.namespace.QName,org.apache.axiom.om.OMFactory,org.apache.axis2.databinding.utils.writer.MTOMAwareXMLStreamWriter,boolean)78210
org.slasoi.gslam.syntaxconverter.webservice.ControlStub.SetPolicies.serialize(javax.xml.namespace.QName,org.apache.axiom.om.OMFactory,org.apache.axis2.databinding.utils.writer.MTOMAwareXMLStreamWriter,boolean)77200
org.slasoi.gslam.syntaxconverter.webservice.ControlStub.SetPolicies.Factory.parse(javax.xml.stream.XMLStreamReader)70351
org.slasoi.gslam.syntaxconverter.webservice.ControlStub.Policy.Factory.parse(javax.xml.stream.XMLStreamReader)70371
org.slasoi.gslam.syntaxconverter.webservice.ControlStub.startsetPolicies(org.slasoi.gslam.syntaxconverter.webservice.ControlStub.SetPolicies,org.slasoi.gslam.syntaxconverter.webservice.ControlCallbackHandler)6531
org.slasoi.gslam.syntaxconverter.webservice.ControlStub.startgetPolicies(org.slasoi.gslam.syntaxconverter.webservice.ControlStub.GetPolicies,org.slasoi.gslam.syntaxconverter.webservice.ControlCallbackHandler)6531
org.slasoi.gslam.syntaxconverter.webservice.ControlStub.GetPoliciesResponse.serialize(javax.xml.namespace.QName,org.apache.axiom.om.OMFactory,org.apache.axis2.databinding.utils.writer.MTOMAwareXMLStreamWriter,boolean)59160
org.slasoi.gslam.syntaxconverter.webservice.ControlStub.GetPoliciesResponse.Factory.parse(javax.xml.stream.XMLStreamReader)59291
org.slasoi.gslam.syntaxconverter.webservice.ControlStub.Context.Factory.parse(javax.xml.stream.XMLStreamReader)58311
org.slasoi.gslam.syntaxconverter.webservice.ControlStub.setPolicies(org.slasoi.gslam.syntaxconverter.webservice.ControlStub.SetPolicies)48201
org.slasoi.gslam.syntaxconverter.webservice.ControlStub.getPolicies(org.slasoi.gslam.syntaxconverter.webservice.ControlStub.GetPolicies)48201
org.slasoi.gslam.syntaxconverter.webservice.ControlStub.SetPoliciesResponse.serialize(javax.xml.namespace.QName,org.apache.axiom.om.OMFactory,org.apache.axis2.databinding.utils.writer.MTOMAwareXMLStreamWriter,boolean)42130
org.slasoi.gslam.syntaxconverter.webservice.ControlStub.GetPolicies.serialize(javax.xml.namespace.QName,org.apache.axiom.om.OMFactory,org.apache.axis2.databinding.utils.writer.MTOMAwareXMLStreamWriter,boolean)42120
org.slasoi.gslam.syntaxconverter.webservice.ControlStub.GetPolicies.Factory.parse(javax.xml.stream.XMLStreamReader)39211
org.slasoi.gslam.syntaxconverter.webservice.ControlStub.SetPoliciesResponse.Factory.parse(javax.xml.stream.XMLStreamReader)36191
org.slasoi.gslam.syntaxconverter.webservice.ControlStub.org.apache.axis2.client.async.AxisCallback.onError(java.lang.Exception)35110
org.slasoi.gslam.syntaxconverter.webservice.ControlStub.org.apache.axis2.client.async.AxisCallback.onError(java.lang.Exception)35110
org.slasoi.businessManager.control.ControlClient.getPolicies(String,String)3281
org.slasoi.businessManager.control.ControlClient.setPolicies(String,org.slasoi.gslam.core.control.Policy[],String)3271
org.slasoi.businessManager.track.Track.trackEvent(AdjustmentNotificationType[])2671
org.slasoi.gslam.syntaxconverter.webservice.ControlStub.SetPoliciesResponse.writeQNames(javax.xml.namespace.QName[],javax.xml.stream.XMLStreamWriter)2280
org.slasoi.gslam.syntaxconverter.webservice.ControlStub.GetPolicies.writeQNames(javax.xml.namespace.QName[],javax.xml.stream.XMLStreamWriter)2280
org.slasoi.gslam.syntaxconverter.webservice.ControlStub.SetPolicies.writeQNames(javax.xml.namespace.QName[],javax.xml.stream.XMLStreamWriter)2280
org.slasoi.gslam.syntaxconverter.webservice.ControlStub.Context.writeQNames(javax.xml.namespace.QName[],javax.xml.stream.XMLStreamWriter)2280
org.slasoi.gslam.syntaxconverter.webservice.ControlStub.GetPoliciesResponse.writeQNames(javax.xml.namespace.QName[],javax.xml.stream.XMLStreamWriter)2280
org.slasoi.gslam.syntaxconverter.webservice.ControlStub.Policy.writeQNames(javax.xml.namespace.QName[],javax.xml.stream.XMLStreamWriter)2280
org.slasoi.businessManager.track.Track.getCustomerPurchaseAuth(long,long)1941
org.slasoi.gslam.syntaxconverter.webservice.ControlStub.SetPolicies.getPullParser(javax.xml.namespace.QName)1971
org.slasoi.gslam.syntaxconverter.webservice.ControlStub.GetPoliciesResponse.getPullParser(javax.xml.namespace.QName)1651

Averages.

Program NCSSNCSS averageCCN averageJavadocs average
1,993.0012.474.450.67

Explanations

[ package ] [ object ] [ method ] [ explanation ]

Non Commenting Source Statements (NCSS)

Statements for JavaNCSS are not statements as specified in the Java Language Specification but include all kinds of declarations too. Roughly spoken, NCSS is approximately equivalent to counting ';' and '{' characters in Java source files.

Not counted are empty statements, empty blocks or semicolons after closing brackets. Of course, comments don't get counted too. Closing brackets also never get counted, the same applies to blocks in general.

Examples
Package declarationpackage java.lang;
Import declarationimport java.awt.*;
Class declaration
  • public class Foo {
  • public class Foo extends Bla {
Interface declarationpublic interface Able ; {
Field declaration
  • int a;
  • int a, b, c = 5, d = 6;
Method declaration
  • public void cry();
  • public void gib() throws DeadException {
Constructor declarationpublic Foo() {
Constructor invocation
  • this();
  • super();
Statement declaration
  • i = 0;
  • if (ok)
  • if (exit) {
  • if (3 == 4);
  • if (4 == 4) { ;
  • } else {
Label declarationfine :

In some cases consecutive semicolons are illegal according to the JLS but JavaNCSS still tolerates them (thought JavaNCSS is still more strict as 'javac'). Nevertheless they are never counted as two statements.

Cyclomatic Complexity Number (CCN)

CCN is also know as McCabe Metric. There exists a much hyped theory behind it based on graph theory, but it all comes down to simply counting 'if', 'for', 'while' statements etc. in a method. Whenever the control flow of a method splits, the "CCN counter" gets incremented by one.

Each method has a minimum value of 1 per default. For each of the following Java keywords/statements this value gets incremented by one:

  • if
  • for
  • while
  • case
  • catch

Also if the control flow of a method returns abortively the CCNvalue will be incremented by one:

  • if
  • for

An ordinary return at the end of method will not be counted.

Note that 'else', 'default', and 'finally' don't increment the CCN value any further. On the other hand, a simple method with a 'switch' statement and a huge block of 'case' statements can have a surprisingly high CCN value (still it has the same value when converting a 'switch' block to an equivalent sequence of 'if' statements).