<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE module PUBLIC
	"-//Checkstyle//DTD Checkstyle Configuration 1.3//EN"
	"https://checkstyle.org/dtds/configuration_1_3.dtd">
<module name="Checker">
	<property name="fileExtensions" value="java, xml, properties"/>

	<!-- Checks whether files end with a new line. -->
	<!-- See http://checkstyle.sourceforge.net/config_misc.html#NewlineAtEndOfFile -->
	<module name="NewlineAtEndOfFile">
		<property name="severity" value="info"/>
	</module>

	<!-- Checks that property files contain the same keys. -->
	<!-- See http://checkstyle.sourceforge.net/config_misc.html#Translation -->
	<module name="Translation"/>

	<!-- Checks for Size Violations. -->
	<!-- See http://checkstyle.sourceforge.net/config_sizes.html -->
	<module name="FileLength">
		<property name="severity" value="ignore"/>
	</module>

	<!-- Checks for whitespace -->
	<!-- See http://checkstyle.sourceforge.net/config_whitespace.html -->

	<!-- Miscellaneous other checks. -->
	<!-- See http://checkstyle.sourceforge.net/config_misc.html -->
	<module name="RegexpSingleline">
		<property name="format" value="\s+$"/>
		<property name="minimum" value="0"/>
		<property name="maximum" value="0"/>
		<property name="message" value="Line has trailing spaces."/>
		<property name="severity" value="info"/>
	</module>

	<module name="TreeWalker">
		<!-- Allow suppression of checkstyle warnings via @SuppressWarnings annotation -->
		<module name="SuppressWarningsHolder"/>

		<!-- require TAB indentation -->
		<module name="RegexpSinglelineJava">
			<property name="format" value="^\t*(?! \*) "/>
			<property name="message" value="Indent must use tab characters"/>
		</module>

		<!-- Checks for Javadoc comments. -->
		<!-- See http://checkstyle.sourceforge.net/config_javadoc.html -->
		<module name="JavadocMethod">
			<property name="scope" value="package"/>
			<property name="allowMissingParamTags" value="true"/>
			<property name="allowMissingThrowsTags" value="true"/>
			<property name="allowMissingReturnTag" value="true"/>
			<property name="allowThrowsTagsForSubclasses" value="true"/>
			<property name="allowUndeclaredRTE" value="true"/>
			<property name="allowMissingPropertyJavadoc" value="true"/>
			<property name="severity" value="ignore"/>
		</module>
		<module name="JavadocType">
			<property name="scope" value="package"/>
			<property name="severity" value="ignore"/>
		</module>
		<module name="JavadocVariable">
			<property name="scope" value="package"/>
			<property name="severity" value="ignore"/>
		</module>
		<module name="JavadocStyle">
			<property name="checkEmptyJavadoc" value="true"/>
			<property name="severity" value="ignore"/>
		</module>

		<!-- Checks for Naming Conventions. -->
		<!-- See http://checkstyle.sourceforge.net/config_naming.html -->
		<module name="LocalFinalVariableName"/>
		<module name="LocalVariableName">
			<property name="format" value="^[a-z][a-z_A-Z0-9]*$"/>
		</module>
		<module name="MemberName"/>
		<module name="MethodName">
			<property name="severity" value="ignore"/>
		</module>
		<module name="PackageName"/>
		<module name="ParameterName">
			<property name="severity" value="ignore"/>
		</module>
		<module name="StaticVariableName">
			<property name="severity" value="ignore"/>
		</module>
		<module name="TypeName"/>

		<!-- Checks for imports -->
		<!-- See http://checkstyle.sourceforge.net/config_import.html -->
		<module name="IllegalImport"/>
		<!-- defaults to sun.* packages -->
		<module name="RedundantImport"/>
		<module name="UnusedImports"/>


		<!-- Checks for Size Violations. -->
		<!-- See http://checkstyle.sourceforge.net/config_sizes.html -->
		<module name="LineLength">
			<property name="severity" value="ignore"/>
		</module>
		<module name="MethodLength"/>
		<module name="ParameterNumber"/>


		<!-- Checks for whitespace -->
		<!-- See http://checkstyle.sourceforge.net/config_whitespace.html -->
		<module name="EmptyForIteratorPad"/>
		<module name="GenericWhitespace">
			<property name="severity" value="ignore"/>
		</module>
		<module name="MethodParamPad"/>
		<module name="NoWhitespaceAfter">
			<property name="severity" value="ignore"/>
		</module>
		<module name="NoWhitespaceBefore">
			<property name="severity" value="ignore"/>
		</module>
		<module name="OperatorWrap">
			<property name="tokens" value="PLUS"/>
			<property name="option" value="eol"/>
		</module>
		<module name="ParenPad"/>
		<module name="TypecastParenPad"/>
		<module name="WhitespaceAfter">
			<property name="severity" value="ignore"/>
		</module>
		<module name="WhitespaceAround">
			<property name="severity" value="ignore"/>
		</module>

		<!-- Modifier Checks -->
		<!-- See http://checkstyle.sourceforge.net/config_modifiers.html -->
		<module name="ModifierOrder">
			<property name="severity" value="ignore"/>
		</module>
		<module name="RedundantModifier">
			<property name="severity" value="ignore"/>
		</module>


		<!-- Checks for blocks. You know, those {}'s -->
		<!-- See http://checkstyle.sourceforge.net/config_blocks.html -->
		<module name="AvoidNestedBlocks"/>
		<module name="EmptyBlock">
			<property name="option" value="text"/>
		</module>
		<module name="LeftCurly">
			<property name="severity" value="ignore"/>
		</module>
		<module name="NeedBraces">
			<!-- cannot initialize module TreeWalker - Property 'allowSingleLineIf' in module NeedBraces does not exist, please check the documentation -->
			<!-- u wot m8 -->
			<!--<property name="allowSingleLineIf" value="TRUE"/> -->
			<property name="severity" value="ignore"/>
		</module>
		<module name="RightCurly">
			<property name="severity" value="ignore"/>
		</module>


		<!-- Checks for common coding problems -->
		<!-- See http://checkstyle.sourceforge.net/config_coding.html -->
		<module name="EmptyStatement"/>
		<module name="EqualsHashCode"/>
		<module name="HiddenField">
			<property name="severity" value="ignore"/>
		</module>
		<module name="IllegalInstantiation"/>
		<module name="InnerAssignment"/>
		<module name="MagicNumber">
			<property name="severity" value="ignore"/>
		</module>
		<module name="MissingSwitchDefault">
			<property name="severity" value="ignore"/>
		</module>
		<module name="SimplifyBooleanExpression"/>
		<module name="SimplifyBooleanReturn"/>

		<!-- Checks for class design -->
		<!-- See http://checkstyle.sourceforge.net/config_design.html -->
		<module name="FinalClass">
			<!-- this check is performed by PMD as well -->
			<property name="severity" value="ignore"/>
		</module>
		<module name="HideUtilityClassConstructor"/>
		<module name="InterfaceIsType">
			<property name="severity" value="ignore"/>
		</module>
		<module name="VisibilityModifier">
			<property name="severity" value="ignore"/>
		</module>


		<!-- Miscellaneous other checks. -->
		<!-- See http://checkstyle.sourceforge.net/config_misc.html -->
		<module name="ArrayTypeStyle"/>
		<module name="TodoComment">
			<property name="format" value="(?i)\s+CR\s+"/>
			<property name="severity" value="info"/>
		</module>
		<module name="UpperEll"/>

	</module>

	<!-- Enable suppression comments -->
		<!-- Allow suppression of checkstyle warnings via @SuppressWarnings annotation -->
	<module name="SuppressWarningsFilter"/>
</module>
