<?xml version="1.0"?>
<!--
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements.  See the NOTICE file
distributed with this work for additional information
regarding copyright ownership.  The ASF licenses this file
to you 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
	"-//Puppy Crawl//DTD Check Configuration 1.3//EN"
	"http://www.puppycrawl.com/dtds/configuration_1_3.dtd">

<!--
This is a checkstyle configuration file. For descriptions of
what the following rules do, please see the checkstyle configuration
page at http://checkstyle.sourceforge.net/config.html.

This file is based on the checkstyle file of Apache Beam.
-->

<module name="Checker">

	<module name="NewlineAtEndOfFile">
		<!-- windows can use \r\n vs \n, so enforce the most used one ie UNIx style -->
		<property name="lineSeparator" value="lf"/>
	</module>

	<module name="RegexpSingleline">
		<!-- Checks that TODOs don't have stuff in parenthesis, e.g., username. -->
		<property name="format" value="((//.*)|(\*.*))TODO\("/>
		<property name="message" value="TODO comments must not include usernames."/>
		<property name="severity" value="error"/>
	</module>

	<module name="RegexpSingleline">
		<property name="format" value="\s+$"/>
		<property name="message" value="Trailing whitespace"/>
		<property name="severity" value="error"/>
	</module>

	<module name="RegexpSingleline">
		<property name="format" value="Throwables.propagate\("/>
		<property name="message" value="Throwables.propagate is deprecated"/>
		<property name="severity" value="error"/>
	</module>

	<!-- Prevent *Tests.java as tools may not pick them up -->
	<!--<module name="RegexpOnFilename">-->
	<!--<property name="fileNamePattern" value=".*Tests\.java$" />-->
	<!--</module>-->

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

	<!-- Check that every module has a package-info.java -->
	<!--<module name="JavadocPackage"/>-->

	<!--

	FLINK CUSTOM CHECKS

	-->

	<module name="FileLength">
		<property name="max" value="3000"/>
	</module>

	<!-- All Java AST specific tests live under TreeWalker module. -->
	<module name="TreeWalker">

		<!-- Allow use of comment to suppress javadocstyle -->
		<module name="SuppressionCommentFilter">
			<property name="offCommentFormat" value="CHECKSTYLE.OFF\: ([\w\|]+)"/>
			<property name="onCommentFormat" value="CHECKSTYLE.ON\: ([\w\|]+)"/>
			<property name="checkFormat" value="$1"/>
		</module>

		<!--

		FLINK CUSTOM CHECKS

		-->

		<!-- Prohibit T.getT() methods for standard boxed types -->
		<module name="Regexp">
			<property name="format" value="Boolean\.getBoolean"/>
			<property name="illegalPattern" value="true"/>
			<property name="message" value="Use System.getProperties() to get system properties."/>
		</module>

		<module name="Regexp">
			<property name="format" value="Integer\.getInteger"/>
			<property name="illegalPattern" value="true"/>
			<property name="message" value="Use System.getProperties() to get system properties."/>
		</module>

		<module name="Regexp">
			<property name="format" value="Long\.getLong"/>
			<property name="illegalPattern" value="true"/>
			<property name="message" value="Use System.getProperties() to get system properties."/>
		</module>

		<!--

		IllegalImport cannot blacklist classes so we have to fall back to Regexp.

		-->

		<!-- forbid use of org.jetbrains.annotations.Nullable validate -->
		<module name="Regexp">
			<property name="format" value="org\.jetbrains\.annotations\.Nullable"/>
			<property name="illegalPattern" value="true"/>
			<property name="message"
					  value="Use javax.annotation.Nullable instead of org.jetbrains.annotations.Nullable."/>
		</module>
		<!-- forbid use of commons lang validate -->
		<module name="Regexp">
			<property name="format" value="org\.apache\.commons\.lang3\.Validate"/>
			<property name="illegalPattern" value="true"/>
			<property name="message"
					  value="Use Guava Checks instead of Commons Validate. Please refer to the coding guidelines."/>
		</module>
		<!-- forbid the use of google.common.base.Preconditions -->
		<module name="Regexp">
			<property name="format" value="import com\.google\.common\.base\.Preconditions"/>
			<property name="illegalPattern" value="true"/>
			<property name="message"
					  value="Use Flink's Preconditions instead of Guava's Preconditions"/>
		</module>
		<module name="Regexp">
			<property name="format" value="org\.apache\.hadoop\.shaded"/>
			<property name="illegalPattern" value="true"/>
			<property name="message"
				value="Use Paimon's shade instead of hadoop's shade"/>
		</module>
		<!-- forbid the use of com.google.common.annotations.VisibleForTesting -->
		<module name="Regexp">
			<property name="format"
					  value="import com\.google\.common\.annotations\.VisibleForTesting"/>
			<property name="illegalPattern" value="true"/>
			<property name="message"
					  value="Use Flink's VisibleForTesting instead of Guava's VisibleForTesting"/>
		</module>
		<module name="Regexp">
			<property name="format" value="import static com\.google\.common\.base\.Preconditions"/>
			<property name="illegalPattern" value="true"/>
			<property name="message"
					  value="Use Flink's Preconditions instead of Guava's Preconditions"/>
		</module>
		<!-- forbid the use of org.apache.commons.lang.SerializationUtils -->
		<module name="Regexp">
			<property name="format" value="org\.apache\.commons\.lang\.SerializationUtils"/>
			<property name="illegalPattern" value="true"/>
			<property name="message"
					  value="Use Flink's InstantiationUtil instead of common's SerializationUtils"/>
		</module>
		<module name="Regexp">
			<property name="format" value="org\.apache\.commons\.lang3\.SerializationUtils"/>
			<property name="illegalPattern" value="true"/>
			<property name="message"
					  value="Use Flink's InstantiationUtil instead of common's SerializationUtils"/>
		</module>
		<module name="Regexp">
			<property name="format" value="org\.apache\.commons\.lang\."/>
			<property name="illegalPattern" value="true"/>
			<property name="message" value="Use commons-lang3 instead of commons-lang."/>
		</module>
		<module name="Regexp">
			<property name="format" value="org\.codehaus\.jettison"/>
			<property name="illegalPattern" value="true"/>
			<property name="message" value="Use com.fasterxml.jackson instead of jettison."/>
		</module>
		<!-- forbid the use of flink.shaded.guava31.com.google.common -->
		<module name="Regexp">
			<property name="format" value="import static org\.apache\.flink\.shaded\.guava31\.com\.google\.common\.base\.Preconditions"/>
			<property name="illegalPattern" value="true"/>
			<property name="message"
					  value="Use Paimon's Preconditions instead of Guava's Preconditions"/>
		</module>

		<!-- Enforce Java-style array declarations -->
		<module name="ArrayTypeStyle"/>

		<module name="TodoComment">
			<!-- Checks that disallowed strings are not used in comments.  -->
			<property name="format" value="(FIXME)|(XXX)|(@author)"/>
		</module>

		<!--

		IMPORT CHECKS

		-->

		<module name="RedundantImport">
			<!-- Checks for redundant import statements. -->
			<property name="severity" value="error"/>
			<message key="import.redundancy"
					 value="Redundant import {0}."/>
		</module>

		<module name="ImportOrder">
			<!-- Checks for out of order import statements. -->
			<property name="severity" value="error"/>
			<property name="groups"
					  value="org.apache.paimon,org.apache.paimon.shade,*,javax,java,scala"/>
			<property name="separated" value="true"/>
			<property name="sortStaticImportsAlphabetically" value="true"/>
			<property name="option" value="bottom"/>
			<property name="tokens" value="STATIC_IMPORT, IMPORT"/>
			<message key="import.ordering"
					 value="Import {0} appears after other imports that it should precede"/>
		</module>

		<module name="AvoidStarImport">
			<property name="severity" value="error"/>
		</module>

		<module name="IllegalImport">
			<property name="illegalPkgs"
					  value="autovalue.shaded, avro.shaded, com.google.api.client.repackaged, com.google.appengine.repackaged"/>
		</module>
		<module name="IllegalImport">
			<property name="illegalPkgs" value="org.codehaus.jackson"/>
			<message key="import.illegal" value="{0}; Use paimon-shade-jackson instead."/>
		</module>
		<module name="IllegalImport">
			<property name="illegalPkgs" value="com.fasterxml.jackson"/>
			<message key="import.illegal" value="{0}; Use paimon-shade-jackson instead."/>
		</module>
		<module name="IllegalImport">
			<property name="illegalPkgs" value="com.google.common"/>
			<message key="import.illegal" value="{0}; Use paimon-shade-guava instead."/>
		</module>
		<module name="IllegalImport">
			<property name="illegalPkgs" value="com.github.ben-manes.caffeine"/>
			<message key="import.illegal" value="{0}; Use paimon-shade-caffeine instead."/>
		</module>
		<module name="IllegalImport">
			<property name="illegalPkgs" value="io.netty"/>
			<message key="import.illegal" value="{0}; Use paimon-shade-netty instead."/>
		</module>

		<module name="RedundantModifier">
			<!-- Checks for redundant modifiers on various symbol definitions.
			  See: http://checkstyle.sourceforge.net/config_modifier.html#RedundantModifier

			  We exclude METHOD_DEF to allow final methods in final classes to make them more future-proof.
			-->
			<property name="tokens"
					  value="VARIABLE_DEF, ANNOTATION_FIELD_DEF, INTERFACE_DEF, CLASS_DEF, ENUM_DEF"/>
		</module>

		<!--
			IllegalImport cannot blacklist classes, and c.g.api.client.util is used for some shaded
			code and some useful code. So we need to fall back to Regexp.
		-->
		<!--<module name="RegexpSinglelineJava">-->
		<!--<property name="format" value="com\.google\.api\.client\.util\.(ByteStreams|Charsets|Collections2|Joiner|Lists|Maps|Objects|Preconditions|Sets|Strings|Throwables)"/>-->
		<!--</module>-->

		<!--
			 Require static importing from Preconditions.
		-->
		<module name="RegexpSinglelineJava">
			<property name="format" value="^import com.google.common.base.Preconditions;$"/>
			<property name="message" value="Static import functions from Guava Preconditions"/>
		</module>

		<module name="UnusedImports">
			<property name="severity" value="error"/>
			<property name="processJavadoc" value="true"/>
			<message key="import.unused"
					 value="Unused import: {0}."/>
		</module>

		<!--

		JAVADOC CHECKS

		-->

		<!-- Checks for Javadoc comments.                     -->
		<!-- See http://checkstyle.sf.net/config_javadoc.html -->
		<module name="JavadocMethod">
			<property name="scope" value="protected"/>
			<property name="severity" value="error"/>
			<property name="allowMissingJavadoc" value="true"/>
			<property name="allowMissingParamTags" value="true"/>
			<property name="allowMissingReturnTag" value="true"/>
			<property name="allowMissingThrowsTags" value="true"/>
			<property name="allowThrowsTagsForSubclasses" value="true"/>
			<property name="allowUndeclaredRTE" value="true"/>
			<!-- This check sometimes failed for with "Unable to get class information for @throws tag" for custom exceptions -->
			<property name="suppressLoadErrors" value="true"/>
		</module>

		<!-- Check that paragraph tags are used correctly in Javadoc. -->
		<module name="JavadocParagraph"/>

		<module name="JavadocType">
			<property name="scope" value="protected"/>
			<property name="severity" value="error"/>
			<property name="allowMissingParamTags" value="true"/>
		</module>

		<module name="JavadocStyle">
			<property name="severity" value="error"/>
			<property name="checkHtml" value="true"/>
		</module>

		<!--

		NAMING CHECKS

		-->

		<!-- Item 38 - Adhere to generally accepted naming conventions -->

		<module name="PackageName">
			<!-- Validates identifiers for package names against the
			  supplied expression. -->
			<!-- Here the default checkstyle rule restricts package name parts to
			  seven characters, this is not in line with common practice at Google.
			-->
			<property name="format" value="^[a-z]+(\.[a-z][a-z0-9]{1,})*$"/>
			<property name="severity" value="error"/>
		</module>

		<module name="TypeNameCheck">
			<!-- Validates static, final fields against the
			expression "^[A-Z][a-zA-Z0-9]*$". -->
			<metadata name="altname" value="TypeName"/>
			<property name="severity" value="error"/>
		</module>

		<module name="ConstantNameCheck">
			<!-- Validates non-private, static, final fields against the supplied
			public/package final fields "^[A-Z][A-Z0-9]*(_[A-Z0-9]+)*$". -->
			<metadata name="altname" value="ConstantName"/>
			<property name="applyToPublic" value="true"/>
			<property name="applyToProtected" value="true"/>
			<property name="applyToPackage" value="true"/>
			<property name="applyToPrivate" value="false"/>
			<property name="format" value="^([A-Z][A-Z0-9]*(_[A-Z0-9]+)*|FLAG_.*)$"/>
			<message key="name.invalidPattern"
					 value="Variable ''{0}'' should be in ALL_CAPS (if it is a constant) or be private (otherwise)."/>
			<property name="severity" value="error"/>
		</module>

		<module name="StaticVariableNameCheck">
			<!-- Validates static, non-final fields against the supplied
			expression "^[a-z][a-zA-Z0-9]*_?$". -->
			<metadata name="altname" value="StaticVariableName"/>
			<property name="applyToPublic" value="true"/>
			<property name="applyToProtected" value="true"/>
			<property name="applyToPackage" value="true"/>
			<property name="applyToPrivate" value="true"/>
			<property name="format" value="^[a-z][a-zA-Z0-9]*_?$"/>
			<property name="severity" value="error"/>
		</module>

		<module name="MemberNameCheck">
			<!-- Validates non-static members against the supplied expression. -->
			<metadata name="altname" value="MemberName"/>
			<property name="applyToPublic" value="true"/>
			<property name="applyToProtected" value="true"/>
			<property name="applyToPackage" value="true"/>
			<property name="applyToPrivate" value="true"/>
			<property name="format" value="^[a-z][a-zA-Z0-9]*$"/>
			<property name="severity" value="error"/>
		</module>

		<module name="MethodNameCheck">
			<!-- Validates identifiers for method names. -->
			<metadata name="altname" value="MethodName"/>
			<property name="format" value="^[a-z][a-zA-Z0-9]*(_[a-zA-Z0-9]+)*$"/>
			<property name="severity" value="error"/>
		</module>

		<module name="ParameterName">
			<!-- Validates identifiers for method parameters against the
			  expression "^[a-z][a-zA-Z0-9]*$". -->
			<property name="severity" value="error"/>
		</module>

		<module name="LocalFinalVariableName">
			<!-- Validates identifiers for local final variables against the
			  expression "^[a-z][a-zA-Z0-9]*$". -->
			<property name="severity" value="error"/>
		</module>

		<module name="LocalVariableName">
			<!-- Validates identifiers for local variables against the
			  expression "^[a-z][a-zA-Z0-9]*$". -->
			<property name="severity" value="error"/>
		</module>

		<!-- Type parameters must be either one of the four blessed letters
		T, K, V, W, X or else be capital-case terminated with a T,
		such as MyGenericParameterT -->
		<!--<module name="ClassTypeParameterName">-->
		<!--<property name="format" value="^(((T|K|V|W|X)[0-9]*)|([A-Z][a-z][a-zA-Z]*T))$"/>-->
		<!--<property name="severity" value="error"/>-->
		<!--</module>-->

		<!--<module name="MethodTypeParameterName">-->
		<!--<property name="format" value="^(((T|K|V|W|X)[0-9]*)|([A-Z][a-z][a-zA-Z]*T))$"/>-->
		<!--<property name="severity" value="error"/>-->
		<!--</module>-->

		<!--<module name="InterfaceTypeParameterName">-->
		<!--<property name="format" value="^(((T|K|V|W|X)[0-9]*)|([A-Z][a-z][a-zA-Z]*T))$"/>-->
		<!--<property name="severity" value="error"/>-->
		<!--</module>-->

		<!--

		LENGTH and CODING CHECKS

		-->

		<!--<module name="LineLength">-->
		<!--&lt;!&ndash; Checks if a line is too long. &ndash;&gt;-->
		<!--<property name="max" value="100"/>-->
		<!--<property name="severity" value="error"/>-->

		<!--&lt;!&ndash;-->
		<!--The default ignore pattern exempts the following elements:-->
		<!-- - import statements-->
		<!-- - long URLs inside comments-->
		<!--&ndash;&gt;-->

		<!--<property name="ignorePattern"-->
		<!--value="^(package .*;\s*)|(import .*;\s*)|( *\* .*https?://.*)$"/>-->
		<!--</module>-->

		<!-- Checks for braces around if and else blocks -->
		<module name="NeedBraces">
			<property name="severity" value="error"/>
			<property name="tokens"
					  value="LITERAL_IF, LITERAL_ELSE, LITERAL_FOR, LITERAL_WHILE, LITERAL_DO"/>
		</module>

		<module name="UpperEll">
			<!-- Checks that long constants are defined with an upper ell.-->
			<property name="severity" value="error"/>
		</module>

		<module name="FallThrough">
			<!-- Warn about falling through to the next case statement.  Similar to
			javac -Xlint:fallthrough, but the check is suppressed if a single-line comment
			on the last non-blank line preceding the fallen-into case contains 'fall through' (or
			some other variants that we don't publicized to promote consistency).
			-->
			<property name="reliefPattern"
					  value="fall through|Fall through|fallthru|Fallthru|falls through|Falls through|fallthrough|Fallthrough|No break|NO break|no break|continue on"/>
			<property name="severity" value="error"/>
		</module>

		<!-- Checks for over-complicated boolean expressions. -->
		<module name="SimplifyBooleanExpression"/>

		<!-- Detects empty statements (standalone ";" semicolon). -->
		<module name="EmptyStatement"/>

		<!-- Detect multiple consecutive semicolons (e.g. ";;"). -->
		<module name="RegexpSinglelineJava">
			<property name="format" value=";{2,}"/>
			<property name="message" value="Use one semicolon"/>
			<property name="ignoreComments" value="true"/>
		</module>

		<!--

		MODIFIERS CHECKS

		-->

		<module name="ModifierOrder">
			<!-- Warn if modifier order is inconsistent with JLS3 8.1.1, 8.3.1, and
				 8.4.3.  The prescribed order is:
				 public, protected, private, abstract, static, final, transient, volatile,
				 synchronized, native, strictfp
			  -->
			<property name="severity" value="error"/>
		</module>


		<!--

		WHITESPACE CHECKS

		-->

		<module name="EmptyLineSeparator">
			<!-- Checks for empty line separator between tokens. The only
				 excluded token is VARIABLE_DEF, allowing class fields to
				 be declared on consecutive lines.
			-->
			<property name="allowMultipleEmptyLines" value="false"/>
			<property name="allowMultipleEmptyLinesInsideClassMembers" value="false"/>
			<property name="tokens" value="PACKAGE_DEF, IMPORT, STATIC_IMPORT, CLASS_DEF,
        INTERFACE_DEF, ENUM_DEF, STATIC_INIT, INSTANCE_INIT, METHOD_DEF,
        CTOR_DEF"/>
		</module>

		<module name="WhitespaceAround">
			<!-- Checks that various tokens are surrounded by whitespace.
				 This includes most binary operators and keywords followed
				 by regular or curly braces.
			-->
			<property name="tokens" value="ASSIGN, BAND, BAND_ASSIGN, BOR,
        BOR_ASSIGN, BSR, BSR_ASSIGN, BXOR, BXOR_ASSIGN, COLON, DIV, DIV_ASSIGN,
        EQUAL, GE, GT, LAMBDA, LAND, LE, LITERAL_CATCH, LITERAL_DO, LITERAL_ELSE,
        LITERAL_FINALLY, LITERAL_FOR, LITERAL_IF, LITERAL_RETURN,
        LITERAL_SYNCHRONIZED, LITERAL_TRY, LITERAL_WHILE, LOR, LT, MINUS,
        MINUS_ASSIGN, MOD, MOD_ASSIGN, NOT_EQUAL, PLUS, PLUS_ASSIGN, QUESTION,
        SL, SL_ASSIGN, SR_ASSIGN, STAR, STAR_ASSIGN, TYPE_EXTENSION_AND"/>
			<property name="severity" value="error"/>
		</module>

		<module name="WhitespaceAfter">
			<!-- Checks that commas, semicolons and typecasts are followed by
				 whitespace.
			-->
			<property name="tokens" value="COMMA, SEMI, TYPECAST"/>
		</module>

		<module name="NoWhitespaceAfter">
			<!-- Checks that there is no whitespace after various unary operators.
				 Linebreaks are allowed.
			-->
			<property name="tokens" value="BNOT, DEC, DOT, INC, LNOT, UNARY_MINUS,
        UNARY_PLUS"/>
			<property name="allowLineBreaks" value="true"/>
			<property name="severity" value="error"/>
		</module>

		<module name="NoWhitespaceBefore">
			<!-- Checks that there is no whitespace before various unary operators.
				 Linebreaks are allowed.
			-->
			<property name="tokens" value="SEMI, DOT, POST_DEC, POST_INC"/>
			<property name="allowLineBreaks" value="true"/>
			<property name="severity" value="error"/>
		</module>

		<!--<module name="OperatorWrap">-->
		<!--&lt;!&ndash; Checks that operators like + and ? appear at newlines rather than-->
		<!--at the end of the previous line.-->
		<!--&ndash;&gt;-->
		<!--<property name="option" value="NL"/>-->
		<!--<property name="tokens" value="BAND, BOR, BSR, BXOR, DIV, EQUAL,-->
		<!--GE, GT, LAND, LE, LITERAL_INSTANCEOF, LOR, LT, MINUS, MOD,-->
		<!--NOT_EQUAL, PLUS, QUESTION, SL, SR, STAR "/>-->
		<!--</module>-->

		<module name="OperatorWrap">
			<!-- Checks that assignment operators are at the end of the line. -->
			<property name="option" value="eol"/>
			<property name="tokens" value="ASSIGN"/>
		</module>

		<module name="ParenPad">
			<!-- Checks that there is no whitespace before close parens or after
				 open parens.
			-->
			<property name="severity" value="error"/>
		</module>

	</module>
</module>

