<?xml version="1.0" encoding="UTF-8"?>
<ruleset name="Java Code Quality Ruleset"
         xmlns="http://pmd.sourceforge.net/ruleset/2.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://pmd.sourceforge.net/ruleset/2.0.0 https://pmd.sourceforge.io/ruleset_2_0_0.xsd">

    <description>
        PMD code quality ruleset for Astron Agent project, based on best practices and quality standards
    </description>

    <!-- Cyclomatic complexity limit -->
    <rule ref="category/java/design.xml/CyclomaticComplexity">
        <properties>
            <property name="methodReportLevel" value="23"/>
            <property name="classReportLevel" value="600"/>
        </properties>
    </rule>

    <!-- PMD 7 compatible: Method length using NCSS statistics instead -->
    <rule ref="category/java/design.xml/NcssCount">
        <properties>
            <property name="methodReportLevel" value="80"/>
            <property name="classReportLevel" value="2000"/>
        </properties>
    </rule>

    <!-- PMD 7 compatible: Excessive parameter list check -->
    <rule ref="category/java/design.xml/ExcessiveParameterList">
        <properties>
            <property name="minimum" value="10"/>
        </properties>
    </rule>
</ruleset>
