Fork me on GitHub

PMD Results

The following document contains the results of PMD 5.3.5.

Files

fr/paris/lutece/plugins/workflow/modules/notifydirectory/business/ResourceKeyDAO.java

Violation Line
Use block level rather than method level synchronization 63–77

fr/paris/lutece/plugins/workflow/modules/notifydirectory/business/TaskNotifyDirectoryConfig.java

Violation Line
Too many fields 49–471

fr/paris/lutece/plugins/workflow/modules/notifydirectory/business/TaskNotifyDirectoryConfigDAO.java

Violation Line
Use block level rather than method level synchronization 69–100

fr/paris/lutece/plugins/workflow/modules/notifydirectory/service/INotifyDirectoryService.java

Violation Line
Rather than using a lot of String arguments, consider using a container object for those values. 225–226

fr/paris/lutece/plugins/workflow/modules/notifydirectory/service/NotifyDirectoryPlugin.java

Violation Line
All methods are static. Consider using a utility class instead. Alternatively, you could add a private constructor or make the class abstract to silence this warning. 47–59

fr/paris/lutece/plugins/workflow/modules/notifydirectory/service/NotifyDirectoryService.java

Violation Line
A high number of imports can indicate a high degree of coupling within an object. 34–1007
Possible God class (WMC=128, ATFD=258, TCC=0.0) 34–1007
The class 'NotifyDirectoryService' has a Modified Cyclomatic Complexity of 4 (Highest = 14). 108–1007
The class 'NotifyDirectoryService' has a Cyclomatic Complexity of 5 (Highest = 25). 108–1007
The class 'NotifyDirectoryService' has a Standard Cyclomatic Complexity of 4 (Highest = 14). 108–1007
Private field '_listAcceptedEntryTypesEmailSMS' could be made final; it is only initialized in the declaration or constructor. 127
Private field '_listAcceptedEntryTypesUserGuid' could be made final; it is only initialized in the declaration or constructor. 128
Private field '_listRefusedEntryTypes' could be made final; it is only initialized in the declaration or constructor. 129
Private field '_listAcceptedEntryTypesFile' could be made final; it is only initialized in the declaration or constructor. 130
The method 'sendMessage' has a Cyclomatic Complexity of 16. 515–579
Rather than using a lot of String arguments, consider using a container object for those values. 515–516
The method sendMessage() has an NPath complexity of 450 515–579
Substitute calls to size() == 0 (or size() != 0, size() > 0, size() < 1) with calls to isEmpty() 521
Substitute calls to size() == 0 (or size() != 0, size() > 0, size() < 1) with calls to isEmpty() 547
Substitute calls to size() == 0 (or size() != 0, size() > 0, size() < 1) with calls to isEmpty() 568
Avoid really long methods. 585–754
The method 'fillModel' has a Cyclomatic Complexity of 25. 585–754
The method 'fillModel' has a Modified Cyclomatic Complexity of 14. 585–754
The method fillModel() has an NPath complexity of 4704 585–754
The method 'fillModel' has a Standard Cyclomatic Complexity of 14. 585–754
If you run in Java5 or newer and have concurrent access, you should use the ConcurrentHashMap implementation 588
Unnecessary use of fully qualified name 'fr.paris.lutece.plugins.directory.business.EntryTypeGeolocation' due to existing import 'fr.paris.lutece.plugins.directory.business.EntryTypeGeolocation' 611
Unnecessary use of fully qualified name 'fr.paris.lutece.plugins.directory.business.EntryTypeGeolocation' due to existing import 'fr.paris.lutece.plugins.directory.business.EntryTypeGeolocation' 619
If you run in Java5 or newer and have concurrent access, you should use the ConcurrentHashMap implementation 682
If you run in Java5 or newer and have concurrent access, you should use the ConcurrentHashMap implementation 688
Unnecessary use of fully qualified name 'java.util.UUID.randomUUID' due to existing import 'java.util.UUID' 702
If you run in Java5 or newer and have concurrent access, you should use the ConcurrentHashMap implementation 727
If you run in Java5 or newer and have concurrent access, you should use the ConcurrentHashMap implementation 735
The method 'getFiles' has a Cyclomatic Complexity of 12. 838–892
The method fillModelWithUserAttributes() has an NPath complexity of 627 935–954
StringBuffer (or StringBuilder).append is called consecutively without reusing the target variable. 968
StringBuffer (or StringBuilder).append is called consecutively without reusing the target variable. 969
StringBuffer (or StringBuilder).append is called consecutively without reusing the target variable. 970
StringBuffer (or StringBuilder).append is called consecutively without reusing the target variable. 971–972
StringBuffer (or StringBuilder).append is called consecutively without reusing the target variable. 973

fr/paris/lutece/plugins/workflow/modules/notifydirectory/service/TaskNotifyDirectory.java

Violation Line
The class 'TaskNotifyDirectory' has a Cyclomatic Complexity of 5 (Highest = 10). 70–185
The method 'processTask' has a Cyclomatic Complexity of 10. 89–159
Deeply nested if..then statements are hard to read 107–156
Avoid variables with short names like t 142

fr/paris/lutece/plugins/workflow/modules/notifydirectory/service/taskinfo/NotifyDirectoryTaskInfoProvider.java

Violation Line
Avoid variables with short names like t 119

fr/paris/lutece/plugins/workflow/modules/notifydirectory/utils/TaskNotifyDirectoryUtils.java

Violation Line
Avoid declaring a variable if it is unreferenced before a possible exit point. 119
Substitute calls to size() == 0 (or size() != 0, size() > 0, size() < 1) with calls to isEmpty() 128

fr/paris/lutece/plugins/workflow/modules/notifydirectory/utils/constants/NotifyDirectoryConstants.java

Violation Line
Avoid variables with short names like ID 51

fr/paris/lutece/plugins/workflow/modules/notifydirectory/web/NotifyDirectoryApp.java

Violation Line
A high number of imports can indicate a high degree of coupling within an object. 34–190
Private field '_resourceKeyService' could be made final; it is only initialized in the declaration or constructor. 93
Private field '_taskService' could be made final; it is only initialized in the declaration or constructor. 94
Private field '_taskNotifyDirectoryConfigService' could be made final; it is only initialized in the declaration or constructor. 95
Private field '_stateService' could be made final; it is only initialized in the declaration or constructor. 96
Private field '_actionService' could be made final; it is only initialized in the declaration or constructor. 97
Private field '_resourceHistoryService' could be made final; it is only initialized in the declaration or constructor. 98
Private field '_resourceWorkflowService' could be made final; it is only initialized in the declaration or constructor. 99
Avoid unused method parameters such as 'session'. 128
If you run in Java5 or newer and have concurrent access, you should use the ConcurrentHashMap implementation 132

fr/paris/lutece/plugins/workflow/modules/notifydirectory/web/NotifyDirectoryTaskComponent.java

Violation Line
A high number of imports can indicate a high degree of coupling within an object. 34–365
The class 'NotifyDirectoryTaskComponent' has a Modified Cyclomatic Complexity of 8 (Highest = 29). 77–365
The class 'NotifyDirectoryTaskComponent' has a Standard Cyclomatic Complexity of 8 (Highest = 29). 77–365
The class 'NotifyDirectoryTaskComponent' has a Cyclomatic Complexity of 12 (Highest = 41). 77–365
The method 'doSaveConfig' has a Standard Cyclomatic Complexity of 29. 95–299
The method doSaveConfig() has an NPath complexity of 500000 95–299
The method 'doSaveConfig' has a Modified Cyclomatic Complexity of 29. 95–299
Avoid really long methods. 95–299
The method 'doSaveConfig' has a Cyclomatic Complexity of 41. 95–299
The method doSaveConfig() has an NCSS line count of 131 95–299
Avoid declaring a variable if it is unreferenced before a possible exit point. 119
Avoid declaring a variable if it is unreferenced before a possible exit point. 120
Avoid declaring a variable if it is unreferenced before a possible exit point. 127
If you run in Java5 or newer and have concurrent access, you should use the ConcurrentHashMap implementation 312