Complete code review

The Complete code review contains the superset of rule categories. Every other code review contains a unique subset of these categories.

Purpose

The Complete code review applies all rules from all categories. The rules cover the range of severity levels: problem, warning, and recommendation. This code review requires the longest time to complete.

Rule categories

The following table lists all of the categories and subcategories in the Complete code review, along with a description of the rules in each one. In the left column, categories are in bold text and subcategories are in plain text.

Category or subcategory Description
Design Principles Contains rules for the design principles of object-oriented programming
Complexity Contains rules to prevent unnecessarily complex code
Globalization Contains rules that are based on globalization coding best practices, helping to ensure that code runs correctly in localized environments
Cultural Formatting Contains rules that address data formatting options used in different parts of the world
Encoding Contains rules that validate encoding for globalization
Locale Handling Contains rules that validate locales for globalization
String Handling Contains rules that validate string operations for globalization
Translation Contains rules that validate code for translation
UI Specific Contains rules that validate user-interface layout and content for globalization
J2EE Best Practices Contains rules based on the best J2EE development practices and supports Web projects targeted to WebSphere® servers
Correctness Contains rules to detect incorrect method calls
Data Race Contains rules to detect method invocations that can cause data race conditions in J2EE applications
Garbage Collection Contains rules to detect method invocations that can delay garbage collection
Maintainability Contains rules to detect code that may be hard to maintain in J2EE applications
Performance and Scalability Contains rules to detect method invocations that hinder the performance or limit the scalability of a J2EE application
Resource Management Contains J2EE best practice rules for using resources in J2EE applications
J2SE Best Practices Contains rules that validate code for compliance with J2SE best practices for Java™ development
AWT Contains rules that detect issues related to using the Abstract Window Toolkit library
Casting Contains rules that detect issues related to casting and coercion
Cloneable Contains rules that detect issues related to object cloning
Comparison Contains rules that detect issues related to comparing objects and testing object equality
Conditional Contains rules that detect issues related to the usage of conditionals
Constructors Contains rules that detect issues related to defining and implementing constructors
Declaration Contains rules that detect issues related to declaring constants, variables, and fields
Exceptions Contains rules that detect issues related to exception handling
Initialization Contains rules that detect issues related to the initialization of primitives and objects
Null Contains rules that detect issues related to using null
Portability Contains rules that detect issues related to portability
Reflection Contains rules that detect issues related to using reflection
Serialization Contains rules that detect issues related to serialization
Statement Contains rules that detect general issues in statements
Switch Contains rules that detect issues related to using switch statements
Threads Contains rules that detect issues related to using threads
Naming Conventions Contains rules for naming conventions of elements in the Java code
Conflicts Contains rules to ensure that elements are named consistently in the Java code
Performance Contains rules that enforce suggestions for improving performance and reducing the memory footprint in Java applications
Memory Contains rules that detect performance issues related to memory usage
Profiling Contains rules that detect potential performance issues related to profiling activities
Speed Contains rules that suggest ways to improve the speed of Java code execution
Private API Contains rules that locate APIs that do not belong in Java code
Eclipse Contains rules that locate APIs that do not belong in Java code
Sun Contains rules that locate APIs that do not belong in Java code
WebSphere Contains rules that locate APIs that do not belong in Java code
Security Contains rules that validate compliance with Java security standards
J2EE Security Contains rules that validate compliance with Java security standards in a J2EE perspective
J2SE Security Contains rules that validate compliance with Java security standards in a J2SE perspective

Sample rule

The following rule is a sample one that is applied in the Complete code review. It is in the J2SE Best Practices category, in the Comparison subcategory:
Always override both java.lang.Object.equals()and java.lang.Object.hashCode()
Feedback
(C) Copyright IBM Corporation 2000, 2005. All Rights Reserved.