<?xml version="1.0" encoding="UTF-8"?>
<ruleset name="Ruleset"
         xmlns="http://pmd.sf.net/ruleset/1.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://pmd.sf.net/ruleset/1.0.0 http://pmd.sf.net/ruleset_xml_schema.xsd"
         xsi:noNamespaceSchemaLocation="http://pmd.sf.net/ruleset_xml_schema.xsd">
    <description>Ruleset</description>
    <rule ref="rulesets/controversial.xml" />
    <rule ref="rulesets/unusedcode.xml" />

    <rule ref="rulesets/design.xml">
        <exclude name="CouplingBetweenObjects" />
    </rule>
    <rule ref="rulesets/cleancode.xml">
        <exclude name="StaticAccess" />
    </rule>
    <rule ref="rulesets/codesize.xml">
        <exclude name="TooManyPublicMethods" />
        <exclude name="TooManyFields" />
    </rule>
    <rule ref="rulesets/naming.xml">
        <exclude name="ShortVariable" />
    </rule>

    <rule ref="rulesets/naming.xml/ShortVariable">
        <properties>
            <property name="minimum" value="2" />
        </properties>
    </rule>
    <rule ref="rulesets/codesize.xml/TooManyPublicMethods">
        <properties>
            <property name="maxmethods" value="20" />
        </properties>
    </rule>
    <rule ref="rulesets/codesize.xml/TooManyFields">
        <properties>
            <property name="maxfields" value="30" />
        </properties>
    </rule>
    <rule ref="rulesets/design.xml/CouplingBetweenObjects">
        <properties>
            <property name="maximum" value="15" />
        </properties>
    </rule>

    <exclude-pattern>tests/*</exclude-pattern>
    <exclude-pattern>src/Component/Serializer/Generator/*</exclude-pattern>
    <exclude-pattern>src/Component/Serializer/Parser/*</exclude-pattern>
</ruleset>