<?xml version="1.0" encoding="UTF-8"?>
<!--
 * Licensed to the Apache Software Foundation (ASF) under one
 * or more contributor license agreements.  See the NOTICE file
 * distributed with this work for additional information
 * regarding copyright ownership.  The ASF licenses this file
 * to you under the Apache License, Version 2.0 (the
 * "License"); you may not use this file except in compliance
 * with the License.  You may obtain a copy of the License at
 *
 *   http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing,
 * software distributed under the License is distributed on an
 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 * KIND, either express or implied.  See the License for the
 * specific language governing permissions and limitations
 * under the License.
-->
<ruleset name="pmd-eclipse">
  <description>PMD Plugin preferences rule set</description>
  
  
  <rule ref="rulesets/basic.xml/BooleanInstantiation"/>
  <rule ref="rulesets/basic.xml/CollapsibleIfStatements"/>
  <rule ref="rulesets/basic.xml/DoubleCheckedLocking"/>
<!--<rule ref="rulesets/basic.xml/EmptyCatchBlock"/>-->
<!--<rule ref="rulesets/basic.xml/EmptyFinallyBlock"/>-->
<!--<rule ref="rulesets/basic.xml/EmptyIfStmt"/>-->
  <rule ref="rulesets/basic.xml/EmptyStatementNotInLoop"/>
<!--<rule ref="rulesets/basic.xml/EmptyStaticInitializer"/>-->
<!--<rule ref="rulesets/basic.xml/EmptySwitchStatements"/>-->
<!--<rule ref="rulesets/basic.xml/EmptySynchronizedBlock"/>-->
<!--<rule ref="rulesets/basic.xml/EmptyTryBlock"/>-->
<!--<rule ref="rulesets/basic.xml/EmptyWhileStmt"/>-->
  <rule ref="rulesets/basic.xml/ForLoopShouldBeWhileLoop"/>
  <rule ref="rulesets/basic.xml/JumbledIncrementer"/>
<!--<rule ref="rulesets/basic.xml/OverrideBothEqualsAndHashcode"/>-->
  <rule ref="rulesets/basic.xml/ReturnFromFinallyBlock"/>
  <rule ref="rulesets/basic.xml/UnconditionalIfStatement"/>
  <rule ref="rulesets/basic.xml/UnnecessaryConversionTemporary"/>
  <rule ref="rulesets/basic.xml/UnnecessaryFinalModifier"/>
  <rule ref="rulesets/basic.xml/UnnecessaryReturn"/>
<!--<rule ref="rulesets/basic.xml/UselessOverridingMethod"/>-->
  
<!--<rule ref="rulesets/braces.xml/ForLoopsMustUseBraces"/>-->
<!--<rule ref="rulesets/braces.xml/IfElseStmtsMustUseBraces"/>-->
<!--<rule ref="rulesets/braces.xml/IfStmtsMustUseBraces"/>-->
<!--<rule ref="rulesets/braces.xml/WhileLoopsMustUseBraces"/>-->

<!--<rule ref="rulesets/clone.xml/CloneMethodMustImplementCloneable"/>-->
<!--<rule ref="rulesets/clone.xml/CloneThrowsCloneNotSupportedException"/>-->
<!--<rule ref="rulesets/clone.xml/ProperCloneImplementation"/>-->
  
<!--<rule ref="rulesets/codesize.xml/CyclomaticComplexity"/>-->
<!--<rule ref="rulesets/codesize.xml/ExcessiveClassLength"/>-->
<!--<rule ref="rulesets/codesize.xml/ExcessiveMethodLength"/>-->
<!--<rule ref="rulesets/codesize.xml/ExcessiveParameterList"/>-->
<!--<rule ref="rulesets/codesize.xml/ExcessivePublicCount"/>-->
<!--<rule ref="rulesets/codesize.xml/TooManyFields"/>-->

<rule ref="rulesets/controversial.xml/AssignmentInOperand"/>
<!--<rule ref="rulesets/controversial.xml/AtLeastOneConstructor"/>-->
<!--<rule ref="rulesets/controversial.xml/CallSuperInConstructor"/>-->
<!--<rule ref="rulesets/controversial.xml/DontImportSun"/>-->
<!--<rule ref="rulesets/controversial.xml/NullAssignment"/>-->
<!--<rule ref="rulesets/controversial.xml/OnlyOneReturn"/>-->
<!--<rule ref="rulesets/controversial.xml/SingularField"/>-->
<!--<rule ref="rulesets/controversial.xml/SuspiciousOctalEscape"/>-->
<!--<rule ref="rulesets/controversial.xml/UnnecessaryConstructor"/>-->
<rule ref="rulesets/controversial.xml/UnnecessaryParentheses"/>
<!--<rule ref="rulesets/controversial.xml/UnusedModifier"/>-->

<!--<rule ref="rulesets/coupling.xml/CouplingBetweenObjects"/>-->
<!--<rule ref="rulesets/coupling.xml/ExcessiveImports"/>-->
<!--<rule ref="rulesets/coupling.xml/LooseCoupling"/>-->

<!--<rule ref="rulesets/design.xml/AbstractClassWithoutAbstractMethod"/>-->
<!--<rule ref="rulesets/design.xml/AccessorClassGeneration"/>-->
<!--<rule ref="rulesets/design.xml/AssignmentToNonFinalStatic"/>-->
<!--<rule ref="rulesets/design.xml/AvoidDeeplyNestedIfStmts"/>-->
<!--<rule ref="rulesets/design.xml/AvoidInstanceofChecksInCatchClause"/>-->
<rule ref="rulesets/design.xml/AvoidProtectedFieldInFinalClass"/>
<!--<rule ref="rulesets/design.xml/AvoidReassigningParameters"/>-->
<!--<rule ref="rulesets/design.xml/AvoidSynchronizedAtMethodLevel"/>-->
<!--<rule ref="rulesets/design.xml/BadComparison"/>-->
<!--<rule ref="rulesets/design.xml/CloseConnection"/>-->
<!--<rule ref="rulesets/design.xml/CompareObjectsWithEquals"/>-->
<!--<rule ref="rulesets/design.xml/ConfusingTernary"/>-->
<rule ref="rulesets/design.xml/ConstructorCallsOverridableMethod"/>
<!--<rule ref="rulesets/design.xml/DefaultLabelNotLastInSwitchStmt"/>-->
<!--<rule ref="rulesets/design.xml/FinalFieldCouldBeStatic"/>-->
<rule ref="rulesets/design.xml/IdempotentOperations"/>
<!--<rule ref="rulesets/design.xml/ImmutableField"/>-->
<!--<rule ref="rulesets/design.xml/InstantiationToGetClass"/>-->
<!--<rule ref="rulesets/design.xml/MissingBreakInSwitch"/>-->
<!--<rule ref="rulesets/design.xml/MissingStaticMethodInNonInstantiatableClass"/>-->
<!--<rule ref="rulesets/design.xml/NonCaseLabelInSwitchStatement"/>-->
<!--<rule ref="rulesets/design.xml/NonStaticInitializer"/>-->
<rule ref="rulesets/design.xml/OptimizableToArrayCall"/>
<rule ref="rulesets/design.xml/PositionLiteralsFirstInComparisons"/>
<rule ref="rulesets/design.xml/SimplifyBooleanExpressions"/>
<rule ref="rulesets/design.xml/SimplifyBooleanReturns"/>
<rule ref="rulesets/design.xml/SimplifyConditional"/>
<!--<rule ref="rulesets/design.xml/SwitchDensity"/>-->
<!--<rule ref="rulesets/design.xml/SwitchStmtsShouldHaveDefault"/>-->
<rule ref="rulesets/design.xml/UnnecessaryLocalBeforeReturn"/>
<!--<rule ref="rulesets/design.xml/UseLocaleWithCaseConversions"/>-->
<!--<rule ref="rulesets/design.xml/UseNotifyAllInsteadOfNotify"/>-->
<!--<rule ref="rulesets/design.xml/UseSingleton"/>-->

<!--<rule ref="rulesets/finalizers.xml/EmptyFinalizer"/>-->
<!--<rule ref="rulesets/finalizers.xml/FinalizeOnlyCallsSuperFinalize"/>-->
<!--<rule ref="rulesets/finalizers.xml/FinalizeOverloaded"/>-->
<!--<rule ref="rulesets/finalizers.xml/FinalizeDoesNotCallSuperFinalize"/>-->
<!--<rule ref="rulesets/finalizers.xml/FinalizeShouldBeProtected"/>-->
<!--<rule ref="rulesets/finalizers.xml/AvoidCallingFinalize"/>-->

<!--<rule ref="rulesets/imports.xml/DuplicateImports"/>-->
<!--<rule ref="rulesets/imports.xml/DontImportJavaLang"/>-->
<!--<rule ref="rulesets/imports.xml/UnusedImports"/>-->
<!--<rule ref="rulesets/imports.xml/ImportFromSamePackage"/>-->

<!--<rule ref="rulesets/javabeans.xml/BeanMembersShouldSerialize"/>-->
<!--<rule ref="rulesets/javabeans.xml/MissingSerialVersionUID"/>-->

<!--<rule ref="rulesets/junit.xml/JUnitStaticSuite"/>-->
<!--<rule ref="rulesets/junit.xml/JUnitSpelling"/>-->
<!--<rule ref="rulesets/junit.xml/JUnitAssertionsShouldIncludeMessage"/>-->
<!--<rule ref="rulesets/junit.xml/JUnitTestsShouldIncludeAssert"/>-->
<!--<rule ref="rulesets/junit.xml/TestClassWithoutTestCases"/>-->
<!--<rule ref="rulesets/junit.xml/UnnecessaryBooleanAssertion"/>-->
<!--<rule ref="rulesets/junit.xml/UseAssertEqualsInsteadOfAssertTrue"/>-->
<!--<rule ref="rulesets/junit.xml/UseAssertSameInsteadOfAssertTrue"/>-->

  <!--<rule ref="rulesets/logging-java.xml/AvoidPrintStackTrace"/>-->
  <!--<rule ref="rulesets/logging-java.xml/LoggerIsNotStaticFinal"/>-->
  <!--<rule ref="rulesets/logging-java.xml/MoreThanOneLogger"/>-->
  <!--<rule ref="rulesets/logging-java.xml/LoggerIsNotStaticFinal"/>-->
  <!--<rule ref="rulesets/logging-java.xml/LogBlockWithoutIf"/>-->
  <!--<rule ref="rulesets/logging-java.xml/SystemPrintln"/>-->
  <!--<rule ref="rulesets/logging-jakarta-commons.xml/UseCorrectExceptionLogging"/>-->
  <!--<rule ref="rulesets/logging-jakarta-commons.xml/ProperLogger"/>-->
  
  <!--<rule ref="rulesets/naming.xml/ShortVariable"/>-->
  <!--<rule ref="rulesets/naming.xml/LongVariable"/>-->
  <!--<rule ref="rulesets/naming.xml/ShortMethodName"/>-->
  <!--<rule ref="rulesets/naming.xml/VariableNamingConventions"/>-->
  <!--<rule ref="rulesets/naming.xml/MethodNamingConventions"/>-->
  <!--<rule ref="rulesets/naming.xml/ClassNamingConventions"/>-->
  <!--<rule ref="rulesets/naming.xml/AbstractNaming"/>-->
  <!--<rule ref="rulesets/naming.xml/AvoidDollarSigns"/>-->
  <!--<rule ref="rulesets/naming.xml/MethodWithSameNameAsEnclosingClass"/>-->
  <!--<rule ref="rulesets/naming.xml/SuspiciousHashcodeMethodName"/>-->
  <!--<rule ref="rulesets/naming.xml/SuspiciousConstantFieldName"/>-->
  <!--<rule ref="rulesets/naming.xml/AvoidFieldNameMatchingTypeName"/>-->
  <!--<rule ref="rulesets/naming.xml/AvoidFieldNameMatchingMethodName"/>-->
  <!--<rule ref="rulesets/naming.xml/AvoidNonConstructorMethodsWithClassName"/>-->
  <!--<rule ref="rulesets/naming.xml/NoPackage"/>-->
  <!--<rule ref="rulesets/naming.xml/PackageCase"/>-->

  <!--<rule ref="rulesets/optimizations.xml/LocalVariableCouldBeFinal"/>-->
  <!--<rule ref="rulesets/optimizations.xml/MethodArgumentCouldBeFinal"/>-->
  <!--<rule ref="rulesets/optimizations.xml/AvoidInstantiatingObjectsInLoops"/>-->
  <!--<rule ref="rulesets/optimizations.xml/UseArrayListInsteadOfVector"/>-->
  <!--<rule ref="rulesets/optimizations.xml/SimplifyStartsWith"/>-->
  <!--<rule ref="rulesets/optimizations.xml/UseStringBufferForStringAppends"/>-->

  <!--<rule ref="rulesets/strictexception.xml/AvoidCatchingThrowable"/>-->
  <!--<rule ref="rulesets/strictexception.xml/SignatureDeclareThrowsException"/>-->
  <!--<rule ref="rulesets/strictexception.xml/ExceptionAsFlowControl"/>-->
  <!--<rule ref="rulesets/strictexception.xml/AvoidCatchingNPE"/>-->
  <!--<rule ref="rulesets/strictexception.xml/AvoidThrowingRawExceptionTypes"/>-->
  <!--<rule ref="rulesets/strictexception.xml/AvoidThrowingNullPointerException"/>-->
 
  <!--<rule ref="rulesets/strings.xml/AvoidDuplicateLiterals"/>-->
  <!--<rule ref="rulesets/strings.xml/StringInstantiation"/>-->
  <!--<rule ref="rulesets/strings.xml/StringToString"/>-->
  <!--<rule ref="rulesets/strings.xml/AvoidConcatenatingNonLiteralsInStringBuffer"/>-->
  <!--<rule ref="rulesets/strings.xml/UnnecessaryCaseChange"/>-->
  
  <!--<rule ref="rulesets/sunsecure.xml/MethodReturnsInternalArray"/>-->
  <!--<rule ref="rulesets/sunsecure.xml/ArrayIsStoredDirectly"/>-->
  
  <rule ref="rulesets/unusedcode.xml/UnusedLocalVariable"/>
  <rule ref="rulesets/unusedcode.xml/UnusedPrivateField"/>
  <rule ref="rulesets/unusedcode.xml/UnusedPrivateMethod"/>
  <!--<rule ref="rulesets/unusedcode.xml/UnusedFormalParameter"/>-->
  
</ruleset>