ali-flowcontrol.xml 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. <?xml version="1.0"?>
  2. <ruleset name="AlibabaJavaFlowControl" xmlns="http://pmd.sourceforge.net/ruleset/2.0.0"
  3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4. xsi:schemaLocation="http://pmd.sourceforge.net/ruleset/2.0.0 http://pmd.sourceforge.net/ruleset_2_0_0.xsd">
  5. <rule name="SwitchStatementRule"
  6. language="java"
  7. message="java.flowcontrol.SwitchStatementRule.rule.msg"
  8. class="com.alibaba.p3c.pmd.lang.java.rule.flowcontrol.SwitchStatementRule">
  9. <priority>2</priority>
  10. <example>
  11. <![CDATA[
  12. switch (x) {
  13. case 1:
  14. break;
  15. case 2:
  16. break;
  17. default:
  18. }
  19. ]]>
  20. </example>
  21. </rule>
  22. <rule name="NeedBraceRule"
  23. language="java"
  24. message="java.flowcontrol.NeedBraceRule.rule.msg"
  25. class="com.alibaba.p3c.pmd.lang.java.rule.flowcontrol.NeedBraceRule">
  26. <priority>1</priority>
  27. <example>
  28. <![CDATA[
  29. if (flag) {
  30. System.out.println("hello world");
  31. }
  32. ]]>
  33. </example>
  34. </rule>
  35. <rule name="AvoidComplexConditionRule"
  36. language="java"
  37. message="java.flowcontrol.AvoidComplexConditionRule.rule.msg"
  38. class="com.alibaba.p3c.pmd.lang.java.rule.flowcontrol.AvoidComplexConditionRule">
  39. <description>java.flowcontrol.AvoidComplexConditionRule.rule.desc</description>
  40. <priority>3</priority>
  41. <example>
  42. <![CDATA[
  43. Negative example:
  44. if ((file.open(fileName, "w") != null) && (...) || (...)) {
  45. // ...
  46. }
  47. ]]>
  48. </example>
  49. <example>
  50. <![CDATA[
  51. Positive example:
  52. boolean existed = (file.open(fileName, "w") != null) && (...) || (...);
  53. if (existed) {
  54. //...
  55. }
  56. ]]>
  57. </example>
  58. </rule>
  59. <rule name="AvoidNegationOperatorRule"
  60. language="java"
  61. message="java.flowcontrol.AvoidNegationOperatorRule.rule.msg"
  62. class="com.alibaba.p3c.pmd.lang.java.rule.flowcontrol.AvoidNegationOperatorRule">
  63. <description>java.flowcontrol.AvoidNegationOperatorRule.rule.desc</description>
  64. <priority>3</priority>
  65. <example>
  66. <![CDATA[
  67. Negative example:
  68. // Use `if (!(x >= 628))` to represent that x is less than 628.
  69. if (!(x >= 628)) {
  70. // ...
  71. }
  72. ]]>
  73. </example>
  74. <example>
  75. <![CDATA[
  76. Positive example:
  77. // Use `if (x < 628)` to represent that x is less than 628.
  78. if (x < 628)) {
  79. // ...
  80. }
  81. ]]>
  82. </example>
  83. </rule>
  84. </ruleset>