2020-11-14 09:20:07 +00:00
<!DOCTYPE html>
< html >
< head >
< meta charset = "utf-8" >
< meta http-equiv = "X-UA-Compatible" content = "IE=edge" >
< meta name = "viewport" content = "width=device-width, initial-scale=1" >
< meta name = "description" content = "Rules which enforce a specific coding style." >
2023-03-03 20:15:41 +00:00
< meta name = "keywords" content = " Code Style, ClassNamingConventions, IfElseStmtsMustUseBraces, IfStmtsMustUseBraces, FieldDeclarationsShouldBeAtStart, FieldNamingConventions, ForLoopsMustUseBraces, FormalParameterNamingConventions, LocalVariableNamingConventions, MethodNamingConventions, OneDeclarationPerLine, PropertyNamingConventions, WhileLoopsMustUseBraces" >
2020-11-14 09:20:07 +00:00
< title > Code Style | PMD Source Code Analyzer< / title >
2023-04-28 11:49:15 +00:00
< link rel = "stylesheet" type = "text/css" href = "assets/fontawesome-free-5.15.4-web/css/all.min.css" >
2023-03-03 20:15:41 +00:00
< link rel = "stylesheet" type = "text/css" href = "assets/bootstrap-4.5.2-dist/css/bootstrap.min.css" >
2020-11-14 09:20:07 +00:00
2023-03-03 20:15:41 +00:00
< link rel = "stylesheet" type = "text/css" href = "css/syntax.css" >
< link rel = "stylesheet" type = "text/css" href = "css/modern-business.css" >
< link rel = "stylesheet" type = "text/css" href = "css/customstyles.css" >
< link rel = "stylesheet" type = "text/css" href = "css/theme-green.css" >
< link rel = "stylesheet" type = "text/css" href = "css/pmd-customstyles.css" >
2020-11-14 09:20:07 +00:00
2023-04-28 11:49:15 +00:00
< link rel = "shortcut icon" href = "images/logo/favicon.ico" type = "image/x-icon" >
< link rel = "icon" href = "images/logo/favicon.ico" type = "image/x-icon" >
2020-11-14 09:20:07 +00:00
2023-03-03 20:15:41 +00:00
< link rel = "alternate" type = "application/rss+xml" title = "" href = "feed.xml" >
2020-11-14 09:20:07 +00:00
< / head >
< body >
<!-- Content is offset by the height of the topnav bar. -->
<!-- There's already a padding - top rule in modern - business.css, but it apparently doesn't work on Firefox 60 and Chrome 67 -->
< div id = "topbar-content-offset" >
<!-- Navigation -->
2023-03-03 20:15:41 +00:00
< nav class = "navbar navbar-expand-lg fixed-top navbar-dark" >
2020-11-14 09:20:07 +00:00
< div class = "container topnavlinks" >
2023-03-03 20:15:41 +00:00
< a class = "navbar-brand fas fa-home fa-lg" href = "index.html" > < span class = "projectTitle" > PMD Source Code Analyzer Project< / span > < / a >
< button class = "navbar-toggler" type = "button" data-toggle = "collapse" data-target = "#navbarSupportedContent" aria-controls = "navbarSupportedContent" aria-expanded = "false" aria-label = "Toggle navigation" >
< span class = "navbar-toggler-icon" > < / span >
< / button >
< div class = "collapse navbar-collapse" id = "navbarSupportedContent" >
< ul class = "navbar-nav mr-auto mt-2 mt-lg-0" > < / ul >
< ul class = "navbar-nav" >
2020-11-14 09:20:07 +00:00
<!-- toggle sidebar button -->
2023-03-03 20:15:41 +00:00
< li class = "nav-item" > < a id = "tg-sb-link" class = "nav-link" href = "#" > < i id = "tg-sb-icon" class = "fas fa-toggle-on" > < / i > Nav< / a > < / li >
2020-11-14 09:20:07 +00:00
<!-- entries without drop - downs appear here -->
2023-03-03 20:15:41 +00:00
< li class = "nav-item" > < a class = "nav-link" href = "https://github.com/pmd/pmd/releases/latest" target = "_blank" > Download< / a > < / li >
< li class = "nav-item" > < a class = "nav-link" href = "https://github.com/pmd/pmd" target = "_blank" > Fork us on github< / a > < / li >
2020-11-14 09:20:07 +00:00
<!-- entries with drop - downs appear here -->
<!-- conditional logic to control which topnav appears for the audience defined in the configuration file. -->
< / ul >
2023-03-03 20:15:41 +00:00
< form class = "form-inline my-2 my-lg-0" >
< input class = "form-control mr-sm-2" type = "search" placeholder = "search..." id = "search-input" >
< ul id = "results-container" > < / ul >
< / form >
2020-11-14 09:20:07 +00:00
< / div >
2023-03-03 20:15:41 +00:00
< / div >
2020-11-14 09:20:07 +00:00
< / nav >
<!-- Page Content -->
2022-02-25 09:51:51 +00:00
< div class = "container-toc-wrapper" >
< div class = "container" >
< div class = "col-lg-12" > < / div >
<!-- Content Row -->
< div class = "row" >
2020-11-14 09:20:07 +00:00
2022-02-25 09:51:51 +00:00
<!-- Sidebar Column -->
< div class = "col-md-3" id = "tg-sb-sidebar" >
2020-11-14 09:20:07 +00:00
< ul id = "mysidebar" class = "nav" >
2024-10-25 08:59:30 +00:00
< li class = "sidebarTitle" > PMD 7.8.0-SNAPSHOT< / li >
< div class = "sidebarTitleDate" > Release date: 29-November-2024< / div >
2020-11-14 09:20:07 +00:00
< li >
< a href = "#" > About< / a >
< ul >
< li > < a href = "index.html" > Home< / a > < / li >
2023-03-23 09:46:34 +00:00
< li > < a href = "pmd_release_notes.html" > Release notes< / a > < / li >
2020-11-14 09:20:07 +00:00
2023-03-23 09:46:34 +00:00
< li > < a href = "pmd_release_notes_pmd7.html" > Release notes (PMD 7)< / a > < / li >
2020-11-14 09:20:07 +00:00
< li > < a href = "pmd_about_help.html" > Getting help< / a > < / li >
2024-06-20 14:27:53 +00:00
< li > < a href = "pmd_about_release_policies.html" > Release policies< / a > < / li >
< li > < a href = "pmd_about_support_lifecycle.html" > Support lifecycle< / a > < / li >
2020-11-14 09:20:07 +00:00
< / ul >
< / li >
< li >
< a href = "#" > User Documentation< / a >
< ul >
2023-08-31 14:51:16 +00:00
< li > < a href = "pmd_userdocs_migrating_to_pmd7.html" > Migration Guide for PMD 7< / a > < / li >
2020-11-14 09:20:07 +00:00
< li > < a href = "pmd_userdocs_installation.html" > Installation and basic CLI usage< / a > < / li >
< li > < a href = "pmd_userdocs_making_rulesets.html" > Making rulesets< / a > < / li >
< li > < a href = "pmd_userdocs_configuring_rules.html" > Configuring rules< / a > < / li >
< li > < a href = "pmd_userdocs_best_practices.html" > Best practices< / a > < / li >
< li > < a href = "pmd_userdocs_suppressing_warnings.html" > Suppressing warnings< / a > < / li >
< li > < a href = "pmd_userdocs_incremental_analysis.html" > Incremental analysis< / a > < / li >
< li > < a href = "pmd_userdocs_cli_reference.html" > PMD CLI reference< / a > < / li >
< li > < a href = "pmd_userdocs_report_formats.html" > PMD Report formats< / a > < / li >
2022-09-29 15:04:50 +00:00
< li > < a href = "pmd_userdocs_3rdpartyrulesets.html" > 3rd party rulesets< / a > < / li >
2020-11-14 09:20:07 +00:00
< li class = "subfolders" >
< a href = "#" > CPD reference< / a >
< ul >
< li > < a href = "pmd_userdocs_cpd.html" > Copy-paste detection< / a > < / li >
< li > < a href = "pmd_userdocs_cpd_report_formats.html" > CPD Report formats< / a > < / li >
< / ul >
< / li >
< li class = "subfolders" >
< a href = "#" > Extending PMD< / a >
< ul >
< li > < a href = "pmd_userdocs_extending_writing_rules_intro.html" > Introduction to writing rules< / a > < / li >
< li > < a href = "pmd_userdocs_extending_your_first_rule.html" > Your first rule< / a > < / li >
< li > < a href = "pmd_userdocs_extending_writing_xpath_rules.html" > XPath rules< / a > < / li >
< li > < a href = "pmd_userdocs_extending_writing_java_rules.html" > Java rules< / a > < / li >
< li > < a href = "pmd_userdocs_extending_designer_reference.html" > Rule designer reference< / a > < / li >
< li > < a href = "pmd_userdocs_extending_defining_properties.html" > Defining rule properties< / a > < / li >
< li > < a href = "pmd_userdocs_extending_rule_guidelines.html" > Rule guidelines< / a > < / li >
< li > < a href = "pmd_userdocs_extending_testing.html" > Testing your rules< / a > < / li >
2024-02-09 17:22:16 +00:00
< li > < a href = "pmd_userdocs_extending_ast_dump.html" > Creating (XML) dump of the AST< / a > < / li >
2020-11-14 09:20:07 +00:00
< / ul >
< / li >
< li class = "subfolders" >
< a href = "#" > Tools / Integrations< / a >
< ul >
< li > < a href = "pmd_userdocs_tools_maven.html" > Maven PMD Plugin< / a > < / li >
< li > < a href = "pmd_userdocs_tools_gradle.html" > Gradle< / a > < / li >
< li > < a href = "pmd_userdocs_tools_ant.html" > Ant< / a > < / li >
< li > < a href = "pmd_userdocs_tools_java_api.html" > PMD Java API< / a > < / li >
2023-10-20 00:49:52 +00:00
< li > < a href = "pmd_userdocs_tools_bld.html" > bld PMD Extension< / a > < / li >
2020-11-14 09:20:07 +00:00
< li > < a href = "pmd_userdocs_tools_ci.html" > CI integrations< / a > < / li >
< li > < a href = "pmd_userdocs_tools.html" > Other Tools / Integrations< / a > < / li >
< / ul >
< / li >
< / ul >
< / li >
< li >
< a href = "#" > Rule Reference< / a >
< ul >
< li class = "subfolders" >
< a href = "#" > Apex Rules< / a >
< ul >
< li > < a href = "pmd_rules_apex.html" > Index< / a > < / li >
< li > < a href = "pmd_rules_apex_bestpractices.html" > Best Practices< / a > < / li >
< li class = "active" > < a href = "pmd_rules_apex_codestyle.html" > Code Style< / a > < / li >
< li > < a href = "pmd_rules_apex_design.html" > Design< / a > < / li >
< li > < a href = "pmd_rules_apex_documentation.html" > Documentation< / a > < / li >
< li > < a href = "pmd_rules_apex_errorprone.html" > Error Prone< / a > < / li >
< li > < a href = "pmd_rules_apex_performance.html" > Performance< / a > < / li >
< li > < a href = "pmd_rules_apex_security.html" > Security< / a > < / li >
< / ul >
< / li >
2022-04-28 13:34:56 +00:00
< li class = "subfolders" >
< a href = "#" > HTML Rules< / a >
< ul >
< li > < a href = "pmd_rules_html.html" > Index< / a > < / li >
< li > < a href = "pmd_rules_html_bestpractices.html" > Best Practices< / a > < / li >
< / ul >
< / li >
2020-11-14 09:20:07 +00:00
< li class = "subfolders" >
< a href = "#" > Java Rules< / a >
< ul >
< li > < a href = "pmd_rules_java.html" > Index< / a > < / li >
< li > < a href = "pmd_rules_java_bestpractices.html" > Best Practices< / a > < / li >
< li > < a href = "pmd_rules_java_codestyle.html" > Code Style< / a > < / li >
< li > < a href = "pmd_rules_java_design.html" > Design< / a > < / li >
< li > < a href = "pmd_rules_java_documentation.html" > Documentation< / a > < / li >
< li > < a href = "pmd_rules_java_errorprone.html" > Error Prone< / a > < / li >
< li > < a href = "pmd_rules_java_multithreading.html" > Multithreading< / a > < / li >
< li > < a href = "pmd_rules_java_performance.html" > Performance< / a > < / li >
< li > < a href = "pmd_rules_java_security.html" > Security< / a > < / li >
< / ul >
< / li >
< li class = "subfolders" >
< a href = "#" > Java Server Pages Rules< / a >
< ul >
< li > < a href = "pmd_rules_jsp.html" > Index< / a > < / li >
< li > < a href = "pmd_rules_jsp_bestpractices.html" > Best Practices< / a > < / li >
< li > < a href = "pmd_rules_jsp_codestyle.html" > Code Style< / a > < / li >
< li > < a href = "pmd_rules_jsp_design.html" > Design< / a > < / li >
< li > < a href = "pmd_rules_jsp_errorprone.html" > Error Prone< / a > < / li >
< li > < a href = "pmd_rules_jsp_security.html" > Security< / a > < / li >
< / ul >
< / li >
2023-03-03 20:15:41 +00:00
< li class = "subfolders" >
< a href = "#" > JavaScript Rules< / a >
< ul >
< li > < a href = "pmd_rules_ecmascript.html" > Index< / a > < / li >
< li > < a href = "pmd_rules_ecmascript_bestpractices.html" > Best Practices< / a > < / li >
< li > < a href = "pmd_rules_ecmascript_codestyle.html" > Code Style< / a > < / li >
< li > < a href = "pmd_rules_ecmascript_errorprone.html" > Error Prone< / a > < / li >
2024-08-29 16:28:37 +00:00
< li > < a href = "pmd_rules_ecmascript_performance.html" > Performance< / a > < / li >
2023-03-03 20:15:41 +00:00
< / ul >
< / li >
< li class = "subfolders" >
< a href = "#" > Kotlin Rules< / a >
< ul >
< li > < a href = "pmd_rules_kotlin.html" > Index< / a > < / li >
< li > < a href = "pmd_rules_kotlin_bestpractices.html" > Best Practices< / a > < / li >
< li > < a href = "pmd_rules_kotlin_errorprone.html" > Error Prone< / a > < / li >
< / ul >
< / li >
2020-11-14 09:20:07 +00:00
< li class = "subfolders" >
< a href = "#" > Maven POM Rules< / a >
< ul >
< li > < a href = "pmd_rules_pom.html" > Index< / a > < / li >
< li > < a href = "pmd_rules_pom_errorprone.html" > Error Prone< / a > < / li >
< / ul >
< / li >
< li class = "subfolders" >
< a href = "#" > Modelica Rules< / a >
< ul >
< li > < a href = "pmd_rules_modelica.html" > Index< / a > < / li >
< li > < a href = "pmd_rules_modelica_bestpractices.html" > Best Practices< / a > < / li >
< / ul >
< / li >
< li class = "subfolders" >
< a href = "#" > PLSQL Rules< / a >
< ul >
< li > < a href = "pmd_rules_plsql.html" > Index< / a > < / li >
< li > < a href = "pmd_rules_plsql_bestpractices.html" > Best Practices< / a > < / li >
< li > < a href = "pmd_rules_plsql_codestyle.html" > Code Style< / a > < / li >
< li > < a href = "pmd_rules_plsql_design.html" > Design< / a > < / li >
< li > < a href = "pmd_rules_plsql_errorprone.html" > Error Prone< / a > < / li >
< / ul >
< / li >
< li class = "subfolders" >
2023-10-20 00:49:52 +00:00
< a href = "#" > Salesforce Visualforce Rules< / a >
2020-11-14 09:20:07 +00:00
< ul >
2024-03-04 19:16:42 +00:00
< li > < a href = "pmd_rules_visualforce.html" > Index< / a > < / li >
2020-11-14 09:20:07 +00:00
2024-03-04 19:16:42 +00:00
< li > < a href = "pmd_rules_visualforce_security.html" > Security< / a > < / li >
2020-11-14 09:20:07 +00:00
< / ul >
< / li >
2022-11-18 15:25:16 +00:00
< li class = "subfolders" >
< a href = "#" > Scala Rules< / a >
< ul >
< li > < a href = "pmd_rules_scala.html" > Index< / a > < / li >
< / ul >
< / li >
2023-03-03 20:15:41 +00:00
< li class = "subfolders" >
< a href = "#" > Swift Rules< / a >
< ul >
< li > < a href = "pmd_rules_swift.html" > Index< / a > < / li >
< li > < a href = "pmd_rules_swift_bestpractices.html" > Best Practices< / a > < / li >
< li > < a href = "pmd_rules_swift_errorprone.html" > Error Prone< / a > < / li >
< / ul >
< / li >
2020-11-14 09:20:07 +00:00
< li class = "subfolders" >
2023-10-20 00:49:52 +00:00
< a href = "#" > Velocity Template Language (VTL) Rules< / a >
2020-11-14 09:20:07 +00:00
< ul >
2024-03-04 19:16:42 +00:00
< li > < a href = "pmd_rules_velocity.html" > Index< / a > < / li >
2020-11-14 09:20:07 +00:00
2024-03-04 19:16:42 +00:00
< li > < a href = "pmd_rules_velocity_bestpractices.html" > Best Practices< / a > < / li >
2020-11-14 09:20:07 +00:00
2024-03-04 19:16:42 +00:00
< li > < a href = "pmd_rules_velocity_design.html" > Design< / a > < / li >
2020-11-14 09:20:07 +00:00
2024-03-04 19:16:42 +00:00
< li > < a href = "pmd_rules_velocity_errorprone.html" > Error Prone< / a > < / li >
2020-11-14 09:20:07 +00:00
< / ul >
< / li >
2022-11-18 15:25:16 +00:00
< li class = "subfolders" >
< a href = "#" > WSDL Rules< / a >
< ul >
< li > < a href = "pmd_rules_wsdl.html" > Index< / a > < / li >
< / ul >
< / li >
2020-11-14 09:20:07 +00:00
< li class = "subfolders" >
< a href = "#" > XML Rules< / a >
< ul >
< li > < a href = "pmd_rules_xml.html" > Index< / a > < / li >
2023-10-19 09:25:45 +00:00
< li > < a href = "pmd_rules_xml_bestpractices.html" > Best Practices< / a > < / li >
2020-11-14 09:20:07 +00:00
< li > < a href = "pmd_rules_xml_errorprone.html" > Error Prone< / a > < / li >
< / ul >
< / li >
< li class = "subfolders" >
< a href = "#" > XSL Rules< / a >
< ul >
< li > < a href = "pmd_rules_xsl.html" > Index< / a > < / li >
< li > < a href = "pmd_rules_xsl_codestyle.html" > Code Style< / a > < / li >
< li > < a href = "pmd_rules_xsl_performance.html" > Performance< / a > < / li >
< / ul >
< / li >
< / ul >
< / li >
< li >
2023-03-03 20:15:41 +00:00
< a href = "#" > Language-Specific Documentation< / a >
2020-11-14 09:20:07 +00:00
< ul >
2023-10-20 00:49:52 +00:00
< li > < a href = "pmd_languages_index.html" > Overview< / a > < / li >
2023-03-03 20:15:41 +00:00
< li > < a href = "pmd_languages_configuration.html" > Language configuration< / a > < / li >
2020-11-14 09:20:07 +00:00
2023-03-03 20:15:41 +00:00
< li > < a href = "pmd_languages_apex.html" > Apex< / a > < / li >
2022-03-27 15:04:13 +00:00
2023-03-03 20:15:41 +00:00
2023-10-20 00:49:52 +00:00
< li > < a href = "pmd_languages_cpp.html" > C/C++< / a > < / li >
< li > < a href = "pmd_languages_cs.html" > C#< / a > < / li >
< li > < a href = "pmd_languages_coco.html" > Coco< / a > < / li >
< li > < a href = "pmd_languages_dart.html" > Dart< / a > < / li >
< li > < a href = "pmd_languages_fortran.html" > Fortran< / a > < / li >
< li > < a href = "pmd_languages_gherkin.html" > Gherkin< / a > < / li >
< li > < a href = "pmd_languages_go.html" > Go< / a > < / li >
< li > < a href = "pmd_languages_html.html" > HTML< / a > < / li >
2023-03-03 20:15:41 +00:00
< li > < a href = "pmd_languages_java.html" > Java< / a > < / li >
2022-03-27 15:04:13 +00:00
2023-04-29 14:37:59 +00:00
< li > < a href = "pmd_languages_js_ts.html" > JavaScript / TypeScript< / a > < / li >
2023-03-03 20:15:41 +00:00
< li > < a href = "pmd_languages_jsp.html" > JSP< / a > < / li >
2020-11-14 09:20:07 +00:00
2023-10-20 00:49:52 +00:00
< li > < a href = "pmd_languages_julia.html" > Julia< / a > < / li >
2023-03-03 20:15:41 +00:00
< li > < a href = "pmd_languages_kotlin.html" > Kotlin< / a > < / li >
2020-11-14 09:20:07 +00:00
2021-03-26 08:22:23 +00:00
2023-10-20 00:49:52 +00:00
< li > < a href = "pmd_languages_lua.html" > Lua< / a > < / li >
< li > < a href = "pmd_languages_matlab.html" > Matlab< / a > < / li >
< li > < a href = "pmd_languages_modelica.html" > Modelica< / a > < / li >
< li > < a href = "pmd_languages_objectivec.html" > Objective-C< / a > < / li >
< li > < a href = "pmd_languages_perl.html" > Perl< / a > < / li >
< li > < a href = "pmd_languages_php.html" > PHP< / a > < / li >
2021-03-26 08:22:23 +00:00
< li > < a href = "pmd_languages_plsql.html" > PLSQL< / a > < / li >
2021-10-29 17:50:40 +00:00
2023-10-20 00:49:52 +00:00
< li > < a href = "pmd_languages_python.html" > Python< / a > < / li >
2022-04-28 13:34:56 +00:00
2022-07-01 07:55:16 +00:00
2023-10-20 00:49:52 +00:00
< li > < a href = "pmd_languages_ruby.html" > Ruby< / a > < / li >
2022-07-01 07:55:16 +00:00
2023-04-29 16:54:57 +00:00
2023-10-20 00:49:52 +00:00
< li > < a href = "pmd_languages_scala.html" > Scala< / a > < / li >
2023-04-29 16:54:57 +00:00
2023-05-19 09:58:17 +00:00
2023-10-20 00:49:52 +00:00
< li > < a href = "pmd_languages_swift.html" > Swift< / a > < / li >
2023-10-20 00:42:49 +00:00
2023-10-20 00:49:52 +00:00
< li > < a href = "pmd_languages_tsql.html" > T-SQL< / a > < / li >
2023-10-20 00:42:49 +00:00
2023-10-20 00:49:52 +00:00
< li > < a href = "pmd_languages_visualforce.html" > Visualforce< / a > < / li >
2024-03-04 19:16:42 +00:00
< li > < a href = "pmd_languages_velocity.html" > Velocity Template Language (VTL)< / a > < / li >
2023-10-20 00:49:52 +00:00
< li > < a href = "pmd_languages_xml.html" > XML and XML dialects< / a > < / li >
2023-05-19 09:58:17 +00:00
2020-11-14 09:20:07 +00:00
< / ul >
< / li >
< li >
< a href = "#" > Developer Documentation< / a >
< ul >
< li > < a href = "pmd_devdocs_development.html" > Developer resources< / a > < / li >
< li > < a href = "pmd_devdocs_building.html" > Building PMD from source< / a > < / li >
2024-09-26 14:58:11 +00:00
< li > < a href = "https://github.com/pmd/pmd/blob/main/CONTRIBUTING.md" target = "_blank" > Contributing< / a > < / li >
2020-11-14 09:20:07 +00:00
< li > < a href = "pmd_devdocs_writing_documentation.html" > Writing documentation< / a > < / li >
< li > < a href = "pmd_devdocs_roadmap.html" > Roadmap< / a > < / li >
< li > < a href = "pmd_devdocs_how_pmd_works.html" > How PMD works< / a > < / li >
< li > < a href = "pmd_devdocs_pmdtester.html" > Pmdtester< / a > < / li >
< li > < a href = "pmd_devdocs_rule_deprecation_policy.html" > Rule Deprecation Policy< / a > < / li >
< li class = "subfolders" >
< a href = "#" > Major contributions< / a >
< ul >
2021-08-27 14:58:36 +00:00
< li > < a href = "pmd_devdocs_major_rule_guidelines.html" > Rule Guidelines< / a > < / li >
2023-03-03 20:15:41 +00:00
< li > < a href = "pmd_devdocs_major_adding_new_language_javacc.html" > Adding a new language (JavaCC)< / a > < / li >
2020-11-14 09:20:07 +00:00
2023-04-20 15:12:02 +00:00
< li > < a href = "pmd_devdocs_major_adding_new_language_antlr.html" > Adding a new language (ANTLR)< / a > < / li >
2020-11-14 09:20:07 +00:00
2023-03-03 20:15:41 +00:00
< li > < a href = "pmd_devdocs_major_adding_new_cpd_language.html" > Adding a new CPD language< / a > < / li >
2020-11-14 09:20:07 +00:00
< / ul >
< / li >
< li class = "subfolders" >
< a href = "#" > Experimental features< / a >
< ul >
2023-10-20 00:49:52 +00:00
< li > < a href = "tag_experimental.html" > List of experimental Features< / a > < / li >
2020-11-14 09:20:07 +00:00
< / ul >
< / li >
< / ul >
< / li >
< li >
< a href = "#" > Project documentation< / a >
< ul >
< li class = "subfolders" >
< a href = "#" > Trivia about PMD< / a >
< ul >
< li > < a href = "pmd_projectdocs_trivia_news.html" > PMD in the press< / a > < / li >
< li > < a href = "pmd_projectdocs_trivia_products.html" > Products & books related to PMD< / a > < / li >
< li > < a href = "pmd_projectdocs_trivia_similarprojects.html" > Similar projects< / a > < / li >
< li > < a href = "pmd_projectdocs_trivia_meaning.html" > What does 'PMD' mean?< / a > < / li >
< / ul >
< / li >
2023-03-03 20:15:41 +00:00
< li > < a href = "pmd_projectdocs_logo.html" > Logo< / a > < / li >
2020-11-14 09:20:07 +00:00
< li > < a href = "pmd_projectdocs_faq.html" > FAQ< / a > < / li >
< li > < a href = "license.html" > License< / a > < / li >
< li > < a href = "pmd_projectdocs_credits.html" > Credits< / a > < / li >
< li > < a href = "pmd_release_notes_old.html" > Old release notes< / a > < / li >
2022-09-30 10:03:06 +00:00
< li > < a href = "pmd_projectdocs_decisions.html" > Decisions< / a > < / li >
2020-11-14 09:20:07 +00:00
< li class = "subfolders" >
< a href = "#" > Project management< / a >
< ul >
2021-04-23 20:35:51 +00:00
< li > < a href = "pmd_projectdocs_committers_infrastructure.html" > Infrastructure< / a > < / li >
2020-11-14 09:20:07 +00:00
< li > < a href = "pmd_projectdocs_committers_releasing.html" > Release process< / a > < / li >
< li > < a href = "pmd_projectdocs_committers_merging_pull_requests.html" > Merging pull requests< / a > < / li >
< li > < a href = "pmd_projectdocs_committers_main_landing_page.html" > Main Landing page< / a > < / li >
< / ul >
< / li >
< / ul >
< / li >
< / ul >
2022-02-25 09:51:51 +00:00
< / div >
2020-11-14 09:20:07 +00:00
2022-02-25 09:51:51 +00:00
<!-- Content Column -->
< div class = "col-md-9" id = "tg-sb-content" >
2022-03-24 11:42:13 +00:00
< header >
< div class = "row" >
< div class = "col-lg-12" >
< a href = "./" role = "button"
>< i class = "fa fa-home fa-lg" > < /i
>< / a >
» Code Style
< a
target="_blank"
2024-09-26 14:58:11 +00:00
href="https://github.com/pmd/pmd/blob/main/docs/../pmd-apex/src/main/resources/category/apex/codestyle.xml"
2023-03-03 20:15:41 +00:00
class="float-right"
2022-03-24 11:42:13 +00:00
role="button"
2023-03-16 10:46:54 +00:00
>< i class = "fab fa-github fa-lg" > < / i > Edit on GitHub< /a
2022-03-24 11:42:13 +00:00
>
< / div >
< / div >
< hr / >
< / header >
< div class = "post-header" >
2020-11-14 09:20:07 +00:00
< h1 class = "post-title-main" > Code Style< / h1 >
< / div >
2024-09-26 14:58:11 +00:00
< div class = "post-content" data-github-edit-url = "https://github.com/pmd/pmd/blob/main/docs/../pmd-apex/src/main/resources/category/apex/codestyle.xml" >
2020-11-14 09:20:07 +00:00
< div class = "summary" > Rules which enforce a specific coding style.< / div >
2023-08-22 15:14:23 +00:00
< details id = "inline-toc-details" >
< summary > Table of Contents< / summary >
< div id = "inline-toc" > <!-- empty, move TOC here when screen size too small --> < / div >
< / details >
2023-03-03 20:15:41 +00:00
2020-11-14 09:20:07 +00:00
<!-- DO NOT EDIT THIS FILE. This file is generated from file ../pmd - apex/src/main/resources/category/apex/codestyle.xml. -->
< h2 id = "classnamingconventions" > ClassNamingConventions< / h2 >
< p > < strong > Since:< / strong > PMD 5.5.0< / p >
< p > < strong > Priority:< / strong > High (1)< / p >
< p > Configurable naming conventions for type declarations. This rule reports
type declarations which do not match the regex that applies to their
specific kind (e.g. enum or interface). Each regex can be configured through
properties.< / p >
< p > By default this rule uses the standard Apex naming convention (Pascal case).< / p >
2024-09-26 14:58:11 +00:00
< p > < strong > This rule is defined by the following Java class:< / strong > < a href = "https://github.com/pmd/pmd/blob/main/pmd-apex/src/main/java/net/sourceforge/pmd/lang/apex/rule/codestyle/ClassNamingConventionsRule.java" > net.sourceforge.pmd.lang.apex.rule.codestyle.ClassNamingConventionsRule< / a > < / p >
2020-11-14 09:20:07 +00:00
< p > < strong > Example(s):< / strong > < / p >
< div class = "language-java highlighter-rouge" > < div class = "highlight" > < pre class = "highlight" > < code > < span class = "kd" > public< / span > < span class = "kd" > class< / span > < span class = "nc" > FooClass< / span > < span class = "o" > {< / span > < span class = "o" > }< / span > < span class = "c1" > // This is in pascal case, so it's ok< / span >
< span class = "kd" > public< / span > < span class = "kd" > class< / span > < span class = "nc" > fooClass< / span > < span class = "o" > {< / span > < span class = "o" > }< / span > < span class = "c1" > // This will be reported unless you change the regex< / span >
< / code > < / pre > < / div > < / div >
< p > < strong > This rule has the following properties:< / strong > < / p >
< table >
< thead >
< tr >
< th > Name< / th >
< th > Default Value< / th >
< th > Description< / th >
< / tr >
< / thead >
< tbody >
< tr >
< td > testClassPattern< / td >
< td > [A-Z][a-zA-Z0-9_]*< / td >
< td > Regex which applies to test class names< / td >
< / tr >
2024-07-18 14:28:56 +00:00
< tr >
< td > innerClassPattern< / td >
< td > [A-Z][a-zA-Z0-9_]*< / td >
< td > Regex which applies to inner class names< / td >
< / tr >
< tr >
< td > innerInterfacePattern< / td >
< td > [A-Z][a-zA-Z0-9_]*< / td >
< td > Regex which applies to inner interface names< / td >
< / tr >
2020-11-14 09:20:07 +00:00
< tr >
< td > abstractClassPattern< / td >
< td > [A-Z][a-zA-Z0-9_]*< / td >
< td > Regex which applies to abstract class names< / td >
< / tr >
< tr >
< td > classPattern< / td >
< td > [A-Z][a-zA-Z0-9_]*< / td >
< td > Regex which applies to class names< / td >
< / tr >
< tr >
< td > interfacePattern< / td >
< td > [A-Z][a-zA-Z0-9_]*< / td >
< td > Regex which applies to interface names< / td >
< / tr >
< tr >
< td > enumPattern< / td >
< td > [A-Z][a-zA-Z0-9_]*< / td >
< td > Regex which applies to enum names< / td >
< / tr >
< / tbody >
< / table >
< p > < strong > Use this rule with the default properties by just referencing it:< / strong > < / p >
< div class = "language-xml highlighter-rouge" > < div class = "highlight" > < pre class = "highlight" > < code > < span class = "nt" > < rule< / span > < span class = "na" > ref=< / span > < span class = "s" > "category/apex/codestyle.xml/ClassNamingConventions"< / span > < span class = "nt" > /> < / span >
< / code > < / pre > < / div > < / div >
< p > < strong > Use this rule and customize it:< / strong > < / p >
< div class = "language-xml highlighter-rouge" > < div class = "highlight" > < pre class = "highlight" > < code > < span class = "nt" > < rule< / span > < span class = "na" > ref=< / span > < span class = "s" > "category/apex/codestyle.xml/ClassNamingConventions"< / span > < span class = "nt" > > < / span >
< span class = "nt" > < properties> < / span >
< span class = "nt" > < property< / span > < span class = "na" > name=< / span > < span class = "s" > "testClassPattern"< / span > < span class = "na" > value=< / span > < span class = "s" > "[A-Z][a-zA-Z0-9_]*"< / span > < span class = "nt" > /> < / span >
2024-07-18 14:28:56 +00:00
< span class = "nt" > < property< / span > < span class = "na" > name=< / span > < span class = "s" > "innerClassPattern"< / span > < span class = "na" > value=< / span > < span class = "s" > "[A-Z][a-zA-Z0-9_]*"< / span > < span class = "nt" > /> < / span >
< span class = "nt" > < property< / span > < span class = "na" > name=< / span > < span class = "s" > "innerInterfacePattern"< / span > < span class = "na" > value=< / span > < span class = "s" > "[A-Z][a-zA-Z0-9_]*"< / span > < span class = "nt" > /> < / span >
2020-11-14 09:20:07 +00:00
< span class = "nt" > < property< / span > < span class = "na" > name=< / span > < span class = "s" > "abstractClassPattern"< / span > < span class = "na" > value=< / span > < span class = "s" > "[A-Z][a-zA-Z0-9_]*"< / span > < span class = "nt" > /> < / span >
< span class = "nt" > < property< / span > < span class = "na" > name=< / span > < span class = "s" > "classPattern"< / span > < span class = "na" > value=< / span > < span class = "s" > "[A-Z][a-zA-Z0-9_]*"< / span > < span class = "nt" > /> < / span >
< span class = "nt" > < property< / span > < span class = "na" > name=< / span > < span class = "s" > "interfacePattern"< / span > < span class = "na" > value=< / span > < span class = "s" > "[A-Z][a-zA-Z0-9_]*"< / span > < span class = "nt" > /> < / span >
< span class = "nt" > < property< / span > < span class = "na" > name=< / span > < span class = "s" > "enumPattern"< / span > < span class = "na" > value=< / span > < span class = "s" > "[A-Z][a-zA-Z0-9_]*"< / span > < span class = "nt" > /> < / span >
< span class = "nt" > < /properties> < / span >
< span class = "nt" > < /rule> < / span >
< / code > < / pre > < / div > < / div >
< h2 id = "fielddeclarationsshouldbeatstart" > FieldDeclarationsShouldBeAtStart< / h2 >
< p > < strong > Since:< / strong > PMD 6.23.0< / p >
< p > < strong > Priority:< / strong > Medium (3)< / p >
< p > Field declarations should appear before method declarations within a class.< / p >
2024-09-26 14:58:11 +00:00
< p > < strong > This rule is defined by the following Java class:< / strong > < a href = "https://github.com/pmd/pmd/blob/main/pmd-apex/src/main/java/net/sourceforge/pmd/lang/apex/rule/codestyle/FieldDeclarationsShouldBeAtStartRule.java" > net.sourceforge.pmd.lang.apex.rule.codestyle.FieldDeclarationsShouldBeAtStartRule< / a > < / p >
2020-11-14 09:20:07 +00:00
< p > < strong > Example(s):< / strong > < / p >
< div class = "language-java highlighter-rouge" > < div class = "highlight" > < pre class = "highlight" > < code > < span class = "kd" > class< / span > < span class = "nc" > Foo< / span > < span class = "o" > {< / span >
< span class = "kd" > public< / span > < span class = "nc" > Integer< / span > < span class = "n" > someField< / span > < span class = "o" > ;< / span > < span class = "c1" > // good< / span >
< span class = "kd" > public< / span > < span class = "kt" > void< / span > < span class = "nf" > someMethod< / span > < span class = "o" > ()< / span > < span class = "o" > {< / span >
< span class = "o" > }< / span >
< span class = "kd" > public< / span > < span class = "nc" > Integer< / span > < span class = "n" > anotherField< / span > < span class = "o" > ;< / span > < span class = "c1" > // bad< / span >
< span class = "o" > }< / span >
< / code > < / pre > < / div > < / div >
2023-03-03 20:15:41 +00:00
< p > < strong > Use this rule by referencing it:< / strong > < / p >
2020-11-14 09:20:07 +00:00
< div class = "language-xml highlighter-rouge" > < div class = "highlight" > < pre class = "highlight" > < code > < span class = "nt" > < rule< / span > < span class = "na" > ref=< / span > < span class = "s" > "category/apex/codestyle.xml/FieldDeclarationsShouldBeAtStart"< / span > < span class = "nt" > /> < / span >
< / code > < / pre > < / div > < / div >
< h2 id = "fieldnamingconventions" > FieldNamingConventions< / h2 >
< p > < strong > Since:< / strong > PMD 6.15.0< / p >
< p > < strong > Priority:< / strong > High (1)< / p >
< p > Configurable naming conventions for field declarations. This rule reports variable declarations
which do not match the regex that applies to their specific kind —e.g. constants (static final),
static field, final field. Each regex can be configured through properties.< / p >
< p > By default this rule uses the standard Apex naming convention (Camel case).< / p >
2024-09-26 14:58:11 +00:00
< p > < strong > This rule is defined by the following Java class:< / strong > < a href = "https://github.com/pmd/pmd/blob/main/pmd-apex/src/main/java/net/sourceforge/pmd/lang/apex/rule/codestyle/FieldNamingConventionsRule.java" > net.sourceforge.pmd.lang.apex.rule.codestyle.FieldNamingConventionsRule< / a > < / p >
2020-11-14 09:20:07 +00:00
< p > < strong > Example(s):< / strong > < / p >
< div class = "language-java highlighter-rouge" > < div class = "highlight" > < pre class = "highlight" > < code > < span class = "kd" > public< / span > < span class = "kd" > class< / span > < span class = "nc" > Foo< / span > < span class = "o" > {< / span >
< span class = "nc" > Integer< / span > < span class = "n" > instanceField< / span > < span class = "o" > ;< / span > < span class = "c1" > // This is in camel case, so it's ok< / span >
< span class = "nc" > Integer< / span > < span class = "no" > INSTANCE_FIELD< / span > < span class = "o" > ;< / span > < span class = "c1" > // This will be reported unless you change the regex< / span >
< span class = "o" > }< / span >
< / code > < / pre > < / div > < / div >
< p > < strong > This rule has the following properties:< / strong > < / p >
< table >
< thead >
< tr >
< th > Name< / th >
< th > Default Value< / th >
< th > Description< / th >
< / tr >
< / thead >
< tbody >
< tr >
< td > enumConstantPattern< / td >
< td > [A-Z][A-Z0-9_]*< / td >
< td > Regex which applies to enum constant field names< / td >
< / tr >
< tr >
< td > constantPattern< / td >
< td > [A-Z][A-Z0-9_]*< / td >
< td > Regex which applies to constant field names< / td >
< / tr >
< tr >
< td > finalPattern< / td >
< td > [a-z][a-zA-Z0-9]*< / td >
< td > Regex which applies to final field names< / td >
< / tr >
< tr >
< td > staticPattern< / td >
< td > [a-z][a-zA-Z0-9]*< / td >
< td > Regex which applies to static field names< / td >
< / tr >
< tr >
< td > instancePattern< / td >
< td > [a-z][a-zA-Z0-9]*< / td >
< td > Regex which applies to instance field names< / td >
< / tr >
< / tbody >
< / table >
< p > < strong > Use this rule with the default properties by just referencing it:< / strong > < / p >
< div class = "language-xml highlighter-rouge" > < div class = "highlight" > < pre class = "highlight" > < code > < span class = "nt" > < rule< / span > < span class = "na" > ref=< / span > < span class = "s" > "category/apex/codestyle.xml/FieldNamingConventions"< / span > < span class = "nt" > /> < / span >
< / code > < / pre > < / div > < / div >
< p > < strong > Use this rule and customize it:< / strong > < / p >
< div class = "language-xml highlighter-rouge" > < div class = "highlight" > < pre class = "highlight" > < code > < span class = "nt" > < rule< / span > < span class = "na" > ref=< / span > < span class = "s" > "category/apex/codestyle.xml/FieldNamingConventions"< / span > < span class = "nt" > > < / span >
< span class = "nt" > < properties> < / span >
< span class = "nt" > < property< / span > < span class = "na" > name=< / span > < span class = "s" > "enumConstantPattern"< / span > < span class = "na" > value=< / span > < span class = "s" > "[A-Z][A-Z0-9_]*"< / span > < span class = "nt" > /> < / span >
< span class = "nt" > < property< / span > < span class = "na" > name=< / span > < span class = "s" > "constantPattern"< / span > < span class = "na" > value=< / span > < span class = "s" > "[A-Z][A-Z0-9_]*"< / span > < span class = "nt" > /> < / span >
< span class = "nt" > < property< / span > < span class = "na" > name=< / span > < span class = "s" > "finalPattern"< / span > < span class = "na" > value=< / span > < span class = "s" > "[a-z][a-zA-Z0-9]*"< / span > < span class = "nt" > /> < / span >
< span class = "nt" > < property< / span > < span class = "na" > name=< / span > < span class = "s" > "staticPattern"< / span > < span class = "na" > value=< / span > < span class = "s" > "[a-z][a-zA-Z0-9]*"< / span > < span class = "nt" > /> < / span >
< span class = "nt" > < property< / span > < span class = "na" > name=< / span > < span class = "s" > "instancePattern"< / span > < span class = "na" > value=< / span > < span class = "s" > "[a-z][a-zA-Z0-9]*"< / span > < span class = "nt" > /> < / span >
< span class = "nt" > < /properties> < / span >
< span class = "nt" > < /rule> < / span >
< / code > < / pre > < / div > < / div >
< h2 id = "forloopsmustusebraces" > ForLoopsMustUseBraces< / h2 >
< p > < strong > Since:< / strong > PMD 5.6.0< / p >
< p > < strong > Priority:< / strong > Medium (3)< / p >
< p > Avoid using ‘ for’ statements without using surrounding braces. If the code formatting or
indentation is lost then it becomes difficult to separate the code being controlled
from the rest.< / p >
< p > < strong > This rule is defined by the following XPath expression:< / strong > < / p >
< div class = "language-xpath highlighter-rouge" > < div class = "highlight" > < pre class = "highlight" > < code > < span class = "o" > //< / span > < span class = "nt" > ForLoopStatement< / span > < span class = "o" > /< / span > < span class = "nt" > BlockStatement< / span > < span class = "p" > [< / span > < span class = "na" > @CurlyBrace< / span > < span class = "err" > =< / span > < span class = "w" > < / span > < span class = "nf" > false< / span > < span class = "p" > ()]< / span > < span class = "w" >
< / span > < span class = "p" > |< / span > < span class = "w" >
< / span > < span class = "o" > //< / span > < span class = "nt" > ForEachStatement< / span > < span class = "o" > /< / span > < span class = "nt" > BlockStatement< / span > < span class = "p" > [< / span > < span class = "na" > @CurlyBrace< / span > < span class = "err" > =< / span > < span class = "w" > < / span > < span class = "nf" > false< / span > < span class = "p" > ()]< / span > < span class = "w" >
< / span > < / code > < / pre > < / div > < / div >
< p > < strong > Example(s):< / strong > < / p >
< div class = "language-java highlighter-rouge" > < div class = "highlight" > < pre class = "highlight" > < code > < span class = "k" > for< / span > < span class = "o" > (< / span > < span class = "kt" > int< / span > < span class = "n" > i< / span > < span class = "o" > =< / span > < span class = "mi" > 0< / span > < span class = "o" > ;< / span > < span class = "n" > i< / span > < span class = "o" > < < / span > < span class = "mi" > 42< / span > < span class = "o" > ;< / span > < span class = "n" > i< / span > < span class = "o" > ++)< / span > < span class = "c1" > // not recommended< / span >
< span class = "n" > foo< / span > < span class = "o" > ();< / span >
< span class = "k" > for< / span > < span class = "o" > (< / span > < span class = "kt" > int< / span > < span class = "n" > i< / span > < span class = "o" > =< / span > < span class = "mi" > 0< / span > < span class = "o" > ;< / span > < span class = "n" > i< / span > < span class = "o" > < < / span > < span class = "mi" > 42< / span > < span class = "o" > ;< / span > < span class = "n" > i< / span > < span class = "o" > ++)< / span > < span class = "o" > {< / span > < span class = "c1" > // preferred approach< / span >
< span class = "n" > foo< / span > < span class = "o" > ();< / span >
< span class = "o" > }< / span >
< / code > < / pre > < / div > < / div >
2023-03-03 20:15:41 +00:00
< p > < strong > Use this rule by referencing it:< / strong > < / p >
2020-11-14 09:20:07 +00:00
< div class = "language-xml highlighter-rouge" > < div class = "highlight" > < pre class = "highlight" > < code > < span class = "nt" > < rule< / span > < span class = "na" > ref=< / span > < span class = "s" > "category/apex/codestyle.xml/ForLoopsMustUseBraces"< / span > < span class = "nt" > /> < / span >
< / code > < / pre > < / div > < / div >
< h2 id = "formalparameternamingconventions" > FormalParameterNamingConventions< / h2 >
< p > < strong > Since:< / strong > PMD 6.15.0< / p >
< p > < strong > Priority:< / strong > High (1)< / p >
< p > Configurable naming conventions for formal parameters of methods.
This rule reports formal parameters which do not match the regex that applies to their
specific kind (e.g. method parameter, or final method parameter). Each regex can be
configured through properties.< / p >
< p > By default this rule uses the standard Apex naming convention (Camel case).< / p >
2024-09-26 14:58:11 +00:00
< p > < strong > This rule is defined by the following Java class:< / strong > < a href = "https://github.com/pmd/pmd/blob/main/pmd-apex/src/main/java/net/sourceforge/pmd/lang/apex/rule/codestyle/FormalParameterNamingConventionsRule.java" > net.sourceforge.pmd.lang.apex.rule.codestyle.FormalParameterNamingConventionsRule< / a > < / p >
2020-11-14 09:20:07 +00:00
< p > < strong > Example(s):< / strong > < / p >
< div class = "language-java highlighter-rouge" > < div class = "highlight" > < pre class = "highlight" > < code > < span class = "kd" > public< / span > < span class = "kd" > class< / span > < span class = "nc" > Foo< / span > < span class = "o" > {< / span >
< span class = "kd" > public< / span > < span class = "nf" > bar< / span > < span class = "o" > (< / span > < span class = "nc" > Integer< / span > < span class = "n" > methodParameter< / span > < span class = "o" > )< / span > < span class = "o" > {< / span > < span class = "o" > }< / span > < span class = "c1" > // This is in camel case, so it's ok< / span >
< span class = "kd" > public< / span > < span class = "nf" > baz< / span > < span class = "o" > (< / span > < span class = "nc" > Integer< / span > < span class = "no" > METHOD_PARAMETER< / span > < span class = "o" > )< / span > < span class = "o" > {< / span > < span class = "o" > }< / span > < span class = "c1" > // This will be reported unless you change the regex< / span >
< span class = "o" > }< / span >
< / code > < / pre > < / div > < / div >
< p > < strong > This rule has the following properties:< / strong > < / p >
< table >
< thead >
< tr >
< th > Name< / th >
< th > Default Value< / th >
< th > Description< / th >
< / tr >
< / thead >
< tbody >
< tr >
< td > finalMethodParameterPattern< / td >
< td > [a-z][a-zA-Z0-9]*< / td >
< td > Regex which applies to final method parameter names< / td >
< / tr >
< tr >
< td > methodParameterPattern< / td >
< td > [a-z][a-zA-Z0-9]*< / td >
< td > Regex which applies to method parameter names< / td >
< / tr >
< / tbody >
< / table >
< p > < strong > Use this rule with the default properties by just referencing it:< / strong > < / p >
< div class = "language-xml highlighter-rouge" > < div class = "highlight" > < pre class = "highlight" > < code > < span class = "nt" > < rule< / span > < span class = "na" > ref=< / span > < span class = "s" > "category/apex/codestyle.xml/FormalParameterNamingConventions"< / span > < span class = "nt" > /> < / span >
< / code > < / pre > < / div > < / div >
< p > < strong > Use this rule and customize it:< / strong > < / p >
< div class = "language-xml highlighter-rouge" > < div class = "highlight" > < pre class = "highlight" > < code > < span class = "nt" > < rule< / span > < span class = "na" > ref=< / span > < span class = "s" > "category/apex/codestyle.xml/FormalParameterNamingConventions"< / span > < span class = "nt" > > < / span >
< span class = "nt" > < properties> < / span >
< span class = "nt" > < property< / span > < span class = "na" > name=< / span > < span class = "s" > "finalMethodParameterPattern"< / span > < span class = "na" > value=< / span > < span class = "s" > "[a-z][a-zA-Z0-9]*"< / span > < span class = "nt" > /> < / span >
< span class = "nt" > < property< / span > < span class = "na" > name=< / span > < span class = "s" > "methodParameterPattern"< / span > < span class = "na" > value=< / span > < span class = "s" > "[a-z][a-zA-Z0-9]*"< / span > < span class = "nt" > /> < / span >
< span class = "nt" > < /properties> < / span >
< span class = "nt" > < /rule> < / span >
< / code > < / pre > < / div > < / div >
< h2 id = "ifelsestmtsmustusebraces" > IfElseStmtsMustUseBraces< / h2 >
< p > < strong > Since:< / strong > PMD 5.6.0< / p >
< p > < strong > Priority:< / strong > Medium (3)< / p >
< p > Avoid using if..else statements without using surrounding braces. If the code formatting
or indentation is lost then it becomes difficult to separate the code being controlled
from the rest.< / p >
< p > < strong > This rule is defined by the following XPath expression:< / strong > < / p >
< div class = "language-xpath highlighter-rouge" > < div class = "highlight" > < pre class = "highlight" > < code > < span class = "o" > //< / span > < span class = "nt" > IfBlockStatement< / span > < span class = "o" > /< / span > < span class = "nt" > BlockStatement< / span > < span class = "p" > [< / span > < span class = "na" > @CurlyBrace< / span > < span class = "err" > =< / span > < span class = "w" > < / span > < span class = "nf" > false< / span > < span class = "p" > ()][< / span > < span class = "nf" > count< / span > < span class = "p" > (< / span > < span class = "kn" > child::< / span > < span class = "err" > *< / span > < span class = "p" > )< / span > < span class = "w" > < / span > < span class = "o" > > < / span > < span class = "w" > < / span > < span class = "m" > 0< / span > < span class = "p" > ]< / span > < span class = "w" >
< / span > < span class = "p" > |< / span > < span class = "w" >
< / span > < span class = "o" > //< / span > < span class = "nt" > IfElseBlockStatement< / span > < span class = "o" > /< / span > < span class = "nt" > BlockStatement< / span > < span class = "p" > [< / span > < span class = "na" > @CurlyBrace< / span > < span class = "err" > =< / span > < span class = "w" > < / span > < span class = "nf" > false< / span > < span class = "p" > ()][< / span > < span class = "nf" > count< / span > < span class = "p" > (< / span > < span class = "kn" > child::< / span > < span class = "err" > *< / span > < span class = "p" > )< / span > < span class = "w" > < / span > < span class = "o" > > < / span > < span class = "w" > < / span > < span class = "m" > 0< / span > < span class = "p" > ]< / span > < span class = "w" >
< / span > < / code > < / pre > < / div > < / div >
< p > < strong > Example(s):< / strong > < / p >
< div class = "language-java highlighter-rouge" > < div class = "highlight" > < pre class = "highlight" > < code > < span class = "c1" > // this is OK< / span >
< span class = "k" > if< / span > < span class = "o" > (< / span > < span class = "n" > foo< / span > < span class = "o" > )< / span > < span class = "n" > x< / span > < span class = "o" > ++;< / span >
< span class = "c1" > // but this is not< / span >
< span class = "k" > if< / span > < span class = "o" > (< / span > < span class = "n" > foo< / span > < span class = "o" > )< / span >
< span class = "n" > x< / span > < span class = "o" > =< / span > < span class = "n" > x< / span > < span class = "o" > +< / span > < span class = "mi" > 1< / span > < span class = "o" > ;< / span >
< span class = "k" > else< / span >
< span class = "n" > x< / span > < span class = "o" > =< / span > < span class = "n" > x< / span > < span class = "o" > -< / span > < span class = "mi" > 1< / span > < span class = "o" > ;< / span >
< / code > < / pre > < / div > < / div >
2023-03-03 20:15:41 +00:00
< p > < strong > Use this rule by referencing it:< / strong > < / p >
2020-11-14 09:20:07 +00:00
< div class = "language-xml highlighter-rouge" > < div class = "highlight" > < pre class = "highlight" > < code > < span class = "nt" > < rule< / span > < span class = "na" > ref=< / span > < span class = "s" > "category/apex/codestyle.xml/IfElseStmtsMustUseBraces"< / span > < span class = "nt" > /> < / span >
< / code > < / pre > < / div > < / div >
< h2 id = "ifstmtsmustusebraces" > IfStmtsMustUseBraces< / h2 >
< p > < strong > Since:< / strong > PMD 5.6.0< / p >
< p > < strong > Priority:< / strong > Medium (3)< / p >
< p > Avoid using if statements without using braces to surround the code block. If the code
formatting or indentation is lost then it becomes difficult to separate the code being
controlled from the rest.< / p >
< p > < strong > This rule is defined by the following XPath expression:< / strong > < / p >
< div class = "language-xpath highlighter-rouge" > < div class = "highlight" > < pre class = "highlight" > < code > < span class = "o" > //< / span > < span class = "nt" > IfBlockStatement< / span > < span class = "o" > /< / span > < span class = "nt" > BlockStatement< / span > < span class = "p" > [< / span > < span class = "na" > @CurlyBrace< / span > < span class = "err" > =< / span > < span class = "w" > < / span > < span class = "nf" > false< / span > < span class = "p" > ()]< / span > < span class = "w" >
< / span > < / code > < / pre > < / div > < / div >
< p > < strong > Example(s):< / strong > < / p >
< div class = "language-java highlighter-rouge" > < div class = "highlight" > < pre class = "highlight" > < code > < span class = "k" > if< / span > < span class = "o" > (< / span > < span class = "n" > foo< / span > < span class = "o" > )< / span > < span class = "c1" > // not recommended< / span >
< span class = "n" > x< / span > < span class = "o" > ++;< / span >
< span class = "k" > if< / span > < span class = "o" > (< / span > < span class = "n" > foo< / span > < span class = "o" > )< / span > < span class = "o" > {< / span > < span class = "c1" > // preferred approach< / span >
< span class = "n" > x< / span > < span class = "o" > ++;< / span >
< span class = "o" > }< / span >
< / code > < / pre > < / div > < / div >
2023-03-03 20:15:41 +00:00
< p > < strong > Use this rule by referencing it:< / strong > < / p >
2020-11-14 09:20:07 +00:00
< div class = "language-xml highlighter-rouge" > < div class = "highlight" > < pre class = "highlight" > < code > < span class = "nt" > < rule< / span > < span class = "na" > ref=< / span > < span class = "s" > "category/apex/codestyle.xml/IfStmtsMustUseBraces"< / span > < span class = "nt" > /> < / span >
< / code > < / pre > < / div > < / div >
< h2 id = "localvariablenamingconventions" > LocalVariableNamingConventions< / h2 >
< p > < strong > Since:< / strong > PMD 6.15.0< / p >
< p > < strong > Priority:< / strong > High (1)< / p >
< p > Configurable naming conventions for local variable declarations.
This rule reports variable declarations which do not match the regex that applies to their
specific kind (e.g. local variable, or final local variable). Each regex can be configured through
properties.< / p >
< p > By default this rule uses the standard Apex naming convention (Camel case).< / p >
2024-09-26 14:58:11 +00:00
< p > < strong > This rule is defined by the following Java class:< / strong > < a href = "https://github.com/pmd/pmd/blob/main/pmd-apex/src/main/java/net/sourceforge/pmd/lang/apex/rule/codestyle/LocalVariableNamingConventionsRule.java" > net.sourceforge.pmd.lang.apex.rule.codestyle.LocalVariableNamingConventionsRule< / a > < / p >
2020-11-14 09:20:07 +00:00
< p > < strong > Example(s):< / strong > < / p >
< div class = "language-java highlighter-rouge" > < div class = "highlight" > < pre class = "highlight" > < code > < span class = "kd" > public< / span > < span class = "kd" > class< / span > < span class = "nc" > Foo< / span > < span class = "o" > {< / span >
< span class = "kd" > public< / span > < span class = "nf" > Foo< / span > < span class = "o" > ()< / span > < span class = "o" > {< / span >
< span class = "nc" > Integer< / span > < span class = "n" > localVariable< / span > < span class = "o" > ;< / span > < span class = "c1" > // This is in camel case, so it's ok< / span >
< span class = "nc" > Integer< / span > < span class = "no" > LOCAL_VARIABLE< / span > < span class = "o" > ;< / span > < span class = "c1" > // This will be reported unless you change the regex< / span >
< span class = "o" > }< / span >
< span class = "o" > }< / span >
< / code > < / pre > < / div > < / div >
< p > < strong > This rule has the following properties:< / strong > < / p >
< table >
< thead >
< tr >
< th > Name< / th >
< th > Default Value< / th >
< th > Description< / th >
< / tr >
< / thead >
< tbody >
< tr >
< td > finalLocalPattern< / td >
< td > [a-z][a-zA-Z0-9]*< / td >
< td > Regex which applies to final local variable names< / td >
< / tr >
< tr >
< td > localPattern< / td >
< td > [a-z][a-zA-Z0-9]*< / td >
< td > Regex which applies to local variable names< / td >
< / tr >
< / tbody >
< / table >
< p > < strong > Use this rule with the default properties by just referencing it:< / strong > < / p >
< div class = "language-xml highlighter-rouge" > < div class = "highlight" > < pre class = "highlight" > < code > < span class = "nt" > < rule< / span > < span class = "na" > ref=< / span > < span class = "s" > "category/apex/codestyle.xml/LocalVariableNamingConventions"< / span > < span class = "nt" > /> < / span >
< / code > < / pre > < / div > < / div >
< p > < strong > Use this rule and customize it:< / strong > < / p >
< div class = "language-xml highlighter-rouge" > < div class = "highlight" > < pre class = "highlight" > < code > < span class = "nt" > < rule< / span > < span class = "na" > ref=< / span > < span class = "s" > "category/apex/codestyle.xml/LocalVariableNamingConventions"< / span > < span class = "nt" > > < / span >
< span class = "nt" > < properties> < / span >
< span class = "nt" > < property< / span > < span class = "na" > name=< / span > < span class = "s" > "finalLocalPattern"< / span > < span class = "na" > value=< / span > < span class = "s" > "[a-z][a-zA-Z0-9]*"< / span > < span class = "nt" > /> < / span >
< span class = "nt" > < property< / span > < span class = "na" > name=< / span > < span class = "s" > "localPattern"< / span > < span class = "na" > value=< / span > < span class = "s" > "[a-z][a-zA-Z0-9]*"< / span > < span class = "nt" > /> < / span >
< span class = "nt" > < /properties> < / span >
< span class = "nt" > < /rule> < / span >
< / code > < / pre > < / div > < / div >
< h2 id = "methodnamingconventions" > MethodNamingConventions< / h2 >
< p > < strong > Since:< / strong > PMD 5.5.0< / p >
< p > < strong > Priority:< / strong > High (1)< / p >
< p > Configurable naming conventions for method declarations. This rule reports
method declarations which do not match the regex that applies to their
specific kind (e.g. static method, or test method). Each regex can be
configured through properties.< / p >
< p > By default this rule uses the standard Apex naming convention (Camel case).< / p >
2024-09-26 14:58:11 +00:00
< p > < strong > This rule is defined by the following Java class:< / strong > < a href = "https://github.com/pmd/pmd/blob/main/pmd-apex/src/main/java/net/sourceforge/pmd/lang/apex/rule/codestyle/MethodNamingConventionsRule.java" > net.sourceforge.pmd.lang.apex.rule.codestyle.MethodNamingConventionsRule< / a > < / p >
2020-11-14 09:20:07 +00:00
< p > < strong > Example(s):< / strong > < / p >
< div class = "language-java highlighter-rouge" > < div class = "highlight" > < pre class = "highlight" > < code > < span class = "kd" > public< / span > < span class = "kd" > class< / span > < span class = "nc" > Foo< / span > < span class = "o" > {< / span >
< span class = "kd" > public< / span > < span class = "kt" > void< / span > < span class = "nf" > instanceMethod< / span > < span class = "o" > ()< / span > < span class = "o" > {< / span > < span class = "o" > }< / span > < span class = "c1" > // This is in camel case, so it's ok< / span >
< span class = "kd" > public< / span > < span class = "kt" > void< / span > < span class = "nf" > INSTANCE_METHOD< / span > < span class = "o" > ()< / span > < span class = "o" > {< / span > < span class = "o" > }< / span > < span class = "c1" > // This will be reported unless you change the regex< / span >
< / code > < / pre > < / div > < / div >
< p > < strong > This rule has the following properties:< / strong > < / p >
< table >
< thead >
< tr >
< th > Name< / th >
< th > Default Value< / th >
< th > Description< / th >
< / tr >
< / thead >
< tbody >
< tr >
< td > testPattern< / td >
< td > [a-z][a-zA-Z0-9]*< / td >
< td > Regex which applies to test method names< / td >
< / tr >
< tr >
< td > staticPattern< / td >
< td > [a-z][a-zA-Z0-9]*< / td >
< td > Regex which applies to static method names< / td >
< / tr >
< tr >
< td > instancePattern< / td >
< td > [a-z][a-zA-Z0-9]*< / td >
< td > Regex which applies to instance method names< / td >
< / tr >
< / tbody >
< / table >
< p > < strong > Use this rule with the default properties by just referencing it:< / strong > < / p >
< div class = "language-xml highlighter-rouge" > < div class = "highlight" > < pre class = "highlight" > < code > < span class = "nt" > < rule< / span > < span class = "na" > ref=< / span > < span class = "s" > "category/apex/codestyle.xml/MethodNamingConventions"< / span > < span class = "nt" > /> < / span >
< / code > < / pre > < / div > < / div >
< p > < strong > Use this rule and customize it:< / strong > < / p >
< div class = "language-xml highlighter-rouge" > < div class = "highlight" > < pre class = "highlight" > < code > < span class = "nt" > < rule< / span > < span class = "na" > ref=< / span > < span class = "s" > "category/apex/codestyle.xml/MethodNamingConventions"< / span > < span class = "nt" > > < / span >
< span class = "nt" > < properties> < / span >
< span class = "nt" > < property< / span > < span class = "na" > name=< / span > < span class = "s" > "testPattern"< / span > < span class = "na" > value=< / span > < span class = "s" > "[a-z][a-zA-Z0-9]*"< / span > < span class = "nt" > /> < / span >
< span class = "nt" > < property< / span > < span class = "na" > name=< / span > < span class = "s" > "staticPattern"< / span > < span class = "na" > value=< / span > < span class = "s" > "[a-z][a-zA-Z0-9]*"< / span > < span class = "nt" > /> < / span >
< span class = "nt" > < property< / span > < span class = "na" > name=< / span > < span class = "s" > "instancePattern"< / span > < span class = "na" > value=< / span > < span class = "s" > "[a-z][a-zA-Z0-9]*"< / span > < span class = "nt" > /> < / span >
< span class = "nt" > < /properties> < / span >
< span class = "nt" > < /rule> < / span >
< / code > < / pre > < / div > < / div >
< h2 id = "onedeclarationperline" > OneDeclarationPerLine< / h2 >
< p > < strong > Since:< / strong > PMD 6.7.0< / p >
< p > < strong > Priority:< / strong > High (1)< / p >
< p > Apex allows the use of several variables declaration of the same type on one line. However, it
can lead to quite messy code. This rule looks for several declarations on the same line.< / p >
< p > < strong > This rule is defined by the following XPath expression:< / strong > < / p >
< div class = "language-xpath highlighter-rouge" > < div class = "highlight" > < pre class = "highlight" > < code > < span class = "o" > //< / span > < span class = "nt" > VariableDeclarationStatements< / span > < span class = "w" >
2021-10-22 22:58:05 +00:00
< / span > < span class = "p" > [< / span > < span class = "nf" > count< / span > < span class = "p" > (< / span > < span class = "nt" > VariableDeclaration< / span > < span class = "p" > )< / span > < span class = "w" > < / span > < span class = "o" > > < / span > < span class = "w" > < / span > < span class = "m" > 1< / span > < span class = "w" > < / span > < span class = "ow" > and< / span > < span class = "w" > < / span > < span class = "p" > (< / span > < span class = "nv" > $reportInForLoopInitializer< / span > < span class = "w" > < / span > < span class = "err" > =< / span > < span class = "w" > < / span > < span class = "nf" > true< / span > < span class = "p" > ()< / span > < span class = "w" > < / span > < span class = "ow" > or< / span > < span class = "w" > < / span > < span class = "nf" > name< / span > < span class = "p" > (< / span > < span class = "kn" > parent::< / span > < span class = "err" > *< / span > < span class = "p" > )< / span > < span class = "w" > < / span > < span class = "p" > !< / span > < span class = "err" > =< / span > < span class = "w" > < / span > < span class = "s1" > 'ForLoopStatement'< / span > < span class = "p" > )]< / span > < span class = "w" >
2020-11-14 09:20:07 +00:00
< / span > < span class = "p" > [< / span > < span class = "nv" > $strictMode< / span > < span class = "w" > < / span > < span class = "ow" > or< / span > < span class = "w" > < / span > < span class = "nf" > count< / span > < span class = "p" > (< / span > < span class = "nf" > distinct-values< / span > < span class = "p" > (< / span > < span class = "nt" > VariableDeclaration< / span > < span class = "err" > /< / span > < span class = "na" > @BeginLine< / span > < span class = "p" > ))< / span > < span class = "w" > < / span > < span class = "p" > !< / span > < span class = "err" > =< / span > < span class = "w" > < / span > < span class = "nf" > count< / span > < span class = "p" > (< / span > < span class = "nt" > VariableDeclaration< / span > < span class = "p" > )]< / span > < span class = "w" >
< / span > < span class = "p" > |< / span > < span class = "w" >
< / span > < span class = "o" > //< / span > < span class = "nt" > FieldDeclarationStatements< / span > < span class = "w" >
< / span > < span class = "p" > [< / span > < span class = "nf" > count< / span > < span class = "p" > (< / span > < span class = "nt" > FieldDeclaration< / span > < span class = "p" > )< / span > < span class = "w" > < / span > < span class = "o" > > < / span > < span class = "w" > < / span > < span class = "m" > 1< / span > < span class = "p" > ]< / span > < span class = "w" >
< / span > < span class = "p" > [< / span > < span class = "nv" > $strictMode< / span > < span class = "w" > < / span > < span class = "ow" > or< / span > < span class = "w" > < / span > < span class = "nf" > count< / span > < span class = "p" > (< / span > < span class = "nf" > distinct-values< / span > < span class = "p" > (< / span > < span class = "nt" > FieldDeclaration< / span > < span class = "o" > /< / span > < span class = "nt" > VariableExpression< / span > < span class = "err" > /< / span > < span class = "na" > @BeginLine< / span > < span class = "p" > ))< / span > < span class = "w" > < / span > < span class = "p" > !< / span > < span class = "err" > =< / span > < span class = "w" > < / span > < span class = "nf" > count< / span > < span class = "p" > (< / span > < span class = "nt" > FieldDeclaration< / span > < span class = "o" > /< / span > < span class = "nt" > VariableExpression< / span > < span class = "p" > )]< / span > < span class = "w" >
< / span > < / code > < / pre > < / div > < / div >
< p > < strong > Example(s):< / strong > < / p >
< div class = "language-java highlighter-rouge" > < div class = "highlight" > < pre class = "highlight" > < code > < span class = "nc" > Integer< / span > < span class = "n" > a< / span > < span class = "o" > ,< / span > < span class = "n" > b< / span > < span class = "o" > ;< / span > < span class = "c1" > // not recommended< / span >
< span class = "nc" > Integer< / span > < span class = "n" > a< / span > < span class = "o" > ,< / span >
< span class = "n" > b< / span > < span class = "o" > ;< / span > < span class = "c1" > // ok by default, can be flagged setting the strictMode property< / span >
< span class = "nc" > Integer< / span > < span class = "n" > a< / span > < span class = "o" > ;< / span > < span class = "c1" > // preferred approach< / span >
< span class = "nc" > Integer< / span > < span class = "n" > b< / span > < span class = "o" > ;< / span >
< / code > < / pre > < / div > < / div >
< p > < strong > This rule has the following properties:< / strong > < / p >
< table >
< thead >
< tr >
< th > Name< / th >
< th > Default Value< / th >
< th > Description< / th >
< / tr >
< / thead >
< tbody >
< tr >
2023-03-03 20:15:41 +00:00
< td > strictMode< / td >
2020-11-14 09:20:07 +00:00
< td > false< / td >
2023-03-03 20:15:41 +00:00
< td > If true, mark combined declaration even if the declarations are on separate lines.< / td >
2020-11-14 09:20:07 +00:00
< / tr >
2021-10-22 22:58:05 +00:00
< tr >
< td > reportInForLoopInitializer< / td >
< td > true< / td >
< td > If false, multiple declarations in a for loop initializer are not flagged.< / td >
< / tr >
2020-11-14 09:20:07 +00:00
< / tbody >
< / table >
< p > < strong > Use this rule with the default properties by just referencing it:< / strong > < / p >
< div class = "language-xml highlighter-rouge" > < div class = "highlight" > < pre class = "highlight" > < code > < span class = "nt" > < rule< / span > < span class = "na" > ref=< / span > < span class = "s" > "category/apex/codestyle.xml/OneDeclarationPerLine"< / span > < span class = "nt" > /> < / span >
< / code > < / pre > < / div > < / div >
< p > < strong > Use this rule and customize it:< / strong > < / p >
< div class = "language-xml highlighter-rouge" > < div class = "highlight" > < pre class = "highlight" > < code > < span class = "nt" > < rule< / span > < span class = "na" > ref=< / span > < span class = "s" > "category/apex/codestyle.xml/OneDeclarationPerLine"< / span > < span class = "nt" > > < / span >
< span class = "nt" > < properties> < / span >
< span class = "nt" > < property< / span > < span class = "na" > name=< / span > < span class = "s" > "strictMode"< / span > < span class = "na" > value=< / span > < span class = "s" > "false"< / span > < span class = "nt" > /> < / span >
2023-03-03 20:15:41 +00:00
< span class = "nt" > < property< / span > < span class = "na" > name=< / span > < span class = "s" > "reportInForLoopInitializer"< / span > < span class = "na" > value=< / span > < span class = "s" > "true"< / span > < span class = "nt" > /> < / span >
2020-11-14 09:20:07 +00:00
< span class = "nt" > < /properties> < / span >
< span class = "nt" > < /rule> < / span >
< / code > < / pre > < / div > < / div >
< h2 id = "propertynamingconventions" > PropertyNamingConventions< / h2 >
< p > < strong > Since:< / strong > PMD 6.15.0< / p >
< p > < strong > Priority:< / strong > High (1)< / p >
< p > Configurable naming conventions for property declarations. This rule reports
property declarations which do not match the regex that applies to their
specific kind (e.g. static property, or instance property). Each regex can be
configured through properties.< / p >
< p > By default this rule uses the standard Apex naming convention (Camel case).< / p >
2024-09-26 14:58:11 +00:00
< p > < strong > This rule is defined by the following Java class:< / strong > < a href = "https://github.com/pmd/pmd/blob/main/pmd-apex/src/main/java/net/sourceforge/pmd/lang/apex/rule/codestyle/PropertyNamingConventionsRule.java" > net.sourceforge.pmd.lang.apex.rule.codestyle.PropertyNamingConventionsRule< / a > < / p >
2020-11-14 09:20:07 +00:00
< p > < strong > Example(s):< / strong > < / p >
< div class = "language-java highlighter-rouge" > < div class = "highlight" > < pre class = "highlight" > < code > < span class = "kd" > public< / span > < span class = "kd" > class< / span > < span class = "nc" > Foo< / span > < span class = "o" > {< / span >
< span class = "kd" > public< / span > < span class = "nc" > Integer< / span > < span class = "n" > instanceProperty< / span > < span class = "o" > {< / span > < span class = "n" > get< / span > < span class = "o" > ;< / span > < span class = "n" > set< / span > < span class = "o" > ;< / span > < span class = "o" > }< / span > < span class = "c1" > // This is in camel case, so it's ok< / span >
< span class = "kd" > public< / span > < span class = "nc" > Integer< / span > < span class = "no" > INSTANCE_PROPERTY< / span > < span class = "o" > {< / span > < span class = "n" > get< / span > < span class = "o" > ;< / span > < span class = "n" > set< / span > < span class = "o" > ;< / span > < span class = "o" > }< / span > < span class = "c1" > // This will be reported unless you change the regex< / span >
< span class = "o" > }< / span >
< / code > < / pre > < / div > < / div >
< p > < strong > This rule has the following properties:< / strong > < / p >
< table >
< thead >
< tr >
< th > Name< / th >
< th > Default Value< / th >
< th > Description< / th >
< / tr >
< / thead >
< tbody >
< tr >
< td > staticPattern< / td >
< td > [a-z][a-zA-Z0-9]*< / td >
< td > Regex which applies to static property names< / td >
< / tr >
< tr >
< td > instancePattern< / td >
< td > [a-z][a-zA-Z0-9]*< / td >
< td > Regex which applies to instance property names< / td >
< / tr >
< / tbody >
< / table >
< p > < strong > Use this rule with the default properties by just referencing it:< / strong > < / p >
< div class = "language-xml highlighter-rouge" > < div class = "highlight" > < pre class = "highlight" > < code > < span class = "nt" > < rule< / span > < span class = "na" > ref=< / span > < span class = "s" > "category/apex/codestyle.xml/PropertyNamingConventions"< / span > < span class = "nt" > /> < / span >
< / code > < / pre > < / div > < / div >
< p > < strong > Use this rule and customize it:< / strong > < / p >
< div class = "language-xml highlighter-rouge" > < div class = "highlight" > < pre class = "highlight" > < code > < span class = "nt" > < rule< / span > < span class = "na" > ref=< / span > < span class = "s" > "category/apex/codestyle.xml/PropertyNamingConventions"< / span > < span class = "nt" > > < / span >
< span class = "nt" > < properties> < / span >
< span class = "nt" > < property< / span > < span class = "na" > name=< / span > < span class = "s" > "staticPattern"< / span > < span class = "na" > value=< / span > < span class = "s" > "[a-z][a-zA-Z0-9]*"< / span > < span class = "nt" > /> < / span >
< span class = "nt" > < property< / span > < span class = "na" > name=< / span > < span class = "s" > "instancePattern"< / span > < span class = "na" > value=< / span > < span class = "s" > "[a-z][a-zA-Z0-9]*"< / span > < span class = "nt" > /> < / span >
< span class = "nt" > < /properties> < / span >
< span class = "nt" > < /rule> < / span >
< / code > < / pre > < / div > < / div >
< h2 id = "whileloopsmustusebraces" > WhileLoopsMustUseBraces< / h2 >
< p > < strong > Since:< / strong > PMD 5.6.0< / p >
< p > < strong > Priority:< / strong > Medium (3)< / p >
< p > Avoid using ‘ while’ statements without using braces to surround the code block. If the code
formatting or indentation is lost then it becomes difficult to separate the code being
controlled from the rest.< / p >
< p > < strong > This rule is defined by the following XPath expression:< / strong > < / p >
< div class = "language-xpath highlighter-rouge" > < div class = "highlight" > < pre class = "highlight" > < code > < span class = "o" > //< / span > < span class = "nt" > WhileLoopStatement< / span > < span class = "o" > /< / span > < span class = "nt" > BlockStatement< / span > < span class = "p" > [< / span > < span class = "na" > @CurlyBrace< / span > < span class = "err" > =< / span > < span class = "w" > < / span > < span class = "nf" > false< / span > < span class = "p" > ()]< / span > < span class = "w" >
< / span > < / code > < / pre > < / div > < / div >
< p > < strong > Example(s):< / strong > < / p >
< div class = "language-java highlighter-rouge" > < div class = "highlight" > < pre class = "highlight" > < code > < span class = "k" > while< / span > < span class = "o" > (< / span > < span class = "kc" > true< / span > < span class = "o" > )< / span > < span class = "c1" > // not recommended< / span >
< span class = "n" > x< / span > < span class = "o" > ++;< / span >
< span class = "k" > while< / span > < span class = "o" > (< / span > < span class = "kc" > true< / span > < span class = "o" > )< / span > < span class = "o" > {< / span > < span class = "c1" > // preferred approach< / span >
< span class = "n" > x< / span > < span class = "o" > ++;< / span >
< span class = "o" > }< / span >
< / code > < / pre > < / div > < / div >
2023-03-03 20:15:41 +00:00
< p > < strong > Use this rule by referencing it:< / strong > < / p >
2020-11-14 09:20:07 +00:00
< div class = "language-xml highlighter-rouge" > < div class = "highlight" > < pre class = "highlight" > < code > < span class = "nt" > < rule< / span > < span class = "na" > ref=< / span > < span class = "s" > "category/apex/codestyle.xml/WhileLoopsMustUseBraces"< / span > < span class = "nt" > /> < / span >
< / code > < / pre > < / div > < / div >
< div class = "tags" >
< / div >
< / div >
< footer >
2022-03-24 11:42:13 +00:00
< hr / >
< div >
This documentation is written in markdown. < br / >
If there is something missing or can be improved, edit this page on
github and create a PR:
< a
target="_blank"
2024-09-26 14:58:11 +00:00
href="https://github.com/pmd/pmd/blob/main/docs/../pmd-apex/src/main/resources/category/apex/codestyle.xml"
2022-03-24 11:42:13 +00:00
role="button"
2023-04-19 03:50:18 +00:00
>< i class = "fab fa-github fa-lg" > < / i > Edit on GitHub< /a
2022-03-24 11:42:13 +00:00
>
< / div >
< hr / >
< div class = "row" >
< div class = "col-lg-12 footer" >
2024-01-05 14:22:28 +00:00
© 2024 PMD Open Source Project. All rights
2022-03-24 11:42:13 +00:00
reserved. < br / >
2024-11-21 14:49:47 +00:00
Site last generated: Nov 21, 2024 < br / >
2022-03-24 11:42:13 +00:00
< p >
2023-03-03 20:15:41 +00:00
< img src = "images/logo/pmd-logo-70px.png" alt = "PMD
2022-03-24 11:42:13 +00:00
logo"/>
< / p >
< / div >
< / div >
2020-11-14 09:20:07 +00:00
< / footer >
2022-02-25 09:51:51 +00:00
< / div >
<!-- /.row -->
2020-11-14 09:20:07 +00:00
< / div >
2022-02-25 09:51:51 +00:00
<!-- /.container -->
< / div >
<!-- Sticky TOC column -->
< div class = "toc-col" >
2022-03-24 11:42:13 +00:00
< div id = "toc" > < / div >
2020-11-14 09:20:07 +00:00
< / div >
2022-02-25 09:51:51 +00:00
<!-- /.toc - container - wrapper -->
2020-11-14 09:20:07 +00:00
< / div >
< / div >
2023-03-03 20:15:41 +00:00
< script type = "application/javascript" src = "assets/jquery-3.5.1/jquery-3.5.1.min.js" > < / script >
< script type = "application/javascript" src = "assets/anchorjs-4.2.2/anchor.min.js" > < / script >
< script type = "application/javascript" src = "assets/navgoco-0.2.1/src/jquery.navgoco.min.js" > < / script >
< script type = "application/javascript" src = "assets/bootstrap-4.5.2-dist/js/bootstrap.bundle.min.js" > < / script >
< script type = "application/javascript" src = "assets/Simple-Jekyll-Search-1.0.8/dest/jekyll-search.js" > < / script >
< script type = "application/javascript" src = "assets/jekyll-table-of-contents/toc.js" > < / script >
< script type = "application/javascript" src = "js/tabstate.js" > < / script >
< script type = "application/javascript" src = "js/customscripts.js" > < / script >
< / body >
2020-11-14 09:20:07 +00:00
< / html >