1 <?xml version="1.0" encoding="UTF-8"?>
2 <ruleset xmlns="http://pmd.sf.net/ruleset/1.0.0" name="" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://pmd.sf.net/ruleset_xml_schema.xsd" xsi:schemaLocation="http://pmd.sf.net/ruleset/1.0.0 http://pmd.sf.net/ruleset_xml_schema.xsd">
3 <description>PMD Plugin preferences rule set Hewis
4 level 1 : not to be violated AREVA requirements
5 level 2 : not to be violated EURIWARE requirements
6 level 3 :should not be violated AREVA requirements
7 level 4 :should not be violated EURIWARE requirements
8 level 5 : good practices
11 <exclude-pattern>.*/org/.*</exclude-pattern>
12 <exclude-pattern>.*/test/.*</exclude-pattern>
14 <rule ref="rulesets/logging-jakarta-commons.xml/UseCorrectExceptionLogging">
15 <priority>5</priority>
17 <rule ref="rulesets/logging-jakarta-commons.xml/ProperLogger">
18 <priority>5</priority>
20 <rule ref="rulesets/strings.xml/AvoidDuplicateLiterals">
21 <priority>2</priority>
23 <rule ref="rulesets/strings.xml/StringInstantiation">
24 <priority>5</priority>
26 <rule ref="rulesets/strings.xml/StringToString">
27 <priority>4</priority>
29 <rule ref="rulesets/strings.xml/InefficientStringBuffering">
30 <priority>5</priority>
32 <rule ref="rulesets/strings.xml/UnnecessaryCaseChange">
33 <priority>5</priority>
35 <rule ref="rulesets/strings.xml/UseStringBufferLength">
36 <priority>5</priority>
38 <rule ref="rulesets/strings.xml/AppendCharacterWithChar">
39 <priority>5</priority>
41 <rule ref="rulesets/strings.xml/ConsecutiveLiteralAppends">
42 <priority>5</priority>
44 <rule ref="rulesets/strings.xml/UseIndexOfChar">
45 <priority>4</priority>
47 <rule ref="rulesets/strings.xml/InefficientEmptyStringCheck">
48 <priority>5</priority>
50 <rule ref="rulesets/strings.xml/InsufficientStringBufferDeclaration">
51 <priority>5</priority>
53 <rule ref="rulesets/strings.xml/UselessStringValueOf">
54 <priority>5</priority>
56 <rule ref="rulesets/strings.xml/StringBufferInstantiationWithChar">
57 <priority>5</priority>
59 <rule ref="rulesets/strings.xml/UseEqualsToCompareStrings">
60 <priority>5</priority>
62 <rule ref="rulesets/strings.xml/AvoidStringBufferField">
63 <priority>5</priority>
65 <rule ref="rulesets/optimizations.xml/MethodArgumentCouldBeFinal">
66 <priority>4</priority>
68 <rule ref="rulesets/optimizations.xml/AvoidInstantiatingObjectsInLoops">
69 <priority>4</priority>
71 <rule ref="rulesets/optimizations.xml/UseArrayListInsteadOfVector">
72 <priority>4</priority>
74 <rule ref="rulesets/optimizations.xml/SimplifyStartsWith">
75 <priority>5</priority>
77 <rule ref="rulesets/optimizations.xml/UseStringBufferForStringAppends">
78 <priority>5</priority>
80 <rule ref="rulesets/optimizations.xml/UseArraysAsList">
81 <priority>5</priority>
83 <rule ref="rulesets/optimizations.xml/AvoidArrayLoops">
84 <priority>5</priority>
86 <rule ref="rulesets/optimizations.xml/UnnecessaryWrapperObjectCreation">
87 <priority>5</priority>
89 <rule ref="rulesets/optimizations.xml/AddEmptyString">
90 <priority>5</priority>
92 <rule ref="rulesets/typeresolution.xml/LooseCoupling">
93 <priority>5</priority>
95 <rule ref="rulesets/typeresolution.xml/CloneMethodMustImplementCloneable">
96 <priority>5</priority>
98 <rule ref="rulesets/typeresolution.xml/UnusedImports">
99 <priority>2</priority>
101 <rule ref="rulesets/typeresolution.xml/SignatureDeclareThrowsException">
102 <priority>2</priority>
104 <rule ref="rulesets/design.xml/UseSingleton">
105 <priority>5</priority>
107 <rule ref="rulesets/design.xml/SimplifyBooleanReturns">
108 <priority>5</priority>
110 <rule ref="rulesets/design.xml/SimplifyBooleanExpressions">
111 <priority>5</priority>
113 <rule ref="rulesets/design.xml/SwitchStmtsShouldHaveDefault">
114 <priority>3</priority>
116 <rule ref="rulesets/design.xml/AvoidDeeplyNestedIfStmts">
117 <priority>5</priority>
119 <rule ref="rulesets/design.xml/AvoidReassigningParameters">
120 <priority>5</priority>
122 <rule ref="rulesets/design.xml/SwitchDensity">
123 <priority>5</priority>
125 <rule ref="rulesets/design.xml/ConstructorCallsOverridableMethod">
126 <priority>2</priority>
128 <rule ref="rulesets/design.xml/AccessorClassGeneration">
129 <priority>5</priority>
131 <rule ref="rulesets/design.xml/FinalFieldCouldBeStatic">
132 <priority>5</priority>
134 <rule ref="rulesets/design.xml/CloseResource">
135 <priority>2</priority>
137 <rule ref="rulesets/design.xml/NonStaticInitializer">
138 <priority>2</priority>
140 <rule ref="rulesets/design.xml/DefaultLabelNotLastInSwitchStmt">
141 <priority>2</priority>
143 <rule ref="rulesets/design.xml/NonCaseLabelInSwitchStatement">
144 <priority>5</priority>
146 <rule ref="rulesets/design.xml/OptimizableToArrayCall">
147 <priority>5</priority>
149 <rule ref="rulesets/design.xml/BadComparison">
150 <priority>3</priority>
152 <rule ref="rulesets/design.xml/EqualsNull">
153 <priority>3</priority>
155 <rule ref="rulesets/design.xml/ConfusingTernary">
156 <priority>1</priority>
158 <rule ref="rulesets/design.xml/InstantiationToGetClass">
159 <priority>5</priority>
161 <rule ref="rulesets/design.xml/IdempotentOperations">
162 <priority>3</priority>
164 <rule ref="rulesets/design.xml/SimpleDateFormatNeedsLocale">
165 <priority>2</priority>
167 <rule ref="rulesets/design.xml/ImmutableField">
168 <priority>5</priority>
170 <rule ref="rulesets/design.xml/AvoidProtectedFieldInFinalClass">
171 <priority>5</priority>
173 <rule ref="rulesets/design.xml/AssignmentToNonFinalStatic">
174 <priority>5</priority>
176 <rule ref="rulesets/design.xml/MissingStaticMethodInNonInstantiatableClass">
177 <priority>3</priority>
179 <rule ref="rulesets/design.xml/AvoidSynchronizedAtMethodLevel">
180 <priority>2</priority>
182 <rule ref="rulesets/design.xml/MissingBreakInSwitch">
183 <priority>2</priority>
185 <rule ref="rulesets/design.xml/UseNotifyAllInsteadOfNotify">
186 <priority>5</priority>
188 <rule ref="rulesets/design.xml/AvoidInstanceofChecksInCatchClause">
189 <priority>5</priority>
191 <rule ref="rulesets/design.xml/AbstractClassWithoutAbstractMethod">
192 <priority>2</priority>
194 <rule ref="rulesets/design.xml/SimplifyConditional">
195 <priority>5</priority>
197 <rule ref="rulesets/design.xml/CompareObjectsWithEquals">
198 <priority>1</priority>
200 <rule ref="rulesets/design.xml/PositionLiteralsFirstInComparisons">
201 <priority>4</priority>
203 <rule ref="rulesets/design.xml/NonThreadSafeSingleton">
204 <priority>2</priority>
206 <rule ref="rulesets/design.xml/UncommentedEmptyMethod">
207 <priority>2</priority>
209 <rule ref="rulesets/design.xml/UncommentedEmptyConstructor">
210 <priority>2</priority>
212 <rule ref="rulesets/design.xml/AvoidConstantsInterface">
213 <priority>5</priority>
215 <rule ref="rulesets/design.xml/UnsynchronizedStaticDateFormatter">
216 <priority>2</priority>
218 <rule ref="rulesets/design.xml/PreserveStackTrace">
219 <priority>2</priority>
221 <rule ref="rulesets/design.xml/UseCollectionIsEmpty">
222 <priority>4</priority>
224 <rule ref="rulesets/design.xml/ClassWithOnlyPrivateConstructorsShouldBeFinal">
225 <priority>4</priority>
227 <rule ref="rulesets/design.xml/EmptyMethodInAbstractClassShouldBeAbstract">
228 <priority>2</priority>
230 <rule ref="rulesets/design.xml/SingularField">
231 <priority>2</priority>
233 <rule ref="rulesets/design.xml/ReturnEmptyArrayRatherThanNull">
234 <priority>4</priority>
236 <rule ref="rulesets/design.xml/AbstractClassWithoutAnyMethod">
237 <priority>2</priority>
239 <rule ref="rulesets/design.xml/TooFewBranchesForASwitchStatement">
240 <priority>4</priority>
242 <rule ref="rulesets/braces.xml/IfStmtsMustUseBraces">
243 <priority>3</priority>
245 <rule ref="rulesets/braces.xml/WhileLoopsMustUseBraces">
246 <priority>3</priority>
248 <rule ref="rulesets/braces.xml/IfElseStmtsMustUseBraces">
249 <priority>3</priority>
251 <rule ref="rulesets/braces.xml/ForLoopsMustUseBraces">
252 <priority>3</priority>
254 <rule ref="rulesets/coupling.xml/CouplingBetweenObjects">
255 <priority>5</priority>
257 <rule ref="rulesets/coupling.xml/ExcessiveImports">
258 <priority>5</priority>
260 <rule ref="rulesets/coupling.xml/LooseCoupling">
261 <priority>4</priority>
263 <rule ref="rulesets/basic.xml/EmptyCatchBlock">
264 <priority>2</priority>
266 <rule ref="rulesets/basic.xml/EmptyIfStmt">
267 <priority>2</priority>
269 <rule ref="rulesets/basic.xml/EmptyWhileStmt">
270 <priority>2</priority>
272 <rule ref="rulesets/basic.xml/EmptyTryBlock">
273 <priority>2</priority>
275 <rule ref="rulesets/basic.xml/EmptyFinallyBlock">
276 <priority>2</priority>
278 <rule ref="rulesets/basic.xml/EmptySwitchStatements">
279 <priority>2</priority>
281 <rule ref="rulesets/basic.xml/JumbledIncrementer">
282 <priority>2</priority>
284 <rule ref="rulesets/basic.xml/ForLoopShouldBeWhileLoop">
285 <priority>5</priority>
287 <rule ref="rulesets/basic.xml/UnnecessaryConversionTemporary">
288 <priority>5</priority>
290 <rule ref="rulesets/basic.xml/OverrideBothEqualsAndHashcode">
291 <priority>4</priority>
293 <rule ref="rulesets/basic.xml/DoubleCheckedLocking">
294 <priority>5</priority>
296 <rule ref="rulesets/basic.xml/ReturnFromFinallyBlock">
297 <priority>4</priority>
299 <rule ref="rulesets/basic.xml/EmptySynchronizedBlock">
300 <priority>2</priority>
302 <rule ref="rulesets/basic.xml/UnnecessaryReturn">
303 <priority>2</priority>
305 <rule ref="rulesets/basic.xml/EmptyStaticInitializer">
306 <priority>2</priority>
308 <rule ref="rulesets/basic.xml/UnconditionalIfStatement">
309 <priority>2</priority>
311 <rule ref="rulesets/basic.xml/EmptyStatementNotInLoop">
312 <priority>2</priority>
314 <rule ref="rulesets/basic.xml/BooleanInstantiation">
315 <priority>3</priority>
317 <rule ref="rulesets/basic.xml/UnnecessaryFinalModifier">
318 <priority>5</priority>
320 <rule ref="rulesets/basic.xml/CollapsibleIfStatements">
321 <priority>5</priority>
323 <rule ref="rulesets/basic.xml/UselessOverridingMethod">
324 <priority>2</priority>
326 <rule ref="rulesets/basic.xml/ClassCastExceptionWithToArray">
327 <priority>3</priority>
329 <rule ref="rulesets/basic.xml/AvoidDecimalLiteralsInBigDecimalConstructor">
330 <priority>4</priority>
332 <rule ref="rulesets/basic.xml/UselessOperationOnImmutable">
333 <priority>2</priority>
335 <rule ref="rulesets/basic.xml/MisplacedNullCheck">
336 <priority>2</priority>
338 <rule ref="rulesets/basic.xml/UnusedNullCheckInEquals">
339 <priority>2</priority>
341 <rule ref="rulesets/basic.xml/AvoidThreadGroup">
342 <priority>4</priority>
344 <rule ref="rulesets/basic.xml/BrokenNullCheck">
345 <priority>2</priority>
347 <rule ref="rulesets/basic.xml/BigIntegerInstantiation">
348 <priority>3</priority>
350 <rule ref="rulesets/basic.xml/AvoidUsingOctalValues">
351 <priority>4</priority>
353 <rule ref="rulesets/basic.xml/AvoidUsingHardCodedIP">
354 <priority>2</priority>
356 <rule ref="rulesets/basic.xml/CheckResultSet">
357 <priority>2</priority>
359 <rule ref="rulesets/basic.xml/AvoidMultipleUnaryOperators">
360 <priority>2</priority>
362 <rule ref="rulesets/controversial.xml/UnnecessaryConstructor">
363 <priority>4</priority>
365 <rule ref="rulesets/controversial.xml/NullAssignment">
366 <priority>5</priority>
368 <rule ref="rulesets/controversial.xml/OnlyOneReturn">
369 <priority>3</priority>
371 <rule ref="rulesets/controversial.xml/UnusedModifier">
372 <priority>5</priority>
374 <rule ref="rulesets/controversial.xml/AssignmentInOperand">
375 <priority>2</priority>
377 <rule ref="rulesets/controversial.xml/DontImportSun">
378 <priority>2</priority>
380 <rule ref="rulesets/controversial.xml/SuspiciousOctalEscape">
381 <priority>4</priority>
383 <rule ref="rulesets/controversial.xml/CallSuperInConstructor">
384 <priority>4</priority>
386 <rule ref="rulesets/controversial.xml/UnnecessaryParentheses">
387 <priority>5</priority>
389 <rule ref="rulesets/controversial.xml/DefaultPackage">
390 <priority>2</priority>
392 <rule ref="rulesets/controversial.xml/BooleanInversion">
393 <priority>3</priority>
395 <rule ref="rulesets/controversial.xml/DataflowAnomalyAnalysis">
396 <priority>5</priority>
398 <rule ref="rulesets/controversial.xml/AvoidFinalLocalVariable">
399 <priority>2</priority>
401 <rule ref="rulesets/controversial.xml/AvoidUsingShortType">
402 <priority>5</priority>
404 <rule ref="rulesets/controversial.xml/AvoidUsingVolatile">
405 <priority>2</priority>
407 <rule ref="rulesets/controversial.xml/AvoidUsingNativeCode">
408 <priority>2</priority>
410 <rule ref="rulesets/controversial.xml/AvoidAccessibilityAlteration">
411 <priority>2</priority>
413 <rule ref="rulesets/controversial.xml/DoNotCallGarbageCollectionExplicitly">
414 <priority>1</priority>
416 <rule ref="rulesets/logging-java.xml/MoreThanOneLogger">
417 <priority>3</priority>
419 <rule ref="rulesets/logging-java.xml/LoggerIsNotStaticFinal">
420 <priority>3</priority>
422 <rule ref="rulesets/logging-java.xml/SystemPrintln">
423 <priority>1</priority>
425 <rule ref="rulesets/logging-java.xml/AvoidPrintStackTrace">
426 <priority>1</priority>
429 <rule ref="rulesets/imports.xml/DuplicateImports">
430 <priority>2</priority>
432 <rule ref="rulesets/imports.xml/DontImportJavaLang">
433 <priority>2</priority>
436 <rule ref="rulesets/imports.xml/UnusedImports">
437 <priority>3</priority>
439 <rule ref="rulesets/imports.xml/ImportFromSamePackage">
440 <priority>2</priority>
442 <rule ref="rulesets/imports.xml/TooManyStaticImports">
443 <priority>2</priority>
445 <rule ref="rulesets/migrating.xml/ReplaceVectorWithList">
446 <priority>4</priority>
448 <rule ref="rulesets/migrating.xml/ReplaceHashtableWithMap">
449 <priority>4</priority>
451 <rule ref="rulesets/migrating.xml/ReplaceEnumerationWithIterator">
452 <priority>4</priority>
454 <rule ref="rulesets/migrating.xml/IntegerInstantiation">
455 <priority>3</priority>
457 <rule ref="rulesets/migrating.xml/ByteInstantiation">
458 <priority>3</priority>
460 <rule ref="rulesets/migrating.xml/ShortInstantiation">
461 <priority>3</priority>
463 <rule ref="rulesets/migrating.xml/LongInstantiation">
464 <priority>3</priority>
466 <rule ref="rulesets/clone.xml/ProperCloneImplementation">
467 <priority>5</priority>
469 <rule ref="rulesets/clone.xml/CloneThrowsCloneNotSupportedException">
470 <priority>5</priority>
472 <rule ref="rulesets/clone.xml/CloneMethodMustImplementCloneable">
473 <priority>5</priority>
475 <rule ref="rulesets/strictexception.xml/AvoidCatchingThrowable">
476 <priority>2</priority>
478 <rule ref="rulesets/strictexception.xml/SignatureDeclareThrowsException">
479 <priority>3</priority>
481 <rule ref="rulesets/strictexception.xml/ExceptionAsFlowControl">
482 <priority>4</priority>
484 <rule ref="rulesets/strictexception.xml/AvoidCatchingNPE">
485 <priority>3</priority>
487 <rule ref="rulesets/strictexception.xml/AvoidThrowingRawExceptionTypes">
488 <priority>3</priority>
490 <rule ref="rulesets/strictexception.xml/AvoidThrowingNullPointerException">
491 <priority>3</priority>
493 <rule ref="rulesets/strictexception.xml/AvoidRethrowingException">
494 <priority>5</priority>
496 <rule ref="rulesets/strictexception.xml/DoNotExtendJavaLangError">
497 <priority>2</priority>
499 <rule ref="rulesets/strictexception.xml/DoNotThrowExceptionInFinally">
500 <priority>2</priority>
502 <rule ref="rulesets/sunsecure.xml/MethodReturnsInternalArray">
503 <priority>4</priority>
505 <rule ref="rulesets/sunsecure.xml/ArrayIsStoredDirectly">
506 <priority>4</priority>
508 <rule ref="rulesets/javabeans.xml/BeanMembersShouldSerialize">
510 <property name="prefix" value="_"/>
512 <priority>4</priority>
514 <rule ref="rulesets/javabeans.xml/MissingSerialVersionUID">
515 <priority>4</priority>
517 <rule ref="rulesets/finalizers.xml/EmptyFinalizer">
518 <priority>4</priority>
520 <rule ref="rulesets/finalizers.xml/FinalizeOnlyCallsSuperFinalize">
521 <priority>4</priority>
523 <rule ref="rulesets/finalizers.xml/FinalizeOverloaded">
524 <priority>2</priority>
526 <rule ref="rulesets/finalizers.xml/FinalizeDoesNotCallSuperFinalize">
527 <priority>4</priority>
529 <rule ref="rulesets/finalizers.xml/FinalizeShouldBeProtected">
530 <priority>4</priority>
532 <rule ref="rulesets/finalizers.xml/AvoidCallingFinalize">
533 <priority>2</priority>
535 <rule ref="rulesets/j2ee.xml/UseProperClassLoader">
536 <priority>4</priority>
538 <rule ref="rulesets/j2ee.xml/MDBAndSessionBeanNamingConvention">
539 <priority>4</priority>
541 <rule ref="rulesets/j2ee.xml/RemoteSessionInterfaceNamingConvention">
542 <priority>4</priority>
544 <rule ref="rulesets/j2ee.xml/LocalInterfaceSessionNamingConvention">
545 <priority>4</priority>
547 <rule ref="rulesets/j2ee.xml/LocalHomeNamingConvention">
548 <priority>4</priority>
550 <rule ref="rulesets/j2ee.xml/RemoteInterfaceNamingConvention">
551 <priority>4</priority>
553 <rule ref="rulesets/j2ee.xml/DoNotCallSystemExit">
554 <priority>2</priority>
556 <rule ref="rulesets/j2ee.xml/StaticEJBFieldShouldBeFinal">
557 <priority>4</priority>
559 <rule ref="rulesets/j2ee.xml/DoNotUseThreads">
560 <priority>2</priority>
562 <rule ref="rulesets/naming.xml/VariableNamingConventions">
564 <property name="staticPrefix" value=""/>
565 <property name="staticSuffix" value=""/>
566 <property name="memberPrefix" value="_"/>
567 <property name="memberSuffix" value=""/>
569 <priority>1</priority>
571 <rule ref="rulesets/naming.xml/MethodNamingConventions">
572 <priority>1</priority>
574 <rule ref="rulesets/naming.xml/ClassNamingConventions">
575 <priority>1</priority>
577 <rule ref="rulesets/naming.xml/AbstractNaming">
578 <priority>2</priority>
580 <rule ref="rulesets/naming.xml/AvoidDollarSigns">
581 <priority>1</priority>
583 <rule ref="rulesets/naming.xml/MethodWithSameNameAsEnclosingClass">
584 <priority>2</priority>
586 <rule ref="rulesets/naming.xml/SuspiciousHashcodeMethodName">
587 <priority>2</priority>
589 <rule ref="rulesets/naming.xml/SuspiciousConstantFieldName">
590 <priority>2</priority>
592 <rule ref="rulesets/naming.xml/SuspiciousConstantFieldName">
593 <priority>2</priority>
595 <rule ref="rulesets/naming.xml/SuspiciousEqualsMethodName">
596 <priority>2</priority>
598 <rule ref="rulesets/naming.xml/AvoidFieldNameMatchingTypeName">
599 <priority>2</priority>
601 <rule ref="rulesets/naming.xml/AvoidFieldNameMatchingMethodName">
602 <priority>2</priority>
604 <rule ref="rulesets/naming.xml/NoPackage">
605 <priority>1</priority>
607 <rule ref="rulesets/naming.xml/PackageCase">
608 <priority>1</priority>
610 <rule ref="rulesets/naming.xml/MisleadingVariableName">
611 <priority>1</priority>
613 <rule ref="rulesets/naming.xml/BooleanGetMethodName">
614 <priority>5</priority>
616 <rule ref="rulesets/codesize.xml/NPathComplexity">
617 <priority>3</priority>
619 <rule ref="rulesets/codesize.xml/ExcessiveMethodLength">
621 <property name="minimun" value="50"/>
623 <priority>3</priority>
625 <rule ref="rulesets/codesize.xml/ExcessiveParameterList">
627 <property name="minimun" value="10"/>
629 <priority>4</priority>
632 <rule ref="rulesets/codesize.xml/ExcessiveClassLength">
634 <property name="minimun" value="1000"/>
636 <priority>3</priority>
638 <rule ref="rulesets/codesize.xml/CyclomaticComplexity">
640 <property name="reportLevel" value="25"/>
642 <priority>3</priority>
644 <rule ref="rulesets/codesize.xml/ExcessivePublicCount">
645 <priority>4</priority>
647 <property name="reportLevel" value="20"/>
650 <rule ref="rulesets/codesize.xml/TooManyFields">
651 <priority>4</priority>
653 <rule ref="rulesets/codesize.xml/NcssMethodCount">
654 <priority>4</priority>
656 <rule ref="rulesets/codesize.xml/NcssTypeCount">
657 <priority>4</priority>
659 <rule ref="rulesets/codesize.xml/NcssConstructorCount">
660 <priority>4</priority>
662 <rule ref="rulesets/codesize.xml/TooManyMethods">
664 <property name="maxmethods" value="15"/>
666 <priority>4</priority>
668 <rule ref="rulesets/unusedcode.xml/UnusedPrivateField">
669 <priority>2</priority>
671 <rule ref="rulesets/unusedcode.xml/UnusedLocalVariable">
672 <priority>2</priority>
674 <rule ref="rulesets/unusedcode.xml/UnusedPrivateMethod">
675 <priority>2</priority>
677 <rule ref="rulesets/unusedcode.xml/UnusedFormalParameter">
678 <priority>5</priority>
680 <rule class="net.sourceforge.pmd.rules.XPathRule" message="Avoid naming fields without the prefix '_'" name="FieldNamingRules">
682 Detects when a field has not a name starting with '_'.
687 private int _foo; // OK
688 private int bar; // Not good
693 <priority>1</priority>
695 <property name="xpath">
698 //FieldDeclaration[@Static='false']
700 //VariableDeclaratorId
701 [not(starts-with(@Image, '_'))]
705 <property name="pluginname" value="true"/>
708 <rule class="net.sourceforge.pmd.rules.XPathRule" message="Avoid parameters with the prefix '_'" name="ParametersNamingRules">
710 Detects when a parameter has a name starting with '_'.
715 private void foo(int bar) // OK
716 private void foo2(int _bar) // Not good
721 <priority>1</priority>
723 <property name="xpath">
726 //VariableDeclaratorId
727 [starts-with(@Image, '_')]
728 [not (../../../FieldDeclaration)]
733 <property name="pluginname" value="true"/>
736 <rule name="DoNotUseConditionalExpression "
737 message="Do not use condition?statement:statement;"
738 class="net.sourceforge.pmd.rules.XPathRule">
740 Detect using of condition?statement:statement;
742 <priority>1</priority>
744 <property name="xpath">
747 //ConditionalExpression
752 <priority>3</priority>
755 public class Sample {
756 boolean bar(int x, int y) {
763 return (x == y) ? same : diff;