refactor: split god classes, fix OCP/ISP/SRP, migrate commands to BaseCommand hierarchy

This commit is contained in:
loki5512344 2026-07-05 13:22:48 +02:00
parent 793924c9ba
commit 90c3cac5cf
244 changed files with 1677 additions and 1570 deletions

View file

@ -3,81 +3,59 @@
"-//Checkstyle//DTD Checkstyle Configuration 1.3//EN"
"https://checkstyle.org/dtds/configuration_1_3.dtd">
<!--
Google Java Style configuration for LoChat.
Based on Google Java Style Guide:
https://google.github.io/styleguide/javaguide.html
-->
<module name="Checker">
<property name="charset" value="UTF-8"/>
<property name="severity" value="warning"/>
<property name="fileExtensions" value="java"/>
<!-- File length: max 600 lines -->
<module name="FileLength">
<property name="max" value="600"/>
</module>
<!-- Line length: max 100 characters (Google style) -->
<module name="LineLength">
<property name="max" value="100"/>
<property name="max" value="120"/>
<property name="ignorePattern"
value="^package.*|^import.*|a href|href|http://|https://|ftp://"/>
</module>
<!-- No tabs allowed (Google style: spaces only) -->
<module name="FileTabCharacter"/>
<module name="TreeWalker">
<!-- ========== Google Style: Indentation ========== -->
<!-- Basic offset: 2, continuation indent: 4 (Google style) -->
<module name="Indentation">
<property name="basicOffset" value="2"/>
<property name="braceAdjustment" value="0"/>
<property name="caseIndent" value="2"/>
<property name="throwsIndent" value="4"/>
<property name="arrayInitIndent" value="2"/>
<property name="lineWrappingIndentation" value="4"/>
<property name="forceStrictCondition" value="false"/>
<property name="basicOffset" value="4"/>
<property name="caseIndent" value="4"/>
</module>
<!-- ========== Google Style: Braces ========== -->
<!-- Braces required for if/for/while/do (Google style) -->
<module name="NeedBraces"/>
<!-- Left brace at end of line (Google style) -->
<module name="LeftCurly">
<property name="option" value="eol"/>
</module>
<!-- Right brace alone on line (Google style) -->
<module name="RightCurly">
<property name="option" value="alone"/>
<module name="MethodLength">
<property name="max" value="80"/>
<property name="countEmpty" value="false"/>
</module>
<!-- ========== Google Style: Whitespace ========== -->
<module name="WhitespaceAround">
<property name="allowEmptyConstructors" value="true"/>
<property name="allowEmptyMethods" value="true"/>
<property name="allowEmptyTypes" value="true"/>
<property name="allowEmptyLoops" value="true"/>
<property name="allowEmptyLambdas" value="true"/>
<property name="allowEmptyCatches" value="true"/>
<module name="CyclomaticComplexity">
<property name="max" value="20"/>
</module>
<module name="ParameterNumber">
<property name="max" value="7"/>
</module>
<module name="NestedIfDepth">
<property name="max" value="3"/>
</module>
<module name="NestedTryDepth">
<property name="max" value="2"/>
</module>
<module name="AvoidStarImport"/>
<module name="UnusedImports"/>
<module name="RedundantImport"/>
<module name="ImportOrder">
<property name="groups" value="com,net,org,java,javax"/>
<property name="ordered" value="true"/>
<property name="separated" value="true"/>
<property name="option" value="top"/>
</module>
<module name="WhitespaceAfter"/>
<module name="NoWhitespaceBefore">
<property name="tokens" value="COMMA, SEMI, POST_INC, POST_DEC, DOT, METHOD_REF"/>
</module>
<module name="NoWhitespaceAfter">
<property name="tokens"
value="BNOT, DEC, DOT, INC, LNOT, UNARY_MINUS, UNARY_PLUS, ARRAY_DECLARATOR"/>
</module>
<module name="GenericWhitespace"/>
<module name="MethodParamPad"/>
<module name="ParenPad"/>
<module name="TypecastParenPad"/>
<module name="NoLineWrap"/>
<!-- ========== Google Style: Naming ========== -->
<module name="PackageName">
<property name="format" value="^[a-z]+(\.[a-z][a-z0-9]*)*$"/>
</module>
@ -87,38 +65,19 @@
<module name="ParameterName"/>
<module name="LocalVariableName"/>
<module name="ConstantName"/>
<module name="CatchParameterName"/>
<module name="ClassTypeParameterName"/>
<module name="MethodTypeParameterName"/>
<module name="InterfaceTypeParameterName"/>
<module name="LambdaParameterName"/>
<module name="PatternVariableName"/>
<module name="RecordComponentName"/>
<module name="LocalFinalVariableName"/>
<module name="StaticVariableName"/>
<module name="AbbreviationAsWordInName">
<property name="allowedAbbreviationLength" value="0"/>
<property name="ignoreFinal" value="false"/>
<property name="allowedAbbreviations" value="IO, URL, HTML, XML, JSON, SQL, API, PM, RP, GUI, ID"/>
</module>
<!-- ========== Google Style: Imports ========== -->
<module name="AvoidStarImport"/>
<module name="UnusedImports"/>
<module name="RedundantImport"/>
<module name="ImportOrder">
<property name="groups" value="com,net,org,java,javax"/>
<property name="ordered" value="true"/>
<property name="separated" value="true"/>
<property name="option" value="top"/>
<property name="sortStaticImportsAlphabetically" value="true"/>
</module>
<module name="NeedBraces"/>
<module name="LeftCurly"/>
<module name="RightCurly"/>
<module name="WhitespaceAround">
<property name="allowEmptyConstructors" value="true"/>
<property name="allowEmptyMethods" value="true"/>
</module>
<module name="WhitespaceAfter"/>
<module name="NoWhitespaceBefore"/>
<!-- ========== Google Style: Modifiers ========== -->
<module name="ModifierOrder"/>
<module name="RedundantModifier"/>
<!-- ========== Code Quality ========== -->
<module name="EmptyStatement"/>
<module name="EqualsHashCode"/>
<module name="SimplifyBooleanExpression"/>
@ -136,52 +95,10 @@
<module name="EmptyCatchBlock">
<property name="exceptionVariableName" value="expected|ignore"/>
</module>
<module name="MissingSwitchDefault"/>
<module name="UpperEll"/>
<module name="ArrayTypeStyle"/>
<module name="CommentsIndentation"/>
<module name="UnnecessaryParentheses"/>
<!-- ========== Metrics ========== -->
<module name="MethodLength">
<property name="max" value="60"/>
<property name="countEmpty" value="false"/>
</module>
<module name="CyclomaticComplexity">
<property name="max" value="15"/>
</module>
<module name="ParameterNumber">
<property name="max" value="7"/>
</module>
<module name="NestedIfDepth">
<property name="max" value="3"/>
</module>
<module name="NestedTryDepth">
<property name="max" value="2"/>
</module>
<!-- ========== Google Style: Javadoc ========== -->
<module name="JavadocMethod">
<property name="accessModifiers" value="public, protected"/>
<property name="allowMissingParamTags" value="false"/>
<property name="allowMissingReturnTag" value="false"/>
<property name="allowedAnnotations" value="Override, Test"/>
<property name="tokens" value="METHOD_DEF, CTOR_DEF, ANNOTATION_FIELD_DEF"/>
</module>
<module name="MissingJavadocMethod">
<property name="scope" value="public"/>
<property name="minLineCount" value="2"/>
<property name="allowedAnnotations" value="Override, Test"/>
<property name="tokens" value="METHOD_DEF, CTOR_DEF"/>
</module>
<module name="MissingJavadocType">
<property name="scope" value="public"/>
</module>
<module name="JavadocType">
<property name="scope" value="public"/>
</module>
<module name="JavadocStyle"/>
<module name="NonEmptyAtclause"/>
<module name="MissingSwitchDefault"/>
</module>
</module>