<?xml version="1.0"?>
<!DOCTYPE module PUBLIC
	  "-//Puppy Crawl//DTD Check Configuration 1.2//EN"
	  "http://www.puppycrawl.com/dtds/configuration_1_2.dtd">

<module name="Checker">

	<module name="TreeWalker">


		<!-- Checks for Naming Conventions.                  -->
		<!-- See http://checkstyle.sf.net/config_naming.html -->
		<module name="AbstractClassName" />
		<module name="ConstantName" />
		<module name="LocalVariableName" />
		<module name="MemberName" />
		<module name="MethodName" />
		<module name="PackageName" />
		<module name="ParameterName" />
		<module name="StaticVariableName" />
		<module name="TypeName" />
		<module name="TypeName">
			<property name="format" value="^[A-Z][a-zA-Z0-9]*Interface" />
			<property name="tokens" value="INTERFACE_DEF" />
		</module>


		<!-- Checks for imports                              -->
		<!-- See http://checkstyle.sf.net/config_import.html -->
		<module name="AvoidStarImport" />
		<module name="IllegalImport" />
		<module name="RedundantImport" />
		<module name="UnusedImports" />
		<module name="ImportOrder">
			<!--property name="groups" value="gov,java,javax,org"/-->
			<property name="ordered" value="false" />
			<property name="separated" value="true" />
		</module>


		<!-- Checks for whitespace                               -->
		<!-- See http://checkstyle.sf.net/config_whitespace.html -->
		<module name="EmptyForInitializerPad">
			<property name="option" value="space" />
		</module>
		<module name="MethodParamPad">
			<property name="option" value="nospace" />
		</module>
		<!--
			<module name="NoWhitespaceAfter"/>
			<module name="NoWhitespaceBefore"/>
			<module name="OperatorWrap"/>
		-->
		<module name="ParenPad">
			<property name="option" value="space" />
		</module>
		<module name="TypecastParenPad">
			<property name="option" value="space" />
		</module>
		<module name="TabCharacter" />
		<!-- causing error for generic declaration
			<module name="WhitespaceAfter"/>
			<module name="WhitespaceAround"/>
		-->


		<!-- Modifier Checks                                    -->
		<!-- See http://checkstyle.sf.net/config_modifiers.html -->
		<module name="RedundantModifier" />


		<!-- Checks for blocks. You know, those {}'s         -->
		<!-- See http://checkstyle.sf.net/config_blocks.html -->
		<!--
			<module name="AvoidNestedBlocks"/>
			<module name="EmptyBlock"/>
			<module name="NeedBraces"/>
		-->
		<module name="LeftCurly">
			<property name="option" value="nl" />
		</module>
		<module name="RightCurly">
			<property name="option" value="alone" />
		</module>


		<!-- Checks for class design                         -->
		<!-- See http://checkstyle.sf.net/config_design.html -->
		<module name="TodoComment" />

	</module>
</module>
