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.apache.myfaces.tobago.internal.component5036324221551133831
org.apache.myfaces.tobago.internal.taglib.component912501710211925491534
org.apache.myfaces.tobago.util1916513532510150332
org.apache.myfaces.tobago.context231969552912813463
org.apache.myfaces.tobago.internal.context149795584134225
org.apache.myfaces.tobago.renderkit221558263928366
org.apache.myfaces.tobago.component2015081892849388
org.apache.myfaces.tobago.internal.config10967075840174
org.apache.myfaces.tobago.internal.util149065673449245
org.apache.myfaces.tobago.internal.webapp912461341211150
org.apache.myfaces.tobago.model18135567103012301
org.apache.myfaces.tobago.layout2118152714425355
org.apache.myfaces.tobago.internal.layout10664045248187
org.apache.myfaces.tobago.internal.lifecycle1036378136326160
org.apache.myfaces.tobago.internal.taglib.declaration639834611350221048
org.apache.myfaces.tobago.renderkit.css460331433864
org.apache.myfaces.tobago.webapp7452792311711116
org.apache.myfaces.tobago.internal.ajax425277131167
org.apache.myfaces.tobago.renderkit.html5322775182107
org.apache.myfaces.tobago.internal.taglib33319700352
org.apache.myfaces.tobago.validator32316429560
org.apache.myfaces.tobago.convert4916113064
org.apache.myfaces.tobago.event731149272140
org.apache.myfaces.tobago.servlet27118230332
org.apache.myfaces.tobago.ajax198815216
org.apache.myfaces.tobago.el3206700136
org.apache.myfaces.tobago.internal.application195600416
org.apache.myfaces.tobago.config31336414064
org.apache.myfaces.tobago.application10200016
org.apache.myfaces.tobago.internal00100023
Classes totalMethods totalNCSS totalJavadocsJavadoc linesSingle lines commentMulti lines comment
44225181544051622375617632

Objects

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

TOP 30 classes containing the most NCSS.

ObjectNCSSMethodsClassesJavadocs
org.apache.myfaces.tobago.util.ComponentUtils51368016
org.apache.myfaces.tobago.internal.component.AbstractUISheet3134501
org.apache.myfaces.tobago.internal.context.ResourceManagerImpl2882500
org.apache.myfaces.tobago.internal.component.AbstractUIGridLayout2482602
org.apache.myfaces.tobago.renderkit.css.Style2404600
org.apache.myfaces.tobago.internal.taglib.component.GridLayoutConstraintTag23989023
org.apache.myfaces.tobago.internal.component.AbstractUITreeData2353412
org.apache.myfaces.tobago.internal.context.ResourceLocator2061002
org.apache.myfaces.tobago.util.LayoutInfo1782201
org.apache.myfaces.tobago.context.Markup1751401
org.apache.myfaces.tobago.internal.component.AbstractUISheetLayout1711301
org.apache.myfaces.tobago.component.Attributes168001
org.apache.myfaces.tobago.internal.config.TobagoConfigImpl1662301
org.apache.myfaces.tobago.internal.component.AbstractUITreeNode1654102
org.apache.myfaces.tobago.internal.util.FacesContextUtils1452800
org.apache.myfaces.tobago.internal.webapp.TobagoResponseWriterBase1423401
org.apache.myfaces.tobago.context.ThemeImpl1412700
org.apache.myfaces.tobago.internal.component.AbstractUITabGroup1393103
org.apache.myfaces.tobago.renderkit.html.StyleClasses1353014
org.apache.myfaces.tobago.component.UIViewRoot1321300
org.apache.myfaces.tobago.internal.component.AbstractUIPage1142502
org.apache.myfaces.tobago.internal.util.HtmlWriterUtils112702
org.apache.myfaces.tobago.internal.config.TobagoConfigSorter1121110
org.apache.myfaces.tobago.internal.ajax.AjaxResponseRenderer112800
org.apache.myfaces.tobago.internal.lifecycle.RestoreViewExecutor110702
org.apache.myfaces.tobago.internal.ajax.AjaxInternalUtils1071400
org.apache.myfaces.tobago.internal.taglib.TagUtils1042000
org.apache.myfaces.tobago.context.UserAgent1021103
org.apache.myfaces.tobago.component.Sorter100600
org.apache.myfaces.tobago.internal.component.AbstractUIWizard971900

TOP 30 classes containing the most methods.

ObjectNCSSMethodsClassesJavadocs
org.apache.myfaces.tobago.internal.taglib.component.GridLayoutConstraintTag23989023
org.apache.myfaces.tobago.util.ComponentUtils51368016
org.apache.myfaces.tobago.renderkit.css.Style2404600
org.apache.myfaces.tobago.internal.component.AbstractUISheet3134501
org.apache.myfaces.tobago.internal.component.AbstractUITreeNode1654102
org.apache.myfaces.tobago.internal.component.AbstractUITreeData2353412
org.apache.myfaces.tobago.internal.webapp.TobagoResponseWriterBase1423401
org.apache.myfaces.tobago.layout.LayoutBase333201
org.apache.myfaces.tobago.component.UIInput333201
org.apache.myfaces.tobago.internal.component.AbstractUITabGroup1393103
org.apache.myfaces.tobago.component.UIOutput333101
org.apache.myfaces.tobago.component.UILinkCommand333101
org.apache.myfaces.tobago.renderkit.html.StyleClasses1353014
org.apache.myfaces.tobago.internal.util.FacesContextUtils1452800
org.apache.myfaces.tobago.webapp.TobagoResponseWriter6428018
org.apache.myfaces.tobago.internal.config.TobagoConfigFragment742703
org.apache.myfaces.tobago.context.ThemeImpl1412700
org.apache.myfaces.tobago.internal.component.AbstractUIGridLayout2482602
org.apache.myfaces.tobago.internal.component.AbstractUIPopup892600
org.apache.myfaces.tobago.internal.component.AbstractUIPage1142502
org.apache.myfaces.tobago.internal.context.ResourceManagerImpl2882500
org.apache.myfaces.tobago.layout.Measure792406
org.apache.myfaces.tobago.internal.config.TobagoConfigImpl1662301
org.apache.myfaces.tobago.renderkit.LayoutComponentRenderer232200
org.apache.myfaces.tobago.renderkit.AbstractLayoutableRendererBaseWrapper452200
org.apache.myfaces.tobago.renderkit.LayoutComponentRendererBase502200
org.apache.myfaces.tobago.util.LayoutInfo1782201
org.apache.myfaces.tobago.context.ClientProperties862208
org.apache.myfaces.tobago.layout.LayoutTokens892100
org.apache.myfaces.tobago.internal.webapp.DebugResponseWriterWrapper672101

Averages.

NCSS averageProgram NCSSClasses averageMethods averageJavadocs average
27.8215,440.000.025.701.17

Methods

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

TOP 30 Methods containing the most NCSS.

MethodsNCSSCCNJavadocs
org.apache.myfaces.tobago.internal.taglib.component.GridLayoutConstraintTag.doStartTag()148650
org.apache.myfaces.tobago.renderkit.css.Style.encode()87220
org.apache.myfaces.tobago.component.Sorter.perform(SortActionEvent)68310
org.apache.myfaces.tobago.internal.component.AbstractUIGridLayout.mainProcessing(Orientation)62220
org.apache.myfaces.tobago.renderkit.SelectManyRendererBase.getConvertedUISelectManyValue(FacesContext,UISelectMany,String[])55370
org.apache.myfaces.tobago.internal.component.AbstractUISheet.performPaging(PageActionEvent)53180
org.apache.myfaces.tobago.internal.component.AbstractUIGridLayout.preProcessing(Orientation)51210
org.apache.myfaces.tobago.internal.lifecycle.RestoreViewExecutor.execute(FacesContext)51210
org.apache.myfaces.tobago.internal.webapp.TobagoMultipartFormdataRequest.init(HttpServletRequest,String,long)50150
org.apache.myfaces.tobago.internal.context.ResourceManagerImpl.getPaths(ClientPropertiesKey,String,String,String,String,boolean,boolean,boolean,String,boolean,boolean)48370
org.apache.myfaces.tobago.internal.component.AbstractUISheetLayout.ensureColumnWidthList(FacesContext,AbstractUISheet)46160
org.apache.myfaces.tobago.internal.config.TobagoConfigParser.configure()4110
org.apache.myfaces.tobago.internal.context.ResourceLocator.addResources(ResourceManagerImpl,URL,String,int)40140
org.apache.myfaces.tobago.context.UserAgent.getInstance(String)39270
org.apache.myfaces.tobago.internal.layout.LayoutContext.layout()37120
org.apache.myfaces.tobago.internal.taglib.component.ConverterTag.doStartTag()36211
org.apache.myfaces.tobago.internal.util.HtmlWriterUtils.writeEncodedValue(length[],int,int,boolean)36140
org.apache.myfaces.tobago.renderkit.TobagoResponseStateManager.writeState(FacesContext,StateManager.SerializedView)3570
org.apache.myfaces.tobago.renderkit.TobagoRenderKit.createResponseWriter(Writer,String,String)34150
org.apache.myfaces.tobago.internal.taglib.component.AttributeTag.doStartTag()34161
org.apache.myfaces.tobago.internal.ajax.AjaxResponseRenderer.writeResponse(FacesContext,RenderKit,boolean)3360
org.apache.myfaces.tobago.internal.context.ResourceLocator.locateResourcesInWar(ServletContext,ResourceManagerImpl,String)33170
org.apache.myfaces.tobago.internal.util.HtmlWriterUtils.writeDecRef(char)3251
org.apache.myfaces.tobago.internal.component.AbstractUIGridLayout.postProcessing(Orientation)32140
org.apache.myfaces.tobago.convert.DurationConverter.getUnitFactor(UIComponent)32100
org.apache.myfaces.tobago.component.UIViewRoot.broadcastForPhase(PhaseId)31140
org.apache.myfaces.tobago.util.DebugPhaseListener.beforePhase(PhaseEvent)30140
org.apache.myfaces.tobago.util.LayoutInfo.parseColumnLayout(double,int)30120
org.apache.myfaces.tobago.internal.taglib.component.TabChangeListenerTag.doStartTag()30201
org.apache.myfaces.tobago.internal.component.AbstractUISheetLayout.needVerticalScrollbar(FacesContext,AbstractUISheet)30140

Averages.

Program NCSSNCSS averageCCN averageJavadocs average
15,440.004.222.110.14

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).