All Downloads are FREE. Search and download functionalities are using the official Maven repository.

checkstyle.checkstyle-hubspot.xml Maven / Gradle / Ivy

The newest version!
<?xml version="1.0"?>
<!--
~   Licensed under the Apache License, Version 2.0 (the "License");
~   you may not use this file except in compliance with the License.
~   You may obtain a copy of the License at
~
~   http://www.apache.org/licenses/LICENSE-2.0
~
~   Unless required by applicable law or agreed to in writing, software
~   distributed under the License is distributed on an "AS IS" BASIS,
~   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
~   See the License for the specific language governing permissions and
~   limitations under the License.
-->
<!DOCTYPE module PUBLIC
    "-//Checkstyle//DTD Check Configuration 1.3//EN"
    "https://checkstyle.org/dtds/configuration_1_3.dtd">

<module name="Checker">
  <property name="charset" value="UTF-8"/>
  <property name="fileExtensions" value="java, properties, xml"/>

  <module name="SuppressWarningsFilter" />

  <module name="SuppressionFilter">
    <property name="file"
              default="/checkstyle/basepom-policy-suppressions.xml"
              value="${basepom.checkstyle.suppression-file}"/>
  </module>

  <module name="NewlineAtEndOfFile">
    <property name="id" value="EnforceNewlineAtEndOfFile" />
  </module>

  <module name="FileTabCharacter">
    <property name="id" value="DisallowTabs" />
    <property name="eachLine" value="true"/>
  </module>

  <module name="RegexpSingleline">
    <property name="id" value="DisallowTrailingSpaces" />
    <!-- \s matches whitespace character, $ matches end of line. -->
    <property name="format" value="\s+$"/>
    <property name="message" value="Line has trailing spaces."/>
  </module>

  <!-- printStackTrace is always wrong -->
  <module name="RegexpSingleline">
    <property name="id" value="DisallowPrintStackTrace" />
    <property name="format" value="\.printStackTrace\("/>
    <property name="message" value="Replace printStackTrace with a logger"/>
  </module>

  <module name="TreeWalker">
    <module name="SuppressWarningsHolder" />
    <module name="SuppressWithNearbyCommentFilter">
      <property name="commentFormat" value="SUPPRESS CHECKSTYLE FOR NEXT (\d+) LINES (\w+)"/>
      <property name="influenceFormat" value="$1"/>
    </module>

    <!-- Checks for imports                              -->
    <!-- See http://checkstyle.sf.net/config_import.html -->
    <module name="AvoidStarImport">
      <property name="id" value="DisallowStarImports" />
      <property name="allowStaticMemberImports" value="true" />
    </module>
    <module name="RedundantImport">
      <property name="id" value="DisallowRedundantImports" />
    </module>
    <module name="UnusedImports">
      <property name="id" value="DisallowUnusedImports" />
    </module>

    <!-- Modifier Checks                                    -->
    <!-- See http://checkstyle.sf.net/config_modifiers.html -->
    <module name="ModifierOrder">
      <property name="id" value="EnforceModifierOrder" />
    </module>

    <!-- UnusedModifier in PMD is also only warning -->
    <module name="RedundantModifier">
      <property name="id" value="DisallowRedundantModifiers" />
      <property name="severity" value="warning"/>
    </module>

    <!-- Checks for blocks. You know, those {}'s         -->
    <!-- See http://checkstyle.sf.net/config_blocks.html -->
    <module name="NeedBraces">
      <property name="id" value="EnforceCurlyBraces" />
    </module>

    <!-- Checks that long constants are defined with an uppercase L -->
    <module name="UpperEll">
      <property name="id" value="EnforceUppercaseEllForLongConstants" />
    </module>

    <!-- Checks that the outer type name and the file name match -->
    <module name="OuterTypeFilename">
      <property name="id" value="EnforceClassAndFilenameMatch" />
    </module>

    <!-- Checks that each top-level class has its own file -->
    <module name="OneTopLevelClass">
      <property name="id" value="EnforceOneTopLevelClass" />
    </module>

    <!-- Checks that package definitions and imports don't wrap lines -->
    <module name="NoLineWrap">
      <property name="id" value="EnforcePackageAndImportStatementsDontWrap" />
    </module>

    <!-- Makes sure that whitespace around generics is valid -->
    <module name="GenericWhitespace">
      <property name="id" value="EnforceWhitespaceAroundGenerics" />
    </module>

    <module name="WhitespaceAround">
      <property name="id" value="EnforceWhitespaceAroundStatements" />
      <property name="allowEmptyConstructors" value="true"/>
      <property name="allowEmptyMethods" value="true"/>
      <property name="allowEmptyTypes" value="true"/>
      <property name="allowEmptyLoops" value="true"/>
      <property name="allowEmptyCatches" value="true"/>
      <property name="allowEmptyLambdas" value="true"/>
      <property name="ignoreEnhancedForColon" value="false"/>
    </module>

    <module name="WhitespaceAfter">
      <property name="id" value="EnforceWhitespaceAfterTokens" />
      <property name="tokens" value="COMMA, SEMI, TYPECAST" />
    </module>

    <module name="Indentation">
      <property name="id" value="EnforceIndentation" />
      <property name="basicOffset" value="2"/>
      <property name="caseIndent" value="2"/>
      <property name="throwsIndent" value="2"/>
      <property name="arrayInitIndent" value="2"/>
      <property name="lineWrappingIndentation" value="4"/>
    </module>

    <module name="ImportOrder">
      <property name="id" value="EnforceImportOrder" />
      <property name="option" value="top"/>
      <property name="groups" value="java,javax,org,com"/>
      <property name="ordered" value="true"/>
      <property name="separated" value="true"/>
      <property name="sortStaticImportsAlphabetically" value="true"/>
    </module>

    <!-- Checks that these blocks have some text inside -->
    <module name="EmptyBlock">
      <property name="id" value="DisallowEmptyBlocks" />
      <property name="option" value="TEXT"/>
      <property name="tokens" value="LITERAL_TRY, LITERAL_FINALLY, LITERAL_IF, LITERAL_ELSE, LITERAL_SWITCH"/>
    </module>

    <!-- Make sure that open braces are on the same line -->
    <module name="LeftCurly">
      <property name="id" value="EnforceOpenCurlyOnSameLine" />
    </module>

    <!-- Make sure that close braces are on the same line -->
    <module name="RightCurly">
      <property name="id" value="EnforceCloseCurlyOnSameLine" />
    </module>
    <module name="RightCurly">
      <property name="id" value="EnforceCloseCurlyAlone" />
      <property name="option" value="alone"/>
      <property name="tokens" value="CLASS_DEF, METHOD_DEF, CTOR_DEF, LITERAL_FOR, LITERAL_WHILE, STATIC_INIT, INSTANCE_INIT"/>
    </module>

    <module name="OneStatementPerLine">
      <property name="id" value="EnforceOneStatementPerLine" />
    </module>

    <!-- Checks that each variable is defined on its own line -->
    <module name="MultipleVariableDeclarations">
      <property name="id" value="DisallowMultipleVariableDeclarations" />
    </module>

    <!-- Checks for Java style array declarations instead of C style -->
    <module name="ArrayTypeStyle">
      <property name="id" value="DisallowCStyleArrayDeclarations" />
    </module>

    <!-- Checks state switch conditions don't fall through unless documented -->
    <module name="FallThrough">
      <property name="id" value="DisallowSwitchFallThrough" />
    </module>

    <!-- Checks that there are newlines between various tokens -->
    <module name="EmptyLineSeparator">
      <property name="id" value="EnforceEmptyLineSeparator" />
      <property name="allowNoEmptyLineBetweenFields" value="true"/>
      <property name="tokens" value="PACKAGE_DEF, IMPORT, CLASS_DEF, ENUM_DEF, INTERFACE_DEF, CTOR_DEF, STATIC_INIT, INSTANCE_INIT"/>
    </module>

    <module name="SeparatorWrap">
      <property name="id" value="EnforceDotWrapsOnNextLine" />
      <property name="tokens" value="DOT"/>
      <property name="option" value="nl"/>
    </module>
    <module name="SeparatorWrap">
      <property name="id" value="EnforceCommaWrapsOnSameLine" />
      <property name="tokens" value="COMMA"/>
      <property name="option" value="EOL"/>
    </module>

    <!-- Checks that finalizers are not declared -->
    <module name="NoFinalizer">
      <property name="id" value="DisallowFinalizer" />
    </module>

    <!-- Checks that there is no space between the method name and open parenthesis for parameter list -->
    <module name="MethodParamPad">
      <property name="id" value="DisallowSpaceBeforeMethodParameters" />
    </module>

    <!-- Checks that annotations are on their own line -->
    <module name="AnnotationLocation">
      <property name="id" value="EnforceAnnotationsOnTheirOwnLine" />
      <property name="tokens" value="CLASS_DEF, INTERFACE_DEF, ENUM_DEF, METHOD_DEF, CTOR_DEF"/>
    </module>
    <module name="AnnotationLocation">
      <property name="id" value="EnforceParameterizedVariableAnnotationsOnTheirOwnLine" />
      <property name="tokens" value="VARIABLE_DEF"/>
      <property name="allowSamelineMultipleAnnotations" value="true"/>
    </module>

    <!-- Checks that catch blocks are not empty -->
    <module name="EmptyCatchBlock">
      <property name="id" value="DisallowEmptyCatchBlock" />
      <property name="exceptionVariableName" value="expected|ignored"/>
    </module>

    <!-- Checks that hashCode is overridden when equals is -->
    <module name="EqualsHashCode">
      <property name="id" value="EnforceHashCodeOverridden" />
    </module>

    <!-- Check that every class has a package and that the package matches the directory structure -->
    <module name="PackageDeclaration">
      <property name="id" value="EnforcePackageDeclaration" />
      <property name="matchDirectoryStructure" value="true" />
    </module>

    <!-- Checks that everything is named appropriately -->
    <module name="PackageName">
      <property name="id" value="EnforcePackageNaming" />
      <property name="format" value="^[a-z][a-zA-Z0-9_]*(\.[a-zA-Z_][a-zA-Z0-9_]*)*$"/>
    </module>
    <module name="TypeName">
      <property name="id" value="EnforceClassNaming" />
    </module>
    <module name="ClassTypeParameterName">
      <property name="id" value="EnforceGenericClassTypeParameterNaming" />
      <property name="format" value="^[A-Z][A-Z0-9_]*$"/>
    </module>
    <module name="InterfaceTypeParameterName">
      <property name="id" value="EnforceGenericInterfaceTypeParameterNaming" />
      <property name="format" value="^[A-Z][A-Z0-9_]*$"/>
    </module>
    <!-- Suppressed for test methods -->
    <module name="MethodName">
      <property name="id" value="EnforceMethodNaming" />
    </module>
    <!-- Suppressed for non-test methods -->
    <module name="MethodName">
      <property name="id" value="EnforceTestMethodNaming" />
      <property name="format" value="^[a-z][a-zA-Z0-9_]*$" />
    </module>
    <module name="MethodTypeParameterName">
      <property name="id" value="EnforceGenericMethodTypeParameterNaming" />
      <property name="format" value="^[A-Z][A-Z0-9_]*$"/>
    </module>
    <module name="ConstantName">
      <property name="id" value="EnforceStaticFinalFieldNaming" />
    </module>
    <module name="StaticVariableName">
      <property name="id" value="EnforceStaticFieldNaming" />
    </module>
    <module name="MemberName">
      <property name="id" value="EnforceFieldNaming" />
    </module>
    <module name="ParameterName">
      <property name="id" value="EnforceMethodParameterNaming" />
    </module>
    <module name="LocalVariableName">
      <property name="id" value="EnforceLocalVariableNaming" />
    </module>
    <module name="LocalFinalVariableName">
      <property name="id" value="EnforceLocalFinalVariableNaming" />
    </module>

    <!-- Checks that @author javadoc tag does not exist. -->
    <module name="WriteTag">
      <property name="id" value="DisallowAuthorTag" />
      <property name="tag" value="@author" />
      <property name="tagFormat" value="\S" />
      <property name="severity" value="ignore" />
      <property name="tagSeverity" value="error" />
      <message key="javadoc.writeTag" value="{0} tag is not allowed" />
    </module>

    <module name="IllegalImport">
      <property name="illegalPkgs" value="com.github.rholder.guava.shaded, edu.emory.mathcs.backport, javafx.util"/>
    </module>
  </module>
</module>




© 2015 - 2025 Weber Informatics LLC | Privacy Policy