Fork me on GitHub

JavaNCSS Metric Results

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

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

Packages

Packages

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

Packages sorted by NCSS.

Package Classes Methods NCSS Javadocs Javadoc lines Single lines comment Multi lines comment
fr.paris.lutece.plugins.form.web 13 157 3947 170 1283 204 477
fr.paris.lutece.plugins.form.business 42 371 1976 407 2277 45 1542
fr.paris.lutece.plugins.form.utils 7 99 1303 101 934 120 244
fr.paris.lutece.plugins.form.service 12 65 557 77 373 4 413
fr.paris.lutece.plugins.form.service.entrytype 20 83 551 100 376 13 685
fr.paris.lutece.plugins.form.business.portlet 8 37 276 45 227 19 266
fr.paris.lutece.plugins.form.modules.processornotifysender.business 5 30 243 35 191 11 165
fr.paris.lutece.plugins.form.business.rss 5 29 207 34 166 9 165
fr.paris.lutece.plugins.form.business.parameter 7 29 185 36 209 6 231
fr.paris.lutece.plugins.form.web.portlet 2 8 178 10 62 22 72
fr.paris.lutece.plugins.form.service.export 6 19 156 25 133 12 207
fr.paris.lutece.plugins.form.business.outputprocessor 8 28 121 36 201 3 264
fr.paris.lutece.plugins.form.business.iteration 2 22 120 23 126 7 66
fr.paris.lutece.plugins.form.modules.processornotifysender.service 2 10 103 12 74 6 72
fr.paris.lutece.plugins.form.business.exporttype 6 21 99 27 130 4 198
fr.paris.lutece.plugins.form.service.parameter 2 16 95 18 100 2 66
fr.paris.lutece.plugins.form.modules.processornotifysender.utils 2 8 91 10 72 10 66
fr.paris.lutece.plugins.form.service.daemon 2 3 62 5 26 0 66
fr.paris.lutece.plugins.form.service.validator 3 10 39 13 81 1 99
fr.paris.lutece.plugins.form.service.publication 2 3 38 5 20 2 66
fr.paris.lutece.plugins.form.service.draft 2 11 37 13 107 1 66
fr.paris.lutece.plugins.form.web.http 2 10 33 11 52 5 66
fr.paris.lutece.plugins.form.service.upload 1 5 19 6 20 0 33
Classes total Methods total NCSS total Javadocs Javadoc lines Single lines comment Multi lines comment
161 1074 10436 1219 7240 506 5595

Objects

Objects

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

TOP 30 classes containing the most NCSS.

Object NCSS Methods Classes Javadocs
fr.paris.lutece.plugins.form.web.FormJspBean 841 37 0 38
fr.paris.lutece.plugins.form.web.FormEntryJspBean 781 29 0 30
fr.paris.lutece.plugins.form.utils.FormUtils 671 52 0 53
fr.paris.lutece.plugins.form.web.FormApp 465 28 0 29
fr.paris.lutece.plugins.form.web.ModifyFormJspBean 441 19 0 20
fr.paris.lutece.plugins.form.utils.EntryTypeGroupUtils 365 34 0 34
fr.paris.lutece.plugins.form.business.FormDAO 342 12 0 13
fr.paris.lutece.plugins.form.web.FormAdvancedParametersJspBean 249 8 0 9
fr.paris.lutece.plugins.form.business.FormSubmitDAO 228 13 0 14
fr.paris.lutece.plugins.form.business.Form 211 82 0 83
fr.paris.lutece.plugins.form.web.TestFormJspBean 186 8 0 9
fr.paris.lutece.plugins.form.web.ExportFormatJspBean 164 10 0 11
fr.paris.lutece.plugins.form.service.FormService 134 12 0 13
fr.paris.lutece.plugins.form.web.CategoryJspBean 133 9 0 10
fr.paris.lutece.plugins.form.modules.processornotifysender.business.ProcessorNotifySender 107 6 0 7
fr.paris.lutece.plugins.form.business.rss.FormResourceRss 99 11 0 12
fr.paris.lutece.plugins.form.service.entrytype.EntryTypeGroup 89 10 0 11
fr.paris.lutece.plugins.form.service.FormResourceIdService 86 4 0 5
fr.paris.lutece.plugins.form.business.ExportFormatDAO 81 7 0 8
fr.paris.lutece.plugins.form.business.iteration.IterationGroup 81 17 0 17
fr.paris.lutece.plugins.form.business.RecapDAO 80 5 0 6
fr.paris.lutece.plugins.form.web.DefaultMessageJspBean 78 3 0 4
fr.paris.lutece.plugins.form.business.parameter.FormParameterDAO 73 4 0 5
fr.paris.lutece.plugins.form.business.CategoryDAO 73 7 0 8
fr.paris.lutece.plugins.form.web.portlet.FormPortletJspBean 70 4 0 5
fr.paris.lutece.plugins.form.service.entrytype.EntryTypeMyLuteceUserAttribute 69 8 0 9
fr.paris.lutece.plugins.form.web.portlet.ListFormPortletJspBean 69 4 0 5
fr.paris.lutece.plugins.form.business.FormHome 67 13 0 14
fr.paris.lutece.plugins.form.service.parameter.FormParameterService 64 12 0 13
fr.paris.lutece.plugins.form.web.DoDownloadGraph 59 2 0 3

TOP 30 classes containing the most methods.

Object NCSS Methods Classes Javadocs
fr.paris.lutece.plugins.form.business.Form 211 82 0 83
fr.paris.lutece.plugins.form.utils.FormUtils 671 52 0 53
fr.paris.lutece.plugins.form.web.FormJspBean 841 37 0 38
fr.paris.lutece.plugins.form.utils.EntryTypeGroupUtils 365 34 0 34
fr.paris.lutece.plugins.form.web.FormEntryJspBean 781 29 0 30
fr.paris.lutece.plugins.form.web.FormApp 465 28 0 29
fr.paris.lutece.plugins.form.business.Recap 56 22 0 23
fr.paris.lutece.plugins.form.business.FormFilter 53 21 0 22
fr.paris.lutece.plugins.form.web.ModifyFormJspBean 441 19 0 20
fr.paris.lutece.plugins.form.business.iteration.IterationGroup 81 17 0 17
fr.paris.lutece.plugins.form.business.DefaultMessage 41 16 0 17
fr.paris.lutece.plugins.form.business.FormAction 38 15 0 16
fr.paris.lutece.plugins.form.business.FormHome 67 13 0 14
fr.paris.lutece.plugins.form.business.FormSubmitHome 29 13 0 14
fr.paris.lutece.plugins.form.business.FormSubmitDAO 228 13 0 14
fr.paris.lutece.plugins.form.business.ExportFormat 31 12 0 13
fr.paris.lutece.plugins.form.business.FormDAO 342 12 0 13
fr.paris.lutece.plugins.form.business.IFormSubmitDAO 13 12 0 13
fr.paris.lutece.plugins.form.service.parameter.FormParameterService 64 12 0 13
fr.paris.lutece.plugins.form.service.FormService 134 12 0 13
fr.paris.lutece.plugins.form.business.IFormDAO 12 11 0 12
fr.paris.lutece.plugins.form.business.portlet.FormPortlet 49 11 0 12
fr.paris.lutece.plugins.form.business.rss.FormResourceRss 99 11 0 12
fr.paris.lutece.plugins.form.business.Category 27 10 0 11
fr.paris.lutece.plugins.form.business.FormSubmit 26 10 0 11
fr.paris.lutece.plugins.form.service.entrytype.EntryTypeGroup 89 10 0 11
fr.paris.lutece.plugins.form.web.ExportFormatJspBean 164 10 0 11
fr.paris.lutece.plugins.form.service.IResponseService 10 9 0 10
fr.paris.lutece.plugins.form.service.ResponseService 35 9 0 10
fr.paris.lutece.plugins.form.service.OutputProcessorService 43 9 0 10

Averages.

NCSS average Program NCSS Classes average Methods average Javadocs average
54.89 10,436.00 0.00 6.67 7.57

Methods

Methods

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

TOP 30 Methods containing the most NCSS.

Methods NCSS CCN Javadocs
fr.paris.lutece.plugins.form.business.FormDAO.selectFormList(FormFilter,Plugin) 97 21 1
fr.paris.lutece.plugins.form.web.FormApp.getRecap(HttpServletRequest) 77 23 1
fr.paris.lutece.plugins.form.web.ModifyFormJspBean.getModifyForm(HttpServletRequest) 69 8 1
fr.paris.lutece.plugins.form.web.FormEntryJspBean.doChangeOrderEntry(HttpServletRequest) 63 20 1
fr.paris.lutece.plugins.form.web.FormAdvancedParametersJspBean.getFormAdvancedParametersData(HttpServletRequest,Form) 63 18 1
fr.paris.lutece.plugins.form.web.FormJspBean.doGenerateGraph(HttpServletRequest,HttpServletResponse) 63 17 1
fr.paris.lutece.plugins.form.web.FormJspBean.getResult(HttpServletRequest) 61 17 1
fr.paris.lutece.plugins.form.web.TestFormJspBean.doSubmitForm(HttpServletRequest) 60 22 1
fr.paris.lutece.plugins.form.web.FormJspBean.getManageForm(HttpServletRequest) 60 10 1
fr.paris.lutece.plugins.form.web.FormJspBean.doExportResult(HttpServletRequest,HttpServletResponse) 60 19 1
fr.paris.lutece.plugins.form.web.FormAdvancedParametersJspBean.getViewModifyFormAdvancedParameters(HttpServletRequest) 58 15 1
fr.paris.lutece.plugins.form.utils.FormUtils.getHtmlEntry(int,StringBuffer,Locale,boolean,HttpServletRequest,int) 57 22 1
fr.paris.lutece.plugins.form.web.FormJspBean.getRecapData(HttpServletRequest,Recap) 55 16 1
fr.paris.lutece.plugins.form.business.FormDAO.load(int,Plugin) 52 3 1
fr.paris.lutece.plugins.form.utils.FormUtils.getResponseEntry(HttpServletRequest,int,Plugin,FormSubmit,boolean,boolean,Locale,int) 51 17 1
fr.paris.lutece.plugins.form.service.FormResourceIdService.register() 51 1 1
fr.paris.lutece.plugins.form.web.FormEntryJspBean.moveDownEntryOrder(Plugin,int,Entry,int) 51 16 1
fr.paris.lutece.plugins.form.business.FormDAO.insert(Form,Plugin) 47 4 1
fr.paris.lutece.plugins.form.business.FormDAO.store(Form,Plugin) 44 4 1
fr.paris.lutece.plugins.form.web.FormEntryJspBean.moveUpEntryOrder(Plugin,int,Entry,int) 44 13 1
fr.paris.lutece.plugins.form.web.DoDownloadGraph.doGenerateGraph(HttpServletRequest,HttpServletResponse) 44 15 1
fr.paris.lutece.plugins.form.utils.FormUtils.getHtmlForm(Form,String,Locale,boolean,HttpServletRequest) 43 7 1
fr.paris.lutece.plugins.form.web.FormEntryJspBean.getModifyEntry(HttpServletRequest) 43 12 1
fr.paris.lutece.plugins.form.web.FormDashboardComponent.getDashboardData(AdminUser,HttpServletRequest) 43 9 1
fr.paris.lutece.plugins.form.web.FormApp.getForm(HttpServletRequest) 41 13 1
fr.paris.lutece.plugins.form.service.entrytype.EntryTypeMandatoryCheckBox.getResponseData(Entry,HttpServletRequest,Response,Locale) 39 13 1
fr.paris.lutece.plugins.form.utils.EntryTypeGroupUtils.orderResponseList(HttpServletRequest,Response) 38 13 1
fr.paris.lutece.plugins.form.web.TestFormJspBean.doExportResponses(HttpServletRequest) 38 14 1
fr.paris.lutece.plugins.form.business.FormSubmitDAO.selectStatisticFormSubmit(ResponseFilter,Plugin) 37 11 1
fr.paris.lutece.plugins.form.web.DefaultMessageJspBean.getDefaultMessageData(HttpServletRequest,DefaultMessage) 37 15 1

Averages.

Program NCSS NCSS average CCN average Javadocs average
10,436.00 7.06 2.59 0.99

Explanations

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 declaration package java.lang;
Import declaration import java.awt.*;
Class declaration
  • public class Foo {
  • public class Foo extends Bla {
Interface declaration public interface Able ; {
Field declaration
  • int a;
  • int a, b, c = 5, d = 6;
Method declaration
  • public void cry();
  • public void gib() throws DeadException {
Constructor declaration public Foo() {
Constructor invocation
  • this();
  • super();
Statement declaration
  • i = 0;
  • if (ok)
  • if (exit) {
  • if (3 == 4);
  • if (4 == 4) { ;
  • } else {
Label declaration fine :

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