Fork me on GitHub

Résultats PMD

Le document suivant contient les résultats de PMD 6.13.0.

Violations By Priority

Priority 1

fr/paris/lutece/plugins/crm/business/demand/Demand.java

Rule Violation Ligne
FormalParameterNamingConventions The method parameter name '_strRemoteId' doesn't match '[a-z][a-zA-Z0-9]*' 237

fr/paris/lutece/plugins/crm/business/demand/DemandType.java

Rule Violation Ligne
FormalParameterNamingConventions The method parameter name '_bUseIdCrmUser' doesn't match '[a-z][a-zA-Z0-9]*' 501
FormalParameterNamingConventions The method parameter name '_bNeedAuthentication' doesn't match '[a-z][a-zA-Z0-9]*' 521
FormalParameterNamingConventions The method parameter name '_bNeedValidation' doesn't match '[a-z][a-zA-Z0-9]*' 541

fr/paris/lutece/plugins/crm/business/portlet/DemandTypePortlet.java

Rule Violation Ligne
FormalParameterNamingConventions The method parameter name '_nIdCategory' doesn't match '[a-z][a-zA-Z0-9]*' 151

fr/paris/lutece/plugins/crm/business/user/CRMUser.java

Rule Violation Ligne
FormalParameterNamingConventions The method parameter name '_bMustBeUpdated' doesn't match '[a-z][a-zA-Z0-9]*' 235

fr/paris/lutece/plugins/crm/service/listener/CRMDemandTypeRemovalListenerService.java

Rule Violation Ligne
ClassWithOnlyPrivateConstructorsShouldBeFinal A class which only has private constructors should be final 44–86

fr/paris/lutece/plugins/crm/service/listener/CRMUserModificationListenerService.java

Rule Violation Ligne
ClassWithOnlyPrivateConstructorsShouldBeFinal A class which only has private constructors should be final 47–107

fr/paris/lutece/plugins/crm/util/constants/CRMConstants.java

Rule Violation Ligne
ClassNamingConventions The utility class name 'CRMConstants' doesn't match '[A-Z][a-zA-Z0-9]+(Utils?|Helper|Home|Service)' 41–237

Priority 2

fr/paris/lutece/plugins/crm/business/demand/DemandType.java

Rule Violation Ligne
BooleanInstantiation Avoid instantiating Boolean objects; reference Boolean.TRUE or Boolean.FALSE or call Boolean.valueOf() instead. 480
BooleanInstantiation Avoid instantiating Boolean objects; reference Boolean.TRUE or Boolean.FALSE or call Boolean.valueOf() instead. 481

Priority 3

fr/paris/lutece/plugins/crm/business/demand/DemandDAO.java

Rule Violation Ligne
TooManyMethods This class has too many methods, consider refactoring it. 53–502
MissingOverride The method 'newPrimaryKey(Plugin)' is missing an @Override annotation. 83–98
MissingOverride The method 'insert(Demand, Plugin)' is missing an @Override annotation. 103–129
AvoidSynchronizedAtMethodLevel Use block level rather than method level synchronization 103–129
MissingOverride The method 'load(int, Plugin)' is missing an @Override annotation. 134–159
MissingOverride The method 'store(Demand, Plugin)' is missing an @Override annotation. 197–218
MissingOverride The method 'delete(int, Plugin)' is missing an @Override annotation. 223–230
MissingOverride The method 'selectAll(Plugin)' is missing an @Override annotation. 235–259
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 237
MissingOverride The method 'selectByFilter(DemandFilter, IPaginationProperties, Plugin)' is missing an @Override annotation. 264–298
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 266
InefficientStringBuffering Avoid concatenating nonliterals in a StringBuffer/StringBuilder constructor or append(). 271
CyclomaticComplexity The method 'buildSQLQuery(DemandFilter)' has a cyclomatic complexity of 14. 307–398
NPathComplexity The method 'buildSQLQuery(DemandFilter)' has an NPath complexity of 960 307–398
AvoidLiteralsInIfCondition Avoid using Literals in Conditional Statements 417
SimpleDateFormatNeedsLocale When instantiating a SimpleDateFormat object, specify a Locale 452
ConsecutiveAppendsShouldReuse StringBuffer (or StringBuilder).append is called consecutively without reusing the target variable. 455
ConsecutiveAppendsShouldReuse StringBuffer (or StringBuilder).append is called consecutively without reusing the target variable. 468
ConsecutiveAppendsShouldReuse StringBuffer (or StringBuilder).append is called consecutively without reusing the target variable. 469
MissingOverride The method 'countByFilter(DemandFilter, Plugin)' is missing an @Override annotation. 480–501
ConsecutiveAppendsShouldReuse StringBuffer (or StringBuilder).append is called consecutively without reusing the target variable. 483
ConsecutiveAppendsShouldReuse StringBuffer (or StringBuilder).append is called consecutively without reusing the target variable. 484

fr/paris/lutece/plugins/crm/business/demand/DemandFilter.java

Rule Violation Ligne
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 72

fr/paris/lutece/plugins/crm/business/demand/DemandSort.java

Rule Violation Ligne
UncommentedEmptyConstructor Document empty constructor 48–50

fr/paris/lutece/plugins/crm/business/demand/DemandStatusCRMDAO.java

Rule Violation Ligne
MissingOverride The method 'load(int, Plugin)' is missing an @Override annotation. 55–74
MissingOverride The method 'selectAll(Plugin)' is missing an @Override annotation. 79–98
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 84

fr/paris/lutece/plugins/crm/business/demand/DemandType.java

Rule Violation Ligne
TooManyFields Too many fields 57–546
MissingOverride The method 'getWorkgroup()' is missing an @Override annotation. 334–337
ConfusingTernary Avoid if (x != y) ..; else ..; 373–383
ConfusingTernary Avoid if (x != y) ..; else ..; 385–395
ConfusingTernary Avoid if (x != y) ..; else ..; 478
ConfusingTernary Avoid if (x != y) ..; else ..; 479
UnnecessaryConversionTemporary Avoid unnecessary temporaries when converting primitives to Strings 480
UnnecessaryConversionTemporary Avoid unnecessary temporaries when converting primitives to Strings 481

fr/paris/lutece/plugins/crm/business/demand/DemandTypeCategoryRemovalListener.java

Rule Violation Ligne
MissingOverride The method 'canBeRemoved(String)' is missing an @Override annotation. 61–80
UseCollectionIsEmpty Substitute calls to size() == 0 (or size() != 0, size() > 0, size() < 1) with calls to isEmpty() 73
MissingOverride The method 'getRemovalRefusedMessage(String, Locale)' is missing an @Override annotation. 91–94

fr/paris/lutece/plugins/crm/business/demand/DemandTypeDAO.java

Rule Violation Ligne
GodClass Possible God Class (WMC=48, ATFD=160, TCC=6.593%) 50–654
TooManyMethods This class has too many methods, consider refactoring it. 51–654
MissingOverride The method 'newPrimaryKey(Plugin)' is missing an @Override annotation. 86–101
AvoidSynchronizedAtMethodLevel Use block level rather than method level synchronization 106–156
MissingOverride The method 'insert(DemandType, Plugin)' is missing an @Override annotation. 106–156
MissingOverride The method 'load(int, Plugin)' is missing an @Override annotation. 161–194
MissingOverride The method 'store(DemandType, Plugin)' is missing an @Override annotation. 199–243
MissingOverride The method 'delete(int, Plugin)' is missing an @Override annotation. 248–254
MissingOverride The method 'selectAll(Plugin)' is missing an @Override annotation. 259–297
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 261
ConsecutiveAppendsShouldReuse StringBuffer (or StringBuilder).append is called consecutively without reusing the target variable. 263
ConsecutiveAppendsShouldReuse StringBuffer (or StringBuilder).append is called consecutively without reusing the target variable. 264
MissingOverride The method 'selectByIdCategoryAndDate(int, java.util.Date, Plugin)' is missing an @Override annotation. 302–346
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 304
ConsecutiveAppendsShouldReuse StringBuffer (or StringBuilder).append is called consecutively without reusing the target variable. 306
ConsecutiveAppendsShouldReuse StringBuffer (or StringBuilder).append is called consecutively without reusing the target variable. 307
MissingOverride The method 'selectByOrder(int, Plugin)' is missing an @Override annotation. 351–385
MissingOverride The method 'selectMaxOrder(Plugin)' is missing an @Override annotation. 390–406
MissingOverride The method 'selectDemandTypesByFilter(DemandTypeFilter, Plugin)' is missing an @Override annotation. 411–450
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 413
ConsecutiveAppendsShouldReuse StringBuffer (or StringBuilder).append is called consecutively without reusing the target variable. 415
ConsecutiveAppendsShouldReuse StringBuffer (or StringBuilder).append is called consecutively without reusing the target variable. 416
MissingOverride The method 'selectNoDateEndDemandTypes(Plugin)' is missing an @Override annotation. 455–489
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 457
CyclomaticComplexity The method 'buildSQLQuery(DemandTypeFilter)' has a cyclomatic complexity of 10. 498–564
NPathComplexity The method 'buildSQLQuery(DemandTypeFilter)' has an NPath complexity of 512 498–564
AvoidLiteralsInIfCondition Avoid using Literals in Conditional Statements 583
NPathComplexity The method 'setFilterValues(DemandTypeFilter, DAOUtil)' has an NPath complexity of 512 603–653
CyclomaticComplexity The method 'setFilterValues(DemandTypeFilter, DAOUtil)' has a cyclomatic complexity of 10. 603–653

fr/paris/lutece/plugins/crm/business/demand/DemandTypeFilter.java

Rule Violation Ligne
ImmutableField Private field '_strUrlDelete' could be made final; it is only initialized in the declaration or constructor. 62

fr/paris/lutece/plugins/crm/business/demand/DemandTypeHome.java

Rule Violation Ligne
TooManyMethods This class has too many methods, consider refactoring it. 50–202

fr/paris/lutece/plugins/crm/business/demand/DemandTypeRoleRemovalListener.java

Rule Violation Ligne
MissingOverride The method 'canBeRemoved(String)' is missing an @Override annotation. 61–79
UseCollectionIsEmpty Substitute calls to size() == 0 (or size() != 0, size() > 0, size() < 1) with calls to isEmpty() 72
MissingOverride The method 'getRemovalRefusedMessage(String, Locale)' is missing an @Override annotation. 90–93

fr/paris/lutece/plugins/crm/business/demand/DemandTypeWorkgroupRemovalListener.java

Rule Violation Ligne
MissingOverride The method 'canBeRemoved(String)' is missing an @Override annotation. 59–77
UseCollectionIsEmpty Substitute calls to size() == 0 (or size() != 0, size() > 0, size() < 1) with calls to isEmpty() 70
MissingOverride The method 'getRemovalRefusedMessage(String, Locale)' is missing an @Override annotation. 88–92

fr/paris/lutece/plugins/crm/business/demand/IDemandTypeDAO.java

Rule Violation Ligne
TooManyMethods This class has too many methods, consider refactoring it. 46–159

fr/paris/lutece/plugins/crm/business/demand/IPaginationProperties.java

Rule Violation Ligne
CommentRequired Public method and constructor comments are required 56
CommentRequired Public method and constructor comments are required 58

fr/paris/lutece/plugins/crm/business/demand/PaginationFilterSortManager.java

Rule Violation Ligne
TooManyMethods This class has too many methods, consider refactoring it. 60–417
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 317–318

fr/paris/lutece/plugins/crm/business/demand/PaginationPropertiesImpl.java

Rule Violation Ligne
CommentRequired Public method and constructor comments are required 70–73
MissingOverride The method 'getFirstResult()' is missing an @Override annotation. 70–73
MissingOverride The method 'getPageSize()' is missing an @Override annotation. 75–78
CommentRequired Public method and constructor comments are required 75–78
MissingOverride The method 'getItemsPerPage()' is missing an @Override annotation. 80–83
CommentRequired Public method and constructor comments are required 80–83
CommentRequired Public method and constructor comments are required 85–88
MissingOverride The method 'getPageIndex()' is missing an @Override annotation. 85–88

fr/paris/lutece/plugins/crm/business/demand/category/CategoryDAO.java

Rule Violation Ligne
MissingOverride The method 'newPrimaryKey(Plugin)' is missing an @Override annotation. 62–80
AvoidSynchronizedAtMethodLevel Use block level rather than method level synchronization 85–102
MissingOverride The method 'insert(Category, Plugin)' is missing an @Override annotation. 85–102
MissingOverride The method 'load(int, Plugin)' is missing an @Override annotation. 107–129
MissingOverride The method 'delete(int, Plugin)' is missing an @Override annotation. 134–141
MissingOverride The method 'store(Category, Plugin)' is missing an @Override annotation. 146–159
MissingOverride The method 'selectCategoriesList(Plugin)' is missing an @Override annotation. 164–185
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 166
MissingOverride The method 'selectFirstCategory(Plugin)' is missing an @Override annotation. 190–211

fr/paris/lutece/plugins/crm/business/notification/NotificationDAO.java

Rule Violation Ligne
MissingOverride The method 'newPrimaryKey(Plugin)' is missing an @Override annotation. 71–86
AvoidSynchronizedAtMethodLevel Use block level rather than method level synchronization 91–117
MissingOverride The method 'insert(Notification, Plugin)' is missing an @Override annotation. 91–117
MissingOverride The method 'load(int, Plugin)' is missing an @Override annotation. 122–146
MissingOverride The method 'store(Notification, Plugin)' is missing an @Override annotation. 151–169
MissingOverride The method 'delete(int, Plugin)' is missing an @Override annotation. 174–180
MissingOverride The method 'deleteByIdDemand(int, Plugin)' is missing an @Override annotation. 185–191
MissingOverride The method 'selectAll(Plugin)' is missing an @Override annotation. 196–224
ConsecutiveAppendsShouldReuse StringBuffer (or StringBuilder).append is called consecutively without reusing the target variable. 199
ConsecutiveAppendsShouldReuse StringBuffer (or StringBuilder).append is called consecutively without reusing the target variable. 200
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 203
MissingOverride The method 'selectNotificationsByFilter(NotificationFilter, Plugin)' is missing an @Override annotation. 229–258
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 231
ConsecutiveAppendsShouldReuse StringBuffer (or StringBuilder).append is called consecutively without reusing the target variable. 233
ConsecutiveAppendsShouldReuse StringBuffer (or StringBuilder).append is called consecutively without reusing the target variable. 234
AvoidLiteralsInIfCondition Avoid using Literals in Conditional Statements 304

fr/paris/lutece/plugins/crm/business/portlet/DemandTypePortlet.java

Rule Violation Ligne
UnnecessaryConstructor Avoid unnecessary constructors - the compiler will generate these for you 66–68
UncommentedEmptyConstructor Document empty constructor 66–68
CallSuperInConstructor It is a good practice to call super() in a constructor 66–68
MissingOverride The method 'getXml(HttpServletRequest)' is missing an @Override annotation. 77–133
ConfusingTernary Avoid if (x != y) ..; else ..; 82–89
ConfusingTernary Avoid if (x != y) ..; else ..; 95–125
ConfusingTernary Avoid if (x != y) ..; else ..; 98–108
UnnecessaryLocalBeforeReturn Consider simply returning the value vs storing it in local variable 'str' 132
MissingOverride The method 'getXmlDocument(HttpServletRequest)' is missing an @Override annotation. 163–166
MissingOverride The method 'remove()' is missing an @Override annotation. 179–182
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 188

fr/paris/lutece/plugins/crm/business/portlet/DemandTypePortletDAO.java

Rule Violation Ligne
ShortVariable Avoid variables with short names like p 59
ShortVariable Avoid variables with short names like p 131

fr/paris/lutece/plugins/crm/business/portlet/DemandTypePortletHome.java

Rule Violation Ligne
AssignmentToNonFinalStatic Possible unsafe assignment to a non-final static field in a constructor. 52
CallSuperInConstructor It is a good practice to call super() in a constructor 57–63
NonThreadSafeSingleton Singleton is not thread safe 72–75
MissingOverride The method 'getPortletTypeId()' is missing an @Override annotation. 85–91
UnnecessaryLocalBeforeReturn Consider simply returning the value vs storing it in local variable 'strPortletTypeId' 90
MissingOverride The method 'getDAO()' is missing an @Override annotation. 98–101

fr/paris/lutece/plugins/crm/business/user/CRMUserAttributeDAO.java

Rule Violation Ligne
AvoidSynchronizedAtMethodLevel Use block level rather than method level synchronization 58–70
UseConcurrentHashMap If you run in Java5 or newer and have concurrent access, you should use the ConcurrentHashMap implementation 90
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 90

fr/paris/lutece/plugins/crm/business/user/CRMUserDAO.java

Rule Violation Ligne
AvoidCatchingGenericException Avoid catching generic exceptions such as NullPointerException, RuntimeException, Exception in try-catch block 146
AvoidCatchingGenericException Avoid catching generic exceptions such as NullPointerException, RuntimeException, Exception in try-catch block 187
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 238
AvoidCatchingGenericException Avoid catching generic exceptions such as NullPointerException, RuntimeException, Exception in try-catch block 260
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 279
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 301

fr/paris/lutece/plugins/crm/business/user/CRMUserFilter.java

Rule Violation Ligne
IdenticalCatchBranches 'catch' branch identical to 'IllegalAccessException' branch 95–98
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 101
InefficientStringBuffering Avoid concatenating nonliterals in a StringBuffer/StringBuilder constructor or append(). 337
AvoidLiteralsInIfCondition Avoid using Literals in Conditional Statements 436

fr/paris/lutece/plugins/crm/service/category/CategoryService.java

Rule Violation Ligne
UncommentedEmptyConstructor Document empty constructor 64–66
AvoidSynchronizedAtMethodLevel Use block level rather than method level synchronization 73–76
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 171
ConfusingTernary Avoid if (x != y) ..; else ..; 173–180
CommentRequired Public method and constructor comments are required 209–212

fr/paris/lutece/plugins/crm/service/daemon/DemandCleanerDaemon.java

Rule Violation Ligne
MissingOverride The method 'run()' is missing an @Override annotation. 60–99

fr/paris/lutece/plugins/crm/service/demand/DemandService.java

Rule Violation Ligne
TooManyMethods This class has too many methods, consider refactoring it. 67–355
UncommentedEmptyConstructor Document empty constructor 73–75
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 261
UseConcurrentHashMap If you run in Java5 or newer and have concurrent access, you should use the ConcurrentHashMap implementation 261
UseConcurrentHashMap If you run in Java5 or newer and have concurrent access, you should use the ConcurrentHashMap implementation 293
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 293
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 308

fr/paris/lutece/plugins/crm/service/demand/DemandStatusCRMService.java

Rule Violation Ligne
UncommentedEmptyConstructor Document empty constructor 56–58

fr/paris/lutece/plugins/crm/service/demand/DemandTypeService.java

Rule Violation Ligne
TooManyMethods This class has too many methods, consider refactoring it. 73–461
UncommentedEmptyConstructor Document empty constructor 79–81
AvoidDeeplyNestedIfStmts Deeply nested if..then statements are hard to read 145–150
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 254
UseConcurrentHashMap If you run in Java5 or newer and have concurrent access, you should use the ConcurrentHashMap implementation 275
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 275

fr/paris/lutece/plugins/crm/service/demand/DemandWebService.java

Rule Violation Ligne
UncommentedEmptyConstructor Document empty constructor 59–61
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 88
UseConcurrentHashMap If you run in Java5 or newer and have concurrent access, you should use the ConcurrentHashMap implementation 88
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 94

fr/paris/lutece/plugins/crm/service/listener/CRMDemandTypeRemovalListenerService.java

Rule Violation Ligne
NonThreadSafeSingleton Singleton is not thread safe 63–66

fr/paris/lutece/plugins/crm/service/listener/CRMUserModificationListenerService.java

Rule Violation Ligne
ImmutableField Private field '_listRegisteredListeners' could be made final; it is only initialized in the declaration or constructor. 51
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 51
CallSuperInConstructor It is a good practice to call super() in a constructor 56–58
NonThreadSafeSingleton Singleton is not thread safe 67–70
UseCollectionIsEmpty Substitute calls to size() == 0 (or size() != 0, size() > 0, size() < 1) with calls to isEmpty() 99

fr/paris/lutece/plugins/crm/service/notification/NotificationService.java

Rule Violation Ligne
UncommentedEmptyConstructor Document empty constructor 58–60

fr/paris/lutece/plugins/crm/service/parameters/AdvancedParametersService.java

Rule Violation Ligne
UncommentedEmptyConstructor Document empty constructor 53–55

fr/paris/lutece/plugins/crm/service/user/CRMUserAttributesService.java

Rule Violation Ligne
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 118
UseConcurrentHashMap If you run in Java5 or newer and have concurrent access, you should use the ConcurrentHashMap implementation 118
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 174
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 202

fr/paris/lutece/plugins/crm/service/user/CRMUserService.java

Rule Violation Ligne
UncommentedEmptyConstructor Document empty constructor 58–60
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 155

fr/paris/lutece/plugins/crm/util/CrmUtils.java

Rule Violation Ligne
CommentRequired Header comments are required 6–61
UseUtilityClass 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. 7–61
ConfusingTernary Avoid if (x != y) ..; else ..; 51–58

fr/paris/lutece/plugins/crm/util/IListenerDemandType.java

Rule Violation Ligne
CommentRequired Header comments are required 39–42

fr/paris/lutece/plugins/crm/util/ListUtils.java

Rule Violation Ligne
UseUtilityClass 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. 86–162
AvoidDuplicateLiterals The String literal "Erreur lors de la création d'une liste pour combo : " appears 4 times in this file; the first occurrence is on line 122 122
IdenticalCatchBranches 'catch' branch identical to 'IllegalAccessException' branch 124–127
IdenticalCatchBranches 'catch' branch identical to 'IllegalAccessException' branch 128–131
AvoidCatchingGenericException Avoid catching generic exceptions such as NullPointerException, RuntimeException, Exception in try-catch block 132
IdenticalCatchBranches 'catch' branch identical to 'IllegalAccessException' branch 132–135

fr/paris/lutece/plugins/crm/util/OperatorEnum.java

Rule Violation Ligne
UnnecessaryModifier Unnecessary modifier 'private' on constructor 'OperatorEnum(int, String)': enum constructors are implicitly private 56–60
MissingOverride The method 'toString()' is missing an @Override annotation. 77–80

fr/paris/lutece/plugins/crm/util/TargetEnum.java

Rule Violation Ligne
UnnecessaryModifier Unnecessary modifier 'private' on constructor 'TargetEnum(int, String)': enum constructors are implicitly private 56–60
MissingOverride The method 'toString()' is missing an @Override annotation. 77–80

fr/paris/lutece/plugins/crm/web/CRMApp.java

Rule Violation Ligne
ExcessiveImports A high number of imports can indicate a high degree of coupling within an object. 34–867
MissingSerialVersionUID Classes implementing Serializable should set a serialVersionUID 93–867
CyclomaticComplexity The class 'CRMApp' has a total cyclomatic complexity of 98 (highest 18). 93–867
ImmutableField Private field '_demandTypeService' could be made final; it is only initialized in the declaration or constructor. 106
ImmutableField Private field '_demandService' could be made final; it is only initialized in the declaration or constructor. 107
ImmutableField Private field '_categoryService' could be made final; it is only initialized in the declaration or constructor. 108
ImmutableField Private field '_notificationService' could be made final; it is only initialized in the declaration or constructor. 109
ImmutableField Private field '_statusCRMService' could be made final; it is only initialized in the declaration or constructor. 110
ImmutableField Private field '_crmUserService' could be made final; it is only initialized in the declaration or constructor. 111
ImmutableField Private field '_crmUserAttributesService' could be made final; it is only initialized in the declaration or constructor. 112
ImmutableField Private field '_advancedParametersService' could be made final; it is only initialized in the declaration or constructor. 113
CyclomaticComplexity The method 'getPage(HttpServletRequest, int, Plugin)' has a cyclomatic complexity of 11. 133–191
EmptyCatchBlock Avoid empty catch blocks 142–145
CyclomaticComplexity The method 'getCRMHomePage(HttpServletRequest, LuteceUser)' has a cyclomatic complexity of 18. 203–332
ExcessiveMethodLength Avoid really long methods. 203–332
NPathComplexity The method 'getCRMHomePage(HttpServletRequest, LuteceUser)' has an NPath complexity of 18434 203–332
NcssCount The method 'getCRMHomePage(HttpServletRequest, LuteceUser)' has a NCSS line count of 74. 203–332
ConfusingTernary Avoid if (x != y) ..; else ..; 206
UseConcurrentHashMap If you run in Java5 or newer and have concurrent access, you should use the ConcurrentHashMap implementation 208
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 208
UseConcurrentHashMap If you run in Java5 or newer and have concurrent access, you should use the ConcurrentHashMap implementation 292
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 292
UseConcurrentHashMap If you run in Java5 or newer and have concurrent access, you should use the ConcurrentHashMap implementation 293
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 293
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 364
UseConcurrentHashMap If you run in Java5 or newer and have concurrent access, you should use the ConcurrentHashMap implementation 364
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 417
UseConcurrentHashMap If you run in Java5 or newer and have concurrent access, you should use the ConcurrentHashMap implementation 417
UseConcurrentHashMap If you run in Java5 or newer and have concurrent access, you should use the ConcurrentHashMap implementation 452
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 452
CyclomaticComplexity The method 'doModifyCRMUser(HttpServletRequest, LuteceUser)' has a cyclomatic complexity of 11. 475–525
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 487
UseConcurrentHashMap If you run in Java5 or newer and have concurrent access, you should use the ConcurrentHashMap implementation 487
CollapsibleIfStatements These nested if statements could be combined 510–513
CyclomaticComplexity The method 'getDemandRemovingConfirmationMessage(HttpServletRequest, LuteceUser)' has a cyclomatic complexity of 11. 537–594
LinguisticNaming Linguistics Antipattern - The getter 'getDemandRemovingConfirmationMessage' should not return void linguistically 537–594
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 557
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 615
UseConcurrentHashMap If you run in Java5 or newer and have concurrent access, you should use the ConcurrentHashMap implementation 615
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 630
UseConcurrentHashMap If you run in Java5 or newer and have concurrent access, you should use the ConcurrentHashMap implementation 630
CyclomaticComplexity The method 'doOpenDemandType(HttpServletRequest)' has a cyclomatic complexity of 13. 650–726
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 685
CyclomaticComplexity The method 'doEditDemand(HttpServletRequest)' has a cyclomatic complexity of 12. 735–788
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 758
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 824
SimpleDateFormatNeedsLocale When instantiating a SimpleDateFormat object, specify a Locale 844
ShortVariable Avoid variables with short names like d 847
AvoidCatchingGenericException Avoid catching generic exceptions such as NullPointerException, RuntimeException, Exception in try-catch block 853
ShortVariable Avoid variables with short names like t 858

fr/paris/lutece/plugins/crm/web/category/CategoryJspBean.java

Rule Violation Ligne
ImmutableField Private field '_categoryService' could be made final; it is only initialized in the declaration or constructor. 81
SingularField Perhaps '_nDefaultItemsPerPage' could be replaced by a local variable. 82
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 104–105
UseConcurrentHashMap If you run in Java5 or newer and have concurrent access, you should use the ConcurrentHashMap implementation 107
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 107
UseConcurrentHashMap If you run in Java5 or newer and have concurrent access, you should use the ConcurrentHashMap implementation 129
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 129
UseConcurrentHashMap If you run in Java5 or newer and have concurrent access, you should use the ConcurrentHashMap implementation 254
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 254
ConfusingTernary Avoid if (x != y) ..; else ..; 292–304

fr/paris/lutece/plugins/crm/web/demand/DemandTypeJspBean.java

Rule Violation Ligne
ExcessiveImports A high number of imports can indicate a high degree of coupling within an object. 34–816
MissingSerialVersionUID Classes implementing Serializable should set a serialVersionUID 79–816
CyclomaticComplexity The class 'DemandTypeJspBean' has a total cyclomatic complexity of 95 (highest 27). 79–816
ImmutableField Private field '_advancedParametersService' could be made final; it is only initialized in the declaration or constructor. 95
ImmutableField Private field '_demandTypeService' could be made final; it is only initialized in the declaration or constructor. 96
ImmutableField Private field '_demandService' could be made final; it is only initialized in the declaration or constructor. 97
ImmutableField Private field '_categoryService' could be made final; it is only initialized in the declaration or constructor. 98
SingularField Perhaps '_nDefaultItemsPerPage' could be replaced by a local variable. 100
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 122–123
UseConcurrentHashMap If you run in Java5 or newer and have concurrent access, you should use the ConcurrentHashMap implementation 125
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 125
UseConcurrentHashMap If you run in Java5 or newer and have concurrent access, you should use the ConcurrentHashMap implementation 155
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 155
UseConcurrentHashMap If you run in Java5 or newer and have concurrent access, you should use the ConcurrentHashMap implementation 176
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 176
ConfusingTernary Avoid if (x != y) ..; else ..; 289–311
UseConcurrentHashMap If you run in Java5 or newer and have concurrent access, you should use the ConcurrentHashMap implementation 291
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 291
ExcessiveMethodLength Avoid really long methods. 529–643
NPathComplexity The method 'getDemandTypeData(HttpServletRequest, DemandType)' has an NPath complexity of 175502 529–643
CyclomaticComplexity The method 'getDemandTypeData(HttpServletRequest, DemandType)' has a cyclomatic complexity of 27. 529–643
NcssCount The method 'getDemandTypeData(HttpServletRequest, DemandType)' has a NCSS line count of 65. 529–643
ConfusingTernary Avoid if (x != y) ..; else ..; 579–589
ConfusingTernary Avoid if (x != y) ..; else ..; 596–606
CollapsibleIfStatements These nested if statements could be combined 612–615
NullAssignment Assigning an Object to null is a code smell. Consider refactoring. 667
NPathComplexity The method 'doSearchDemandTypesList(HttpServletRequest)' has an NPath complexity of 6146 700–786
CyclomaticComplexity The method 'doSearchDemandTypesList(HttpServletRequest)' has a cyclomatic complexity of 20. 700–786
CollapsibleIfStatements These nested if statements could be combined 739–742
CollapsibleIfStatements These nested if statements could be combined 752–755

fr/paris/lutece/plugins/crm/web/portlet/DemandTypePortletJspBean.java

Rule Violation Ligne
MissingSerialVersionUID Classes implementing Serializable should set a serialVersionUID 52–151
ImmutableField Private field '_categoryService' could be made final; it is only initialized in the declaration or constructor. 56
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 64
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 80
PrematureDeclaration Avoid declaring a variable if it is unreferenced before a possible exit point. 102
PrematureDeclaration Avoid declaring a variable if it is unreferenced before a possible exit point. 131

Priority 4

fr/paris/lutece/plugins/crm/business/demand/DemandFilter.java

Rule Violation Ligne
BooleanGetMethodName A getX() method which returns a boolean should be named isX() 101–104

fr/paris/lutece/plugins/crm/business/demand/DemandTypeFilter.java

Rule Violation Ligne
BooleanGetMethodName A getX() method which returns a boolean should be named isX() 107–110

fr/paris/lutece/plugins/crm/business/notification/NotificationFilter.java

Rule Violation Ligne
BooleanGetMethodName A getX() method which returns a boolean should be named isX() 86–89

Fichiers

fr/paris/lutece/plugins/crm/business/demand/Demand.java

Rule Violation Priority Ligne
FormalParameterNamingConventions The method parameter name '_strRemoteId' doesn't match '[a-z][a-zA-Z0-9]*' 1 237

fr/paris/lutece/plugins/crm/business/demand/DemandDAO.java

Rule Violation Priority Ligne
TooManyMethods This class has too many methods, consider refactoring it. 3 53–502
MissingOverride The method 'newPrimaryKey(Plugin)' is missing an @Override annotation. 3 83–98
MissingOverride The method 'insert(Demand, Plugin)' is missing an @Override annotation. 3 103–129
AvoidSynchronizedAtMethodLevel Use block level rather than method level synchronization 3 103–129
MissingOverride The method 'load(int, Plugin)' is missing an @Override annotation. 3 134–159
MissingOverride The method 'store(Demand, Plugin)' is missing an @Override annotation. 3 197–218
MissingOverride The method 'delete(int, Plugin)' is missing an @Override annotation. 3 223–230
MissingOverride The method 'selectAll(Plugin)' is missing an @Override annotation. 3 235–259
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 3 237
MissingOverride The method 'selectByFilter(DemandFilter, IPaginationProperties, Plugin)' is missing an @Override annotation. 3 264–298
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 3 266
InefficientStringBuffering Avoid concatenating nonliterals in a StringBuffer/StringBuilder constructor or append(). 3 271
CyclomaticComplexity The method 'buildSQLQuery(DemandFilter)' has a cyclomatic complexity of 14. 3 307–398
NPathComplexity The method 'buildSQLQuery(DemandFilter)' has an NPath complexity of 960 3 307–398
AvoidLiteralsInIfCondition Avoid using Literals in Conditional Statements 3 417
SimpleDateFormatNeedsLocale When instantiating a SimpleDateFormat object, specify a Locale 3 452
ConsecutiveAppendsShouldReuse StringBuffer (or StringBuilder).append is called consecutively without reusing the target variable. 3 455
ConsecutiveAppendsShouldReuse StringBuffer (or StringBuilder).append is called consecutively without reusing the target variable. 3 468
ConsecutiveAppendsShouldReuse StringBuffer (or StringBuilder).append is called consecutively without reusing the target variable. 3 469
MissingOverride The method 'countByFilter(DemandFilter, Plugin)' is missing an @Override annotation. 3 480–501
ConsecutiveAppendsShouldReuse StringBuffer (or StringBuilder).append is called consecutively without reusing the target variable. 3 483
ConsecutiveAppendsShouldReuse StringBuffer (or StringBuilder).append is called consecutively without reusing the target variable. 3 484

fr/paris/lutece/plugins/crm/business/demand/DemandFilter.java

Rule Violation Priority Ligne
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 3 72
BooleanGetMethodName A getX() method which returns a boolean should be named isX() 4 101–104

fr/paris/lutece/plugins/crm/business/demand/DemandSort.java

Rule Violation Priority Ligne
UncommentedEmptyConstructor Document empty constructor 3 48–50

fr/paris/lutece/plugins/crm/business/demand/DemandStatusCRMDAO.java

Rule Violation Priority Ligne
MissingOverride The method 'load(int, Plugin)' is missing an @Override annotation. 3 55–74
MissingOverride The method 'selectAll(Plugin)' is missing an @Override annotation. 3 79–98
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 3 84

fr/paris/lutece/plugins/crm/business/demand/DemandType.java

Rule Violation Priority Ligne
TooManyFields Too many fields 3 57–546
MissingOverride The method 'getWorkgroup()' is missing an @Override annotation. 3 334–337
ConfusingTernary Avoid if (x != y) ..; else ..; 3 373–383
ConfusingTernary Avoid if (x != y) ..; else ..; 3 385–395
ConfusingTernary Avoid if (x != y) ..; else ..; 3 478
ConfusingTernary Avoid if (x != y) ..; else ..; 3 479
UnnecessaryConversionTemporary Avoid unnecessary temporaries when converting primitives to Strings 3 480
BooleanInstantiation Avoid instantiating Boolean objects; reference Boolean.TRUE or Boolean.FALSE or call Boolean.valueOf() instead. 2 480
BooleanInstantiation Avoid instantiating Boolean objects; reference Boolean.TRUE or Boolean.FALSE or call Boolean.valueOf() instead. 2 481
UnnecessaryConversionTemporary Avoid unnecessary temporaries when converting primitives to Strings 3 481
FormalParameterNamingConventions The method parameter name '_bUseIdCrmUser' doesn't match '[a-z][a-zA-Z0-9]*' 1 501
FormalParameterNamingConventions The method parameter name '_bNeedAuthentication' doesn't match '[a-z][a-zA-Z0-9]*' 1 521
FormalParameterNamingConventions The method parameter name '_bNeedValidation' doesn't match '[a-z][a-zA-Z0-9]*' 1 541

fr/paris/lutece/plugins/crm/business/demand/DemandTypeCategoryRemovalListener.java

Rule Violation Priority Ligne
MissingOverride The method 'canBeRemoved(String)' is missing an @Override annotation. 3 61–80
UseCollectionIsEmpty Substitute calls to size() == 0 (or size() != 0, size() > 0, size() < 1) with calls to isEmpty() 3 73
MissingOverride The method 'getRemovalRefusedMessage(String, Locale)' is missing an @Override annotation. 3 91–94

fr/paris/lutece/plugins/crm/business/demand/DemandTypeDAO.java

Rule Violation Priority Ligne
GodClass Possible God Class (WMC=48, ATFD=160, TCC=6.593%) 3 50–654
TooManyMethods This class has too many methods, consider refactoring it. 3 51–654
MissingOverride The method 'newPrimaryKey(Plugin)' is missing an @Override annotation. 3 86–101
AvoidSynchronizedAtMethodLevel Use block level rather than method level synchronization 3 106–156
MissingOverride The method 'insert(DemandType, Plugin)' is missing an @Override annotation. 3 106–156
MissingOverride The method 'load(int, Plugin)' is missing an @Override annotation. 3 161–194
MissingOverride The method 'store(DemandType, Plugin)' is missing an @Override annotation. 3 199–243
MissingOverride The method 'delete(int, Plugin)' is missing an @Override annotation. 3 248–254
MissingOverride The method 'selectAll(Plugin)' is missing an @Override annotation. 3 259–297
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 3 261
ConsecutiveAppendsShouldReuse StringBuffer (or StringBuilder).append is called consecutively without reusing the target variable. 3 263
ConsecutiveAppendsShouldReuse StringBuffer (or StringBuilder).append is called consecutively without reusing the target variable. 3 264
MissingOverride The method 'selectByIdCategoryAndDate(int, java.util.Date, Plugin)' is missing an @Override annotation. 3 302–346
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 3 304
ConsecutiveAppendsShouldReuse StringBuffer (or StringBuilder).append is called consecutively without reusing the target variable. 3 306
ConsecutiveAppendsShouldReuse StringBuffer (or StringBuilder).append is called consecutively without reusing the target variable. 3 307
MissingOverride The method 'selectByOrder(int, Plugin)' is missing an @Override annotation. 3 351–385
MissingOverride The method 'selectMaxOrder(Plugin)' is missing an @Override annotation. 3 390–406
MissingOverride The method 'selectDemandTypesByFilter(DemandTypeFilter, Plugin)' is missing an @Override annotation. 3 411–450
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 3 413
ConsecutiveAppendsShouldReuse StringBuffer (or StringBuilder).append is called consecutively without reusing the target variable. 3 415
ConsecutiveAppendsShouldReuse StringBuffer (or StringBuilder).append is called consecutively without reusing the target variable. 3 416
MissingOverride The method 'selectNoDateEndDemandTypes(Plugin)' is missing an @Override annotation. 3 455–489
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 3 457
CyclomaticComplexity The method 'buildSQLQuery(DemandTypeFilter)' has a cyclomatic complexity of 10. 3 498–564
NPathComplexity The method 'buildSQLQuery(DemandTypeFilter)' has an NPath complexity of 512 3 498–564
AvoidLiteralsInIfCondition Avoid using Literals in Conditional Statements 3 583
NPathComplexity The method 'setFilterValues(DemandTypeFilter, DAOUtil)' has an NPath complexity of 512 3 603–653
CyclomaticComplexity The method 'setFilterValues(DemandTypeFilter, DAOUtil)' has a cyclomatic complexity of 10. 3 603–653

fr/paris/lutece/plugins/crm/business/demand/DemandTypeFilter.java

Rule Violation Priority Ligne
ImmutableField Private field '_strUrlDelete' could be made final; it is only initialized in the declaration or constructor. 3 62
BooleanGetMethodName A getX() method which returns a boolean should be named isX() 4 107–110

fr/paris/lutece/plugins/crm/business/demand/DemandTypeHome.java

Rule Violation Priority Ligne
TooManyMethods This class has too many methods, consider refactoring it. 3 50–202

fr/paris/lutece/plugins/crm/business/demand/DemandTypeRoleRemovalListener.java

Rule Violation Priority Ligne
MissingOverride The method 'canBeRemoved(String)' is missing an @Override annotation. 3 61–79
UseCollectionIsEmpty Substitute calls to size() == 0 (or size() != 0, size() > 0, size() < 1) with calls to isEmpty() 3 72
MissingOverride The method 'getRemovalRefusedMessage(String, Locale)' is missing an @Override annotation. 3 90–93

fr/paris/lutece/plugins/crm/business/demand/DemandTypeWorkgroupRemovalListener.java

Rule Violation Priority Ligne
MissingOverride The method 'canBeRemoved(String)' is missing an @Override annotation. 3 59–77
UseCollectionIsEmpty Substitute calls to size() == 0 (or size() != 0, size() > 0, size() < 1) with calls to isEmpty() 3 70
MissingOverride The method 'getRemovalRefusedMessage(String, Locale)' is missing an @Override annotation. 3 88–92

fr/paris/lutece/plugins/crm/business/demand/IDemandTypeDAO.java

Rule Violation Priority Ligne
TooManyMethods This class has too many methods, consider refactoring it. 3 46–159

fr/paris/lutece/plugins/crm/business/demand/IPaginationProperties.java

Rule Violation Priority Ligne
CommentRequired Public method and constructor comments are required 3 56
CommentRequired Public method and constructor comments are required 3 58

fr/paris/lutece/plugins/crm/business/demand/PaginationFilterSortManager.java

Rule Violation Priority Ligne
TooManyMethods This class has too many methods, consider refactoring it. 3 60–417
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 3 317–318

fr/paris/lutece/plugins/crm/business/demand/PaginationPropertiesImpl.java

Rule Violation Priority Ligne
CommentRequired Public method and constructor comments are required 3 70–73
MissingOverride The method 'getFirstResult()' is missing an @Override annotation. 3 70–73
MissingOverride The method 'getPageSize()' is missing an @Override annotation. 3 75–78
CommentRequired Public method and constructor comments are required 3 75–78
MissingOverride The method 'getItemsPerPage()' is missing an @Override annotation. 3 80–83
CommentRequired Public method and constructor comments are required 3 80–83
CommentRequired Public method and constructor comments are required 3 85–88
MissingOverride The method 'getPageIndex()' is missing an @Override annotation. 3 85–88

fr/paris/lutece/plugins/crm/business/demand/category/CategoryDAO.java

Rule Violation Priority Ligne
MissingOverride The method 'newPrimaryKey(Plugin)' is missing an @Override annotation. 3 62–80
AvoidSynchronizedAtMethodLevel Use block level rather than method level synchronization 3 85–102
MissingOverride The method 'insert(Category, Plugin)' is missing an @Override annotation. 3 85–102
MissingOverride The method 'load(int, Plugin)' is missing an @Override annotation. 3 107–129
MissingOverride The method 'delete(int, Plugin)' is missing an @Override annotation. 3 134–141
MissingOverride The method 'store(Category, Plugin)' is missing an @Override annotation. 3 146–159
MissingOverride The method 'selectCategoriesList(Plugin)' is missing an @Override annotation. 3 164–185
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 3 166
MissingOverride The method 'selectFirstCategory(Plugin)' is missing an @Override annotation. 3 190–211

fr/paris/lutece/plugins/crm/business/notification/NotificationDAO.java

Rule Violation Priority Ligne
MissingOverride The method 'newPrimaryKey(Plugin)' is missing an @Override annotation. 3 71–86
AvoidSynchronizedAtMethodLevel Use block level rather than method level synchronization 3 91–117
MissingOverride The method 'insert(Notification, Plugin)' is missing an @Override annotation. 3 91–117
MissingOverride The method 'load(int, Plugin)' is missing an @Override annotation. 3 122–146
MissingOverride The method 'store(Notification, Plugin)' is missing an @Override annotation. 3 151–169
MissingOverride The method 'delete(int, Plugin)' is missing an @Override annotation. 3 174–180
MissingOverride The method 'deleteByIdDemand(int, Plugin)' is missing an @Override annotation. 3 185–191
MissingOverride The method 'selectAll(Plugin)' is missing an @Override annotation. 3 196–224
ConsecutiveAppendsShouldReuse StringBuffer (or StringBuilder).append is called consecutively without reusing the target variable. 3 199
ConsecutiveAppendsShouldReuse StringBuffer (or StringBuilder).append is called consecutively without reusing the target variable. 3 200
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 3 203
MissingOverride The method 'selectNotificationsByFilter(NotificationFilter, Plugin)' is missing an @Override annotation. 3 229–258
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 3 231
ConsecutiveAppendsShouldReuse StringBuffer (or StringBuilder).append is called consecutively without reusing the target variable. 3 233
ConsecutiveAppendsShouldReuse StringBuffer (or StringBuilder).append is called consecutively without reusing the target variable. 3 234
AvoidLiteralsInIfCondition Avoid using Literals in Conditional Statements 3 304

fr/paris/lutece/plugins/crm/business/notification/NotificationFilter.java

Rule Violation Priority Ligne
BooleanGetMethodName A getX() method which returns a boolean should be named isX() 4 86–89

fr/paris/lutece/plugins/crm/business/portlet/DemandTypePortlet.java

Rule Violation Priority Ligne
UnnecessaryConstructor Avoid unnecessary constructors - the compiler will generate these for you 3 66–68
UncommentedEmptyConstructor Document empty constructor 3 66–68
CallSuperInConstructor It is a good practice to call super() in a constructor 3 66–68
MissingOverride The method 'getXml(HttpServletRequest)' is missing an @Override annotation. 3 77–133
ConfusingTernary Avoid if (x != y) ..; else ..; 3 82–89
ConfusingTernary Avoid if (x != y) ..; else ..; 3 95–125
ConfusingTernary Avoid if (x != y) ..; else ..; 3 98–108
UnnecessaryLocalBeforeReturn Consider simply returning the value vs storing it in local variable 'str' 3 132
FormalParameterNamingConventions The method parameter name '_nIdCategory' doesn't match '[a-z][a-zA-Z0-9]*' 1 151
MissingOverride The method 'getXmlDocument(HttpServletRequest)' is missing an @Override annotation. 3 163–166
MissingOverride The method 'remove()' is missing an @Override annotation. 3 179–182
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 3 188

fr/paris/lutece/plugins/crm/business/portlet/DemandTypePortletDAO.java

Rule Violation Priority Ligne
ShortVariable Avoid variables with short names like p 3 59
ShortVariable Avoid variables with short names like p 3 131

fr/paris/lutece/plugins/crm/business/portlet/DemandTypePortletHome.java

Rule Violation Priority Ligne
AssignmentToNonFinalStatic Possible unsafe assignment to a non-final static field in a constructor. 3 52
CallSuperInConstructor It is a good practice to call super() in a constructor 3 57–63
NonThreadSafeSingleton Singleton is not thread safe 3 72–75
MissingOverride The method 'getPortletTypeId()' is missing an @Override annotation. 3 85–91
UnnecessaryLocalBeforeReturn Consider simply returning the value vs storing it in local variable 'strPortletTypeId' 3 90
MissingOverride The method 'getDAO()' is missing an @Override annotation. 3 98–101

fr/paris/lutece/plugins/crm/business/user/CRMUser.java

Rule Violation Priority Ligne
FormalParameterNamingConventions The method parameter name '_bMustBeUpdated' doesn't match '[a-z][a-zA-Z0-9]*' 1 235

fr/paris/lutece/plugins/crm/business/user/CRMUserAttributeDAO.java

Rule Violation Priority Ligne
AvoidSynchronizedAtMethodLevel Use block level rather than method level synchronization 3 58–70
UseConcurrentHashMap If you run in Java5 or newer and have concurrent access, you should use the ConcurrentHashMap implementation 3 90
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 3 90

fr/paris/lutece/plugins/crm/business/user/CRMUserDAO.java

Rule Violation Priority Ligne
AvoidCatchingGenericException Avoid catching generic exceptions such as NullPointerException, RuntimeException, Exception in try-catch block 3 146
AvoidCatchingGenericException Avoid catching generic exceptions such as NullPointerException, RuntimeException, Exception in try-catch block 3 187
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 3 238
AvoidCatchingGenericException Avoid catching generic exceptions such as NullPointerException, RuntimeException, Exception in try-catch block 3 260
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 3 279
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 3 301

fr/paris/lutece/plugins/crm/business/user/CRMUserFilter.java

Rule Violation Priority Ligne
IdenticalCatchBranches 'catch' branch identical to 'IllegalAccessException' branch 3 95–98
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 3 101
InefficientStringBuffering Avoid concatenating nonliterals in a StringBuffer/StringBuilder constructor or append(). 3 337
AvoidLiteralsInIfCondition Avoid using Literals in Conditional Statements 3 436

fr/paris/lutece/plugins/crm/service/category/CategoryService.java

Rule Violation Priority Ligne
UncommentedEmptyConstructor Document empty constructor 3 64–66
AvoidSynchronizedAtMethodLevel Use block level rather than method level synchronization 3 73–76
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 3 171
ConfusingTernary Avoid if (x != y) ..; else ..; 3 173–180
CommentRequired Public method and constructor comments are required 3 209–212

fr/paris/lutece/plugins/crm/service/daemon/DemandCleanerDaemon.java

Rule Violation Priority Ligne
MissingOverride The method 'run()' is missing an @Override annotation. 3 60–99

fr/paris/lutece/plugins/crm/service/demand/DemandService.java

Rule Violation Priority Ligne
TooManyMethods This class has too many methods, consider refactoring it. 3 67–355
UncommentedEmptyConstructor Document empty constructor 3 73–75
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 3 261
UseConcurrentHashMap If you run in Java5 or newer and have concurrent access, you should use the ConcurrentHashMap implementation 3 261
UseConcurrentHashMap If you run in Java5 or newer and have concurrent access, you should use the ConcurrentHashMap implementation 3 293
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 3 293
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 3 308

fr/paris/lutece/plugins/crm/service/demand/DemandStatusCRMService.java

Rule Violation Priority Ligne
UncommentedEmptyConstructor Document empty constructor 3 56–58

fr/paris/lutece/plugins/crm/service/demand/DemandTypeService.java

Rule Violation Priority Ligne
TooManyMethods This class has too many methods, consider refactoring it. 3 73–461
UncommentedEmptyConstructor Document empty constructor 3 79–81
AvoidDeeplyNestedIfStmts Deeply nested if..then statements are hard to read 3 145–150
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 3 254
UseConcurrentHashMap If you run in Java5 or newer and have concurrent access, you should use the ConcurrentHashMap implementation 3 275
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 3 275

fr/paris/lutece/plugins/crm/service/demand/DemandWebService.java

Rule Violation Priority Ligne
UncommentedEmptyConstructor Document empty constructor 3 59–61
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 3 88
UseConcurrentHashMap If you run in Java5 or newer and have concurrent access, you should use the ConcurrentHashMap implementation 3 88
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 3 94

fr/paris/lutece/plugins/crm/service/listener/CRMDemandTypeRemovalListenerService.java

Rule Violation Priority Ligne
ClassWithOnlyPrivateConstructorsShouldBeFinal A class which only has private constructors should be final 1 44–86
NonThreadSafeSingleton Singleton is not thread safe 3 63–66

fr/paris/lutece/plugins/crm/service/listener/CRMUserModificationListenerService.java

Rule Violation Priority Ligne
ClassWithOnlyPrivateConstructorsShouldBeFinal A class which only has private constructors should be final 1 47–107
ImmutableField Private field '_listRegisteredListeners' could be made final; it is only initialized in the declaration or constructor. 3 51
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 3 51
CallSuperInConstructor It is a good practice to call super() in a constructor 3 56–58
NonThreadSafeSingleton Singleton is not thread safe 3 67–70
UseCollectionIsEmpty Substitute calls to size() == 0 (or size() != 0, size() > 0, size() < 1) with calls to isEmpty() 3 99

fr/paris/lutece/plugins/crm/service/notification/NotificationService.java

Rule Violation Priority Ligne
UncommentedEmptyConstructor Document empty constructor 3 58–60

fr/paris/lutece/plugins/crm/service/parameters/AdvancedParametersService.java

Rule Violation Priority Ligne
UncommentedEmptyConstructor Document empty constructor 3 53–55

fr/paris/lutece/plugins/crm/service/user/CRMUserAttributesService.java

Rule Violation Priority Ligne
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 3 118
UseConcurrentHashMap If you run in Java5 or newer and have concurrent access, you should use the ConcurrentHashMap implementation 3 118
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 3 174
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 3 202

fr/paris/lutece/plugins/crm/service/user/CRMUserService.java

Rule Violation Priority Ligne
UncommentedEmptyConstructor Document empty constructor 3 58–60
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 3 155

fr/paris/lutece/plugins/crm/util/CrmUtils.java

Rule Violation Priority Ligne
CommentRequired Header comments are required 3 6–61
UseUtilityClass 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. 3 7–61
ConfusingTernary Avoid if (x != y) ..; else ..; 3 51–58

fr/paris/lutece/plugins/crm/util/IListenerDemandType.java

Rule Violation Priority Ligne
CommentRequired Header comments are required 3 39–42

fr/paris/lutece/plugins/crm/util/ListUtils.java

Rule Violation Priority Ligne
UseUtilityClass 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. 3 86–162
AvoidDuplicateLiterals The String literal "Erreur lors de la création d'une liste pour combo : " appears 4 times in this file; the first occurrence is on line 122 3 122
IdenticalCatchBranches 'catch' branch identical to 'IllegalAccessException' branch 3 124–127
IdenticalCatchBranches 'catch' branch identical to 'IllegalAccessException' branch 3 128–131
AvoidCatchingGenericException Avoid catching generic exceptions such as NullPointerException, RuntimeException, Exception in try-catch block 3 132
IdenticalCatchBranches 'catch' branch identical to 'IllegalAccessException' branch 3 132–135

fr/paris/lutece/plugins/crm/util/OperatorEnum.java

Rule Violation Priority Ligne
UnnecessaryModifier Unnecessary modifier 'private' on constructor 'OperatorEnum(int, String)': enum constructors are implicitly private 3 56–60
MissingOverride The method 'toString()' is missing an @Override annotation. 3 77–80

fr/paris/lutece/plugins/crm/util/TargetEnum.java

Rule Violation Priority Ligne
UnnecessaryModifier Unnecessary modifier 'private' on constructor 'TargetEnum(int, String)': enum constructors are implicitly private 3 56–60
MissingOverride The method 'toString()' is missing an @Override annotation. 3 77–80

fr/paris/lutece/plugins/crm/util/constants/CRMConstants.java

Rule Violation Priority Ligne
ClassNamingConventions The utility class name 'CRMConstants' doesn't match '[A-Z][a-zA-Z0-9]+(Utils?|Helper|Home|Service)' 1 41–237

fr/paris/lutece/plugins/crm/web/CRMApp.java

Rule Violation Priority Ligne
ExcessiveImports A high number of imports can indicate a high degree of coupling within an object. 3 34–867
MissingSerialVersionUID Classes implementing Serializable should set a serialVersionUID 3 93–867
CyclomaticComplexity The class 'CRMApp' has a total cyclomatic complexity of 98 (highest 18). 3 93–867
ImmutableField Private field '_demandTypeService' could be made final; it is only initialized in the declaration or constructor. 3 106
ImmutableField Private field '_demandService' could be made final; it is only initialized in the declaration or constructor. 3 107
ImmutableField Private field '_categoryService' could be made final; it is only initialized in the declaration or constructor. 3 108
ImmutableField Private field '_notificationService' could be made final; it is only initialized in the declaration or constructor. 3 109
ImmutableField Private field '_statusCRMService' could be made final; it is only initialized in the declaration or constructor. 3 110
ImmutableField Private field '_crmUserService' could be made final; it is only initialized in the declaration or constructor. 3 111
ImmutableField Private field '_crmUserAttributesService' could be made final; it is only initialized in the declaration or constructor. 3 112
ImmutableField Private field '_advancedParametersService' could be made final; it is only initialized in the declaration or constructor. 3 113
CyclomaticComplexity The method 'getPage(HttpServletRequest, int, Plugin)' has a cyclomatic complexity of 11. 3 133–191
EmptyCatchBlock Avoid empty catch blocks 3 142–145
CyclomaticComplexity The method 'getCRMHomePage(HttpServletRequest, LuteceUser)' has a cyclomatic complexity of 18. 3 203–332
ExcessiveMethodLength Avoid really long methods. 3 203–332
NPathComplexity The method 'getCRMHomePage(HttpServletRequest, LuteceUser)' has an NPath complexity of 18434 3 203–332
NcssCount The method 'getCRMHomePage(HttpServletRequest, LuteceUser)' has a NCSS line count of 74. 3 203–332
ConfusingTernary Avoid if (x != y) ..; else ..; 3 206
UseConcurrentHashMap If you run in Java5 or newer and have concurrent access, you should use the ConcurrentHashMap implementation 3 208
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 3 208
UseConcurrentHashMap If you run in Java5 or newer and have concurrent access, you should use the ConcurrentHashMap implementation 3 292
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 3 292
UseConcurrentHashMap If you run in Java5 or newer and have concurrent access, you should use the ConcurrentHashMap implementation 3 293
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 3 293
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 3 364
UseConcurrentHashMap If you run in Java5 or newer and have concurrent access, you should use the ConcurrentHashMap implementation 3 364
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 3 417
UseConcurrentHashMap If you run in Java5 or newer and have concurrent access, you should use the ConcurrentHashMap implementation 3 417
UseConcurrentHashMap If you run in Java5 or newer and have concurrent access, you should use the ConcurrentHashMap implementation 3 452
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 3 452
CyclomaticComplexity The method 'doModifyCRMUser(HttpServletRequest, LuteceUser)' has a cyclomatic complexity of 11. 3 475–525
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 3 487
UseConcurrentHashMap If you run in Java5 or newer and have concurrent access, you should use the ConcurrentHashMap implementation 3 487
CollapsibleIfStatements These nested if statements could be combined 3 510–513
CyclomaticComplexity The method 'getDemandRemovingConfirmationMessage(HttpServletRequest, LuteceUser)' has a cyclomatic complexity of 11. 3 537–594
LinguisticNaming Linguistics Antipattern - The getter 'getDemandRemovingConfirmationMessage' should not return void linguistically 3 537–594
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 3 557
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 3 615
UseConcurrentHashMap If you run in Java5 or newer and have concurrent access, you should use the ConcurrentHashMap implementation 3 615
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 3 630
UseConcurrentHashMap If you run in Java5 or newer and have concurrent access, you should use the ConcurrentHashMap implementation 3 630
CyclomaticComplexity The method 'doOpenDemandType(HttpServletRequest)' has a cyclomatic complexity of 13. 3 650–726
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 3 685
CyclomaticComplexity The method 'doEditDemand(HttpServletRequest)' has a cyclomatic complexity of 12. 3 735–788
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 3 758
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 3 824
SimpleDateFormatNeedsLocale When instantiating a SimpleDateFormat object, specify a Locale 3 844
ShortVariable Avoid variables with short names like d 3 847
AvoidCatchingGenericException Avoid catching generic exceptions such as NullPointerException, RuntimeException, Exception in try-catch block 3 853
ShortVariable Avoid variables with short names like t 3 858

fr/paris/lutece/plugins/crm/web/category/CategoryJspBean.java

Rule Violation Priority Ligne
ImmutableField Private field '_categoryService' could be made final; it is only initialized in the declaration or constructor. 3 81
SingularField Perhaps '_nDefaultItemsPerPage' could be replaced by a local variable. 3 82
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 3 104–105
UseConcurrentHashMap If you run in Java5 or newer and have concurrent access, you should use the ConcurrentHashMap implementation 3 107
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 3 107
UseConcurrentHashMap If you run in Java5 or newer and have concurrent access, you should use the ConcurrentHashMap implementation 3 129
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 3 129
UseConcurrentHashMap If you run in Java5 or newer and have concurrent access, you should use the ConcurrentHashMap implementation 3 254
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 3 254
ConfusingTernary Avoid if (x != y) ..; else ..; 3 292–304

fr/paris/lutece/plugins/crm/web/demand/DemandTypeJspBean.java

Rule Violation Priority Ligne
ExcessiveImports A high number of imports can indicate a high degree of coupling within an object. 3 34–816
MissingSerialVersionUID Classes implementing Serializable should set a serialVersionUID 3 79–816
CyclomaticComplexity The class 'DemandTypeJspBean' has a total cyclomatic complexity of 95 (highest 27). 3 79–816
ImmutableField Private field '_advancedParametersService' could be made final; it is only initialized in the declaration or constructor. 3 95
ImmutableField Private field '_demandTypeService' could be made final; it is only initialized in the declaration or constructor. 3 96
ImmutableField Private field '_demandService' could be made final; it is only initialized in the declaration or constructor. 3 97
ImmutableField Private field '_categoryService' could be made final; it is only initialized in the declaration or constructor. 3 98
SingularField Perhaps '_nDefaultItemsPerPage' could be replaced by a local variable. 3 100
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 3 122–123
UseConcurrentHashMap If you run in Java5 or newer and have concurrent access, you should use the ConcurrentHashMap implementation 3 125
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 3 125
UseConcurrentHashMap If you run in Java5 or newer and have concurrent access, you should use the ConcurrentHashMap implementation 3 155
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 3 155
UseConcurrentHashMap If you run in Java5 or newer and have concurrent access, you should use the ConcurrentHashMap implementation 3 176
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 3 176
ConfusingTernary Avoid if (x != y) ..; else ..; 3 289–311
UseConcurrentHashMap If you run in Java5 or newer and have concurrent access, you should use the ConcurrentHashMap implementation 3 291
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 3 291
ExcessiveMethodLength Avoid really long methods. 3 529–643
NPathComplexity The method 'getDemandTypeData(HttpServletRequest, DemandType)' has an NPath complexity of 175502 3 529–643
CyclomaticComplexity The method 'getDemandTypeData(HttpServletRequest, DemandType)' has a cyclomatic complexity of 27. 3 529–643
NcssCount The method 'getDemandTypeData(HttpServletRequest, DemandType)' has a NCSS line count of 65. 3 529–643
ConfusingTernary Avoid if (x != y) ..; else ..; 3 579–589
ConfusingTernary Avoid if (x != y) ..; else ..; 3 596–606
CollapsibleIfStatements These nested if statements could be combined 3 612–615
NullAssignment Assigning an Object to null is a code smell. Consider refactoring. 3 667
NPathComplexity The method 'doSearchDemandTypesList(HttpServletRequest)' has an NPath complexity of 6146 3 700–786
CyclomaticComplexity The method 'doSearchDemandTypesList(HttpServletRequest)' has a cyclomatic complexity of 20. 3 700–786
CollapsibleIfStatements These nested if statements could be combined 3 739–742
CollapsibleIfStatements These nested if statements could be combined 3 752–755

fr/paris/lutece/plugins/crm/web/portlet/DemandTypePortletJspBean.java

Rule Violation Priority Ligne
MissingSerialVersionUID Classes implementing Serializable should set a serialVersionUID 3 52–151
ImmutableField Private field '_categoryService' could be made final; it is only initialized in the declaration or constructor. 3 56
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 3 64
UseDiamondOperator Explicit type arguments can be replaced by Diamond Operator 3 80
PrematureDeclaration Avoid declaring a variable if it is unreferenced before a possible exit point. 3 102
PrematureDeclaration Avoid declaring a variable if it is unreferenced before a possible exit point. 3 131