Checkstyle
Für die Programmierfächer aus Semester 1 und 2 wurde Checkstyle eingeführt. Bei der Aufgabenerstellung muss der Haken bei "statische Codeanalyse" gesetzt werden. Späteres Hinzufügen von Checkstyle ist umständlich (Export in einen anderen Kurs,
<?xml version="1.0"?>
<!DOCTYPE module PUBLIC "-CheckstyleDTD Checkstyle Configuration 1.3EN" "https://checkstyle.org/dtds/configuration_1_3.dtd">
<module name="Checker">
<! artemis conifg >
<property name="severity" value="warning" />
<property name="fileExtensions" value="java" />
<! See https://checkstyle.org/filefilters/beforeexecutionexclusionfilefilter.html >
<module name="BeforeExecutionExclusionFileFilter">
<! Filtert alle Dateien, die nicht SortedArray heißen >
<property name="fileNamePattern" value="^(?!.*([
/])?(SortedArray)\.java$).*" />
</module>
<! gdp checks>
<module name="TreeWalker">
<property name="tabWidth" value="4" />
<module name="JavadocMethod">
<property name="accessModifiers" value="public" />
</module>
<module name="JavadocStyle">
<property name="scope" value="public" />
<property name="checkFirstSentence" value="false" />
</module>
<module name="LocalFinalVariableName" />
<module name="LocalVariableName" />
<module name="MemberName" />
<module name="MethodName" />
<module name="PackageName">
</module>
<module name="ParameterName" />
<module name="StaticVariableName" />
<module name="TypeName">
</module>
<module name="AvoidStarImport">
</module>
<module name="IllegalImport" />
<module name="RedundantImport" />
<module name="UnusedImports" />
<module name="MethodLength">
<property name="max" value="75" />
</module>
<module name="ParameterNumber">
</module>
<module name="EmptyForIteratorPad">
</module>
<module name="MethodParamPad">
</module>
<module name="NoWhitespaceAfter">
<property name="tokens" value="LNOT,DOT,BNOT,DEC,UNARY_MINUS,UNARY_PLUS,INC,ARRAY_INIT" />
<property name="severity" value="info" />
</module>
<module name="NoWhitespaceBefore">
<property name="allowLineBreaks" value="true" />
<property name="tokens" value="SEMI,DOT,POST_DEC,POST_INC" />
<property name="severity" value="info" />
</module>
<module name="OperatorWrap">
</module>
<module name="ParenPad">
</module>
<module name="TypecastParenPad">
</module>
<module name="WhitespaceAfter">
<property name="tokens" value="COMMA" />
<property name="severity" value="info" />
</module>
<module name="WhitespaceAround">
<property name="severity" value="info" />
</module>
<module name="AvoidNestedBlocks">
</module>
<module name="EmptyBlock">
</module>
<module name="LeftCurly">
</module>
<module name="NeedBraces">
<property name="severity" value="info" />
</module>
<module name="EmptyStatement">
</module>
<module name="EqualsHashCode">
</module>
<module name="HiddenField">
<property name="ignoreConstructorParameter" value="true" />
<property name="ignoreSetter" value="true" />
</module>
<module name="InnerAssignment">
</module>
<module name="MissingSwitchDefault" />
<module name="SimplifyBooleanExpression">
<message key="simplify.expression" value="Der Ausdruck sollte vereinfacht werden." />
</module>
<module name="SimplifyBooleanReturn">
</module>
<module name="ArrayTypeStyle">
</module>
<module name="TodoComment">
</module>
<module name="UpperEll">
</module>
<module name="ReturnCount">
<property name="max" value="8" />
</module>
<! <module name="MagicNumber">>
<metadata name="net.sf.eclipsecs.core.comment"
value="-9,-8,-7,-6,-5,-4,-3,-2,-1,0,1,2,3,4,5,6,7,8,9"/>
<property name="ignoreNumbers" value="-9,-8,-7,-6,-5,-4,-3,-2,-1,0,1,2,3,4,5,6,7,8,9"/>
<property name="severity" value="info"/>
</module>
<module name="ReturnCount">
<property name="max" value="4" />
<message key="return.count"
value="Möglichst nicht mehr als {1,number,integer} return-Anweisungen." />
</module>
<module name="JavadocType">
<property name="authorFormat" value=".{2,}" />
<message key="type.tagFormat" value="Autor sollte mindestens zwei Buchstaben haben" />
</module>
<module name="JavadocVariable">
<property name="scope" value="public" />
</module>
<module name="ConstantName">
<message key="name.invalidPattern"
value="Nur Großbuchstaben, Zahlen und Unterstriche für Konstanten verwenden." />
</module>
<module name="ModifierOrder">
</module>
<module name="CyclomaticComplexity">
<property name="max" value="20" />
</module>
<module name="NPathComplexity">
<property name="max" value="80" />
</module>
<module name="RightCurly">
</module>
</module>
<module name="LineLength">
<property name="max" value="140" />
<property name="fileExtensions" value="java" />
<property name="ignorePattern"
value="^package.*|^import.*|a href|href|http://|https://|ftp://" />
</module>
<module name="JavadocPackage" />
<module name="FileLength">
<property name="max" value="1000" />
</module>
<module name="FileTabCharacter">
<property name="severity" value="info" />
</module>
<module name="RegexpHeader">
<property name="header" value="^package" />
<message key="header.mismatch" value="Angabe eines Packages fehlt." />
</module>
</module>