<?xml version="1.0" encoding="UTF-8"?>
<ruleset xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" name=""
    xmlns="http://pmd.sf.net/ruleset/1.0.0"
    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">
    <description />
    <rule ref="rulesets/java/basic.xml/AvoidDecimalLiteralsInBigDecimalConstructor" />
    <rule ref="rulesets/java/basic.xml/AvoidMultipleUnaryOperators" />
    <rule ref="rulesets/java/basic.xml/AvoidThreadGroup" />
    <rule ref="rulesets/java/basic.xml/AvoidUsingHardCodedIP" />
    <rule ref="rulesets/java/basic.xml/AvoidUsingOctalValues" />
    <rule ref="rulesets/java/basic.xml/BigIntegerInstantiation" />
    <rule ref="rulesets/java/basic.xml/BooleanInstantiation" />
    <rule ref="rulesets/java/basic.xml/BrokenNullCheck" />
    <rule ref="rulesets/java/basic.xml/CheckResultSet" />
    <rule ref="rulesets/java/basic.xml/ClassCastExceptionWithToArray" />
    <rule ref="rulesets/java/basic.xml/CollapsibleIfStatements" />
    <rule ref="rulesets/java/basic.xml/DoubleCheckedLocking" />
    <rule ref="rulesets/java/empty.xml/EmptyCatchBlock" />
    <rule ref="rulesets/java/empty.xml/EmptyFinallyBlock" />
    <rule ref="rulesets/java/empty.xml/EmptyIfStmt" />
    <rule ref="rulesets/java/empty.xml/EmptyInitializer" />
    <rule ref="rulesets/java/empty.xml/EmptyStatementNotInLoop" />
    <rule ref="rulesets/java/empty.xml/EmptyStaticInitializer" />
    <rule ref="rulesets/java/empty.xml/EmptySwitchStatements" />
    <rule ref="rulesets/java/empty.xml/EmptySynchronizedBlock" />
    <rule ref="rulesets/java/empty.xml/EmptyTryBlock" />
    <rule ref="rulesets/java/empty.xml/EmptyWhileStmt" />
    <rule ref="rulesets/java/basic.xml/ForLoopShouldBeWhileLoop" />
    <rule ref="rulesets/java/basic.xml/JumbledIncrementer" />
    <rule ref="rulesets/java/basic.xml/MisplacedNullCheck" />
    <rule ref="rulesets/java/basic.xml/OverrideBothEqualsAndHashcode" />
    <rule ref="rulesets/java/basic.xml/ReturnFromFinallyBlock" />
    <rule ref="rulesets/java/basic.xml/UnconditionalIfStatement" />
    <rule ref="rulesets/java/unnecessary.xml/UnnecessaryConversionTemporary" />
    <rule ref="rulesets/java/unnecessary.xml/UnnecessaryFinalModifier" />
    <rule ref="rulesets/java/unnecessary.xml/UnnecessaryReturn" />
    <rule ref="rulesets/java/unnecessary.xml/UnusedNullCheckInEquals" />
    <rule ref="rulesets/java/unnecessary.xml/UselessOperationOnImmutable" />
    <rule ref="rulesets/java/unnecessary.xml/UselessOverridingMethod" />
    <rule ref="rulesets/java/braces.xml/ForLoopsMustUseBraces" />
    <rule ref="rulesets/java/braces.xml/IfElseStmtsMustUseBraces" />
    <rule ref="rulesets/java/braces.xml/IfStmtsMustUseBraces" />
    <rule ref="rulesets/java/braces.xml/WhileLoopsMustUseBraces" />
    <rule ref="rulesets/java/clone.xml/CloneThrowsCloneNotSupportedException" />
    <rule ref="rulesets/java/clone.xml/ProperCloneImplementation" />
    <rule ref="rulesets/java/codesize.xml/CyclomaticComplexity">
        <properties>
            <property name="reportLevel" value="25" />
        </properties>
    </rule>
    <rule ref="rulesets/java/codesize.xml/ExcessiveClassLength" />
    <rule ref="rulesets/java/codesize.xml/ExcessiveMethodLength" />
    <rule ref="rulesets/java/codesize.xml/ExcessiveParameterList">
        <properties>
            <property name="minimum" value="7" />
        </properties>
    </rule>
    <rule ref="rulesets/java/codesize.xml/ExcessivePublicCount" />
    <rule ref="rulesets/java/codesize.xml/NcssConstructorCount" />
    <rule ref="rulesets/java/codesize.xml/NcssMethodCount" />
    <rule ref="rulesets/java/codesize.xml/NcssTypeCount" />
    <rule ref="rulesets/java/codesize.xml/TooManyFields">
        <properties>
            <property name="maxfields" value="20" />
        </properties>
    </rule>
    <rule ref="rulesets/java/codesize.xml/TooManyMethods">
        <properties>
            <property name="maxmethods" value="20" />
        </properties>
    </rule>
    <rule ref="rulesets/java/controversial.xml/AssignmentInOperand" />
    <rule ref="rulesets/java/controversial.xml/AvoidAccessibilityAlteration" />
    <rule ref="rulesets/java/controversial.xml/AvoidUsingNativeCode" />
    <rule ref="rulesets/java/controversial.xml/AvoidUsingShortType" />
    <rule ref="rulesets/java/controversial.xml/AvoidUsingVolatile" />
    <rule ref="rulesets/java/controversial.xml/CallSuperInConstructor" />
    <rule ref="rulesets/java/controversial.xml/DoNotCallGarbageCollectionExplicitly" />
    <rule ref="rulesets/java/controversial.xml/DontImportSun" />
    <rule ref="rulesets/java/controversial.xml/SuspiciousOctalEscape" />
    <rule ref="rulesets/java/controversial.xml/UnnecessaryConstructor" />
    <rule ref="rulesets/java/controversial.xml/UnnecessaryParentheses" />
    <rule ref="rulesets/java/unusedcode.xml/UnusedModifier" />
    <rule ref="rulesets/java/coupling.xml/CouplingBetweenObjects" />
    <rule ref="rulesets/java/coupling.xml/ExcessiveImports" />
    <rule ref="rulesets/java/design.xml/AbstractClassWithoutAbstractMethod" />
    <rule ref="rulesets/java/design.xml/AbstractClassWithoutAnyMethod" />
    <rule ref="rulesets/java/design.xml/AccessorClassGeneration" />
    <rule ref="rulesets/java/design.xml/AssignmentToNonFinalStatic" />
    <rule ref="rulesets/java/design.xml/AvoidConstantsInterface" />
    <rule ref="rulesets/java/design.xml/AvoidDeeplyNestedIfStmts" />
    <rule ref="rulesets/java/design.xml/AvoidInstanceofChecksInCatchClause" />
    <rule ref="rulesets/java/design.xml/AvoidProtectedFieldInFinalClass" />
    <rule ref="rulesets/java/design.xml/AvoidReassigningParameters" />
    <rule ref="rulesets/java/design.xml/BadComparison" />
    <rule ref="rulesets/java/design.xml/ClassWithOnlyPrivateConstructorsShouldBeFinal" />
    <rule ref="rulesets/java/design.xml/CloseResource" />
    <rule ref="rulesets/java/design.xml/CompareObjectsWithEquals" />
    <rule ref="rulesets/java/design.xml/ConstructorCallsOverridableMethod" />
    <rule ref="rulesets/java/design.xml/DefaultLabelNotLastInSwitchStmt" />
    <rule ref="rulesets/java/design.xml/EqualsNull" />
    <rule ref="rulesets/java/design.xml/FinalFieldCouldBeStatic" />
    <rule ref="rulesets/java/design.xml/IdempotentOperations" />
    <rule ref="rulesets/java/design.xml/ImmutableField" />
    <rule ref="rulesets/java/design.xml/InstantiationToGetClass" />
    <rule ref="rulesets/java/design.xml/MissingBreakInSwitch" />
    <rule ref="rulesets/java/design.xml/MissingStaticMethodInNonInstantiatableClass" />
    <rule ref="rulesets/java/design.xml/NonCaseLabelInSwitchStatement" />
    <rule ref="rulesets/java/design.xml/NonStaticInitializer" />
    <rule ref="rulesets/java/design.xml/NonThreadSafeSingleton" />
    <rule ref="rulesets/java/design.xml/OptimizableToArrayCall" />
    <rule ref="rulesets/java/design.xml/PositionLiteralsFirstInComparisons" />
    <rule ref="rulesets/java/design.xml/PreserveStackTrace" />
    <rule ref="rulesets/java/design.xml/ReturnEmptyArrayRatherThanNull" />
    <rule ref="rulesets/java/design.xml/SimpleDateFormatNeedsLocale" />
    <rule ref="rulesets/java/design.xml/SimplifyBooleanExpressions" />
    <rule ref="rulesets/java/design.xml/SimplifyBooleanReturns" />
    <rule ref="rulesets/java/design.xml/SimplifyConditional" />
    <rule ref="rulesets/java/design.xml/SingularField" />
    <rule ref="rulesets/java/design.xml/SwitchDensity" />
    <rule ref="rulesets/java/design.xml/TooFewBranchesForASwitchStatement">
        <properties>
            <property name="minimumNumberCaseForASwitch" value="2" />
        </properties>
    </rule>
    <rule ref="rulesets/java/design.xml/UncommentedEmptyConstructor" />
    <rule ref="rulesets/java/design.xml/UncommentedEmptyMethod" />
    <rule ref="rulesets/java/design.xml/UnnecessaryLocalBeforeReturn" />
    <rule ref="rulesets/java/design.xml/UnsynchronizedStaticDateFormatter" />
    <rule ref="rulesets/java/design.xml/UseCollectionIsEmpty" />
    <rule ref="rulesets/java/design.xml/UseLocaleWithCaseConversions" />
    <rule ref="rulesets/java/finalizers.xml/AvoidCallingFinalize" />
    <rule ref="rulesets/java/finalizers.xml/EmptyFinalizer" />
    <rule ref="rulesets/java/finalizers.xml/FinalizeDoesNotCallSuperFinalize" />
    <rule ref="rulesets/java/finalizers.xml/FinalizeOnlyCallsSuperFinalize" />
    <rule ref="rulesets/java/finalizers.xml/FinalizeOverloaded" />
    <rule ref="rulesets/java/finalizers.xml/FinalizeShouldBeProtected" />
    <rule ref="rulesets/java/imports.xml/DontImportJavaLang" />
    <rule ref="rulesets/java/imports.xml/DuplicateImports" />
    <rule ref="rulesets/java/imports.xml/ImportFromSamePackage" />
    <rule ref="rulesets/java/imports.xml/TooManyStaticImports" />
    <rule ref="rulesets/java/j2ee.xml/DoNotCallSystemExit" />
    <rule ref="rulesets/java/j2ee.xml/LocalHomeNamingConvention" />
    <rule ref="rulesets/java/j2ee.xml/LocalInterfaceSessionNamingConvention" />
    <rule ref="rulesets/java/j2ee.xml/MDBAndSessionBeanNamingConvention" />
    <rule ref="rulesets/java/j2ee.xml/RemoteInterfaceNamingConvention" />
    <rule ref="rulesets/java/j2ee.xml/RemoteSessionInterfaceNamingConvention" />
    <rule ref="rulesets/java/j2ee.xml/StaticEJBFieldShouldBeFinal" />
    <rule ref="rulesets/java/j2ee.xml/UseProperClassLoader" />
    <rule ref="rulesets/java/logging-jakarta-commons.xml/ProperLogger" />
    <rule ref="rulesets/java/logging-jakarta-commons.xml/UseCorrectExceptionLogging" />
    <rule ref="rulesets/java/logging-java.xml/AvoidPrintStackTrace" />
    <rule ref="rulesets/java/logging-java.xml/LoggerIsNotStaticFinal" />
    <rule ref="rulesets/java/logging-java.xml/MoreThanOneLogger" />
    <rule ref="rulesets/java/logging-java.xml/SystemPrintln" />
    <rule ref="rulesets/java/javabeans.xml/MissingSerialVersionUID" />
    <rule ref="rulesets/java/junit.xml/JUnitAssertionsShouldIncludeMessage" />
    <rule ref="rulesets/java/junit.xml/JUnitSpelling" />
    <rule ref="rulesets/java/junit.xml/JUnitStaticSuite" />
    <rule ref="rulesets/java/junit.xml/SimplifyBooleanAssertion" />
    <rule ref="rulesets/java/junit.xml/TestClassWithoutTestCases" />
    <rule ref="rulesets/java/junit.xml/UnnecessaryBooleanAssertion" />
    <rule ref="rulesets/java/junit.xml/UseAssertEqualsInsteadOfAssertTrue" />
    <rule ref="rulesets/java/junit.xml/UseAssertNullInsteadOfAssertTrue" />
    <rule ref="rulesets/java/junit.xml/UseAssertSameInsteadOfAssertTrue" />
    <rule ref="rulesets/java/migrating.xml/AvoidAssertAsIdentifier" />
    <rule ref="rulesets/java/migrating.xml/AvoidEnumAsIdentifier" />
    <rule ref="rulesets/java/migrating.xml/ByteInstantiation" />
    <rule ref="rulesets/java/migrating.xml/IntegerInstantiation" />
    <rule ref="rulesets/java/migrating.xml/JUnit4SuitesShouldUseSuiteAnnotation" />
    <rule ref="rulesets/java/migrating.xml/JUnit4TestShouldUseAfterAnnotation" />
    <rule ref="rulesets/java/migrating.xml/JUnit4TestShouldUseBeforeAnnotation" />
    <rule ref="rulesets/java/migrating.xml/JUnit4TestShouldUseTestAnnotation" />
    <rule ref="rulesets/java/migrating.xml/JUnitUseExpected" />
    <rule ref="rulesets/java/migrating.xml/LongInstantiation" />
    <rule ref="rulesets/java/migrating.xml/ReplaceEnumerationWithIterator" />
    <rule ref="rulesets/java/migrating.xml/ReplaceHashtableWithMap" />
    <rule ref="rulesets/java/migrating.xml/ReplaceVectorWithList" />
    <rule ref="rulesets/java/migrating.xml/ShortInstantiation" />
    <rule ref="rulesets/java/naming.xml/AvoidDollarSigns" />
    <rule ref="rulesets/java/naming.xml/AvoidFieldNameMatchingMethodName" />
    <rule ref="rulesets/java/naming.xml/AvoidFieldNameMatchingTypeName" />
    <rule ref="rulesets/java/naming.xml/BooleanGetMethodName" />
    <rule ref="rulesets/java/naming.xml/ClassNamingConventions" />
    <rule ref="rulesets/java/naming.xml/LongVariable">
        <properties>
            <property name="minimum" value="35" />
        </properties>
    </rule>
    <rule ref="rulesets/java/naming.xml/MethodNamingConventions" />
    <rule ref="rulesets/java/naming.xml/MethodWithSameNameAsEnclosingClass" />
    <rule ref="rulesets/java/naming.xml/MisleadingVariableName" />
    <rule ref="rulesets/java/naming.xml/NoPackage" />
    <rule ref="rulesets/java/naming.xml/PackageCase" />
    <rule ref="rulesets/java/naming.xml/ShortMethodName" />
    <rule ref="rulesets/java/naming.xml/SuspiciousConstantFieldName" />
    <rule ref="rulesets/java/naming.xml/SuspiciousEqualsMethodName" />
    <rule ref="rulesets/java/naming.xml/SuspiciousHashcodeMethodName" />
    <rule ref="rulesets/java/naming.xml/VariableNamingConventions" />
    <rule ref="rulesets/java/optimizations.xml/AddEmptyString" />
    <rule ref="rulesets/java/optimizations.xml/AvoidArrayLoops" />
    <rule ref="rulesets/java/optimizations.xml/SimplifyStartsWith" />
    <rule ref="rulesets/java/optimizations.xml/UnnecessaryWrapperObjectCreation" />
    <rule ref="rulesets/java/optimizations.xml/UseArrayListInsteadOfVector" />
    <rule ref="rulesets/java/optimizations.xml/UseArraysAsList" />
    <rule ref="rulesets/java/optimizations.xml/UseStringBufferForStringAppends" />
    <rule ref="rulesets/java/sunsecure.xml/MethodReturnsInternalArray" />
    <rule ref="rulesets/java/strictexception.xml/AvoidCatchingNPE" />
    <rule ref="rulesets/java/strictexception.xml/AvoidCatchingThrowable" />
    <rule ref="rulesets/java/strictexception.xml/AvoidRethrowingException" />
    <rule ref="rulesets/java/strictexception.xml/AvoidThrowingNewInstanceOfSameException" />
    <rule ref="rulesets/java/strictexception.xml/AvoidThrowingNullPointerException" />
    <rule ref="rulesets/java/strictexception.xml/AvoidThrowingRawExceptionTypes" />
    <rule ref="rulesets/java/strictexception.xml/DoNotExtendJavaLangError" />
    <rule ref="rulesets/java/strictexception.xml/DoNotThrowExceptionInFinally" />
    <rule ref="rulesets/java/strictexception.xml/ExceptionAsFlowControl" />
    <rule ref="rulesets/java/strings.xml/AppendCharacterWithChar" />
    <rule ref="rulesets/java/strings.xml/AvoidDuplicateLiterals" />
    <rule ref="rulesets/java/strings.xml/AvoidStringBufferField" />
    <rule ref="rulesets/java/strings.xml/ConsecutiveLiteralAppends" />
    <rule ref="rulesets/java/strings.xml/InefficientEmptyStringCheck" />
    <rule ref="rulesets/java/strings.xml/InefficientStringBuffering" />
    <rule ref="rulesets/java/strings.xml/InsufficientStringBufferDeclaration" />
    <rule ref="rulesets/java/strings.xml/StringBufferInstantiationWithChar" />
    <rule ref="rulesets/java/strings.xml/StringInstantiation" />
    <rule ref="rulesets/java/strings.xml/StringToString" />
    <rule ref="rulesets/java/strings.xml/UnnecessaryCaseChange" />
    <rule ref="rulesets/java/strings.xml/UseEqualsToCompareStrings" />
    <rule ref="rulesets/java/strings.xml/UseIndexOfChar" />
    <rule ref="rulesets/java/strings.xml/UselessStringValueOf" />
    <rule ref="rulesets/java/strings.xml/UseStringBufferLength" />
    <rule ref="rulesets/java/typeresolution.xml/CloneMethodMustImplementCloneable" />
    <rule ref="rulesets/java/typeresolution.xml/LooseCoupling" />
    <rule ref="rulesets/java/typeresolution.xml/SignatureDeclareThrowsException" />
    <rule ref="rulesets/java/unusedcode.xml/UnusedFormalParameter" />
    <rule ref="rulesets/java/unusedcode.xml/UnusedLocalVariable" />
    <rule ref="rulesets/java/unusedcode.xml/UnusedPrivateField" />
    <rule ref="rulesets/java/unusedcode.xml/UnusedPrivateMethod" />
</ruleset>
