--- /dev/null
+<?xml version="1.0"?>
+<!DOCTYPE module PUBLIC
+ "-//Puppy Crawl//DTD Check Configuration 1.2//EN"
+ "http://www.puppycrawl.com/dtds/configuration_1_2.dtd">
+
+<!--
+
+ A Checkstyle configuration that checks against the recommendations
+ in Joshua Bloch, Effective Java (highliy recommended read!)
+
+ This file does NOT duplicate the checks for whitespace settings,
+ placement of curly braces, etc. Only the rules that are explicitly
+ mentioned in the book are enforced.
+
+ Currently the amount of rules that can be automatically checked by
+ Checkstyle is not very large, but adding more checks of this quality
+ is a high priority goal for the development team.
+
+-->
+
+<module name="Checker">
+
+ <!-- Item 6 - Avoid finalizers -->
+ <module name="RegexpMultiline">
+ <property name="format"
+ value="((public)|(protected))\s+void\s+finalize\(\s*\)"/>
+ </module>
+
+ <module name="FileTabCharacter"/>
+
+ <module name="TreeWalker">
+
+ <!-- Item 4 - Avoid creating duplicate objects -->
+ <module name="IllegalInstantiation">
+ <property name="classes" value="java.lang.Boolean, java.lang.String"/>
+ </module>
+
+ <!-- Item 8 - Always override hashCode when you override equals -->
+ <module name="EqualsHashCode"/>
+
+ <!-- Item 12 - Make all fields private -->
+ <module name="VisibilityModifier"/>
+
+ <!-- Item 15 - Design and document for inheritance or else prohibit it -->
+ <!-- the module actually implements a very strict rule, it would be
+ interesting to know whether Joshua meant what checkstyle implements.
+ We feel this implementation is well suited as a warning,
+ i.e. if you get error messages from this check you should be
+ able to name a good reason to implement your code the way you do it,
+ especially if you are designing a library and not an application. -->
+ <!-- module name="DesignForExtension">
+ <property name="severity" value="warning"/>
+ </module -->
+
+ <!-- Item 17 - Use interfaces only to define types -->
+ <module name="InterfaceIsType"/>
+
+ <!-- Item 25 - Design method signatures carefully -->
+ <!-- Avoid long parameter lists -->
+ <module name="ParameterNumber">
+ <property name="max" value="5"/>
+ </module>
+
+ <!-- Item 26 - Use overloading judiciously -->
+ <!-- rfe #659735 -->
+
+ <!-- Item 27 - Return zero-length array, not nulls -->
+ <!-- no rfe yet -->
+
+ <!-- Item 28 - Write doc comments for everything -->
+ <!-- module name="JavadocType">
+ <property name="scope" value="private"/>
+ </module>
+ <module name="JavadocMethod">
+ <property name="scope" value="private"/>
+ <property name="allowUndeclaredRTE" value="true"/>
+ </module>
+ <module name="JavadocVariable">
+ <property name="scope" value="private"/>
+ </module -->
+
+ <!-- Item 29 - Minimize the scope of local variables -->
+ <!-- no rfe yet -->
+
+
+ <!-- Item 38 - Adhere to generally accepted naming conventions -->
+ <module name="PackageName">
+ <!-- no uppercase letters, between 2 and 8 characters -->
+ <property name="format" value="^[a-z]+(\.[a-z][a-z0-9]{1,15})*$"/>
+ </module>
+ <module name="TypeName"/>
+ <module name="ConstantName"/>
+ <module name="LocalFinalVariableName"/>
+ <module name="LocalVariableName"/>
+ <module name="MemberName"/>
+ <module name="MethodName"/>
+ <module name="ParameterName">
+ <property name="format" value="^a[A-Z][a-zA-Z0-9]*$"/>
+ </module>
+ <module name="StaticVariableName">
+ <property name="format" value="^[A-Z][A-Z0-9]*(_[A-Z0-9]+)*$"/>
+ </module>
+
+ <!-- Item 47 - Don't ignore exceptions -->
+ <module name="EmptyBlock">
+ <property name="tokens" value="LITERAL_CATCH"/>
+ <!-- require a comment, change to stmt to require a statement -->
+ <property name="option" value="text"/>
+ </module>
+
+ <!-- Item 50 - Never invoke wait outside a loop -->
+ <!-- rfe #712798 -->
+
+ <!-- Item 57 - Provide a readResolve method when necessary -->
+ <!-- no rfe yet -->
+
+ <!-- code layout -->
+ <module name="LeftCurly">
+ <property name="option" value="eol"/>
+ </module>
+ <module name="RightCurly">
+ <property name="option" value="same"/>
+ </module>
+ <module name="NeedBraces"/>
+ <module name="OperatorWrap">
+ <property name="option" value="eol"/>
+ </module>
+ <module name="NoWhitespaceAfter">
+ <property name="tokens" value="BNOT, DEC, DOT, INC, LNOT, UNARY_MINUS, UNARY_PLUS"/>
+ </module>
+ <module name="NoWhitespaceBefore"/>
+ <module name="ParenPad"/>
+
+ </module>
+
+</module>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<jalopy>
+ <inspector>
+ <enable>true</enable>
+ <naming>
+ <classes>
+ <abstract>[A-Z][a-zA-Z0-9]+</abstract>
+ <general>[A-Z][a-zA-Z0-9]+</general>
+ </classes>
+ <fields>
+ <default>[a-z][\w]+</default>
+ <defaultStatic>[a-z][\w]+</defaultStatic>
+ <defaultStaticFinal>[a-zA-Z][\w]+</defaultStaticFinal>
+ <private>[a-z][\w]+</private>
+ <privateStatic>[a-z][\w]+</privateStatic>
+ <privateStaticFinal>[a-zA-Z][\w]+</privateStaticFinal>
+ <protected>[a-z][\w]+</protected>
+ <protectedStatic>[a-z][\w]+</protectedStatic>
+ <protectedStaticFinal>[a-zA-Z][\w]+</protectedStaticFinal>
+ <public>[a-z][\w]+</public>
+ <publicStatic>[a-z][\w]+</publicStatic>
+ <publicStaticFinal>[a-zA-Z][\w]+</publicStaticFinal>
+ </fields>
+ <interfaces>[A-Z][a-zA-Z0-9]+</interfaces>
+ <labels>\w+</labels>
+ <methods>
+ <default>[a-z][\w]+</default>
+ <defaultStatic>[a-z][\w]+</defaultStatic>
+ <defaultStaticFinal>[a-z][\w]+</defaultStaticFinal>
+ <private>[a-z][\w]+</private>
+ <privateStatic>[a-z][\w]+</privateStatic>
+ <privateStaticFinal>[a-z][\w]+</privateStaticFinal>
+ <protected>[a-z][\w]+</protected>
+ <protectedStatic>[a-z][\w]+</protectedStatic>
+ <protectedStaticFinal>[a-z][\w]+</protectedStaticFinal>
+ <public>[a-z][\w]+</public>
+ <publicStatic>[a-z][\w]+</publicStatic>
+ <publicStaticFinal>[a-z][\w]+</publicStaticFinal>
+ </methods>
+ <packages>[a-z]+(?:\.[a-z]+)*</packages>
+ <parameters>
+ <default>[a-z][\w]+</default>
+ <final>[a-z][\w]+</final>
+ </parameters>
+ <variables>[a-z][\w]*</variables>
+ </naming>
+ <tips>
+ <adhereToNamingConvention>false</adhereToNamingConvention>
+ <alwaysOverrideEquals>false</alwaysOverrideEquals>
+ <alwaysOverrideHashCode>false</alwaysOverrideHashCode>
+ <avoidThreadGroups>false</avoidThreadGroups>
+ <declareCollectionComment>false</declareCollectionComment>
+ <dontIgnoreExceptions>false</dontIgnoreExceptions>
+ <dontSubstituteObjectEquals>false</dontSubstituteObjectEquals>
+ <neverDeclareException>false</neverDeclareException>
+ <neverDeclareThrowable>false</neverDeclareThrowable>
+ <neverInvokeWaitOutsideLoop>false</neverInvokeWaitOutsideLoop>
+ <neverReturnZeroArrays>false</neverReturnZeroArrays>
+ <neverUseEmptyFinally>false</neverUseEmptyFinally>
+ <obeyContractEquals>false</obeyContractEquals>
+ <overrideToString>false</overrideToString>
+ <referToObjectsByInterface>false</referToObjectsByInterface>
+ <replaceStructureWithClass>false</replaceStructureWithClass>
+ <stringLiterallI18n>false</stringLiterallI18n>
+ <useInterfaceOnlyForTypes>false</useInterfaceOnlyForTypes>
+ <wrongCollectionComment>false</wrongCollectionComment>
+ </tips>
+ </inspector>
+ <internal>
+ <version>6</version>
+ </internal>
+ <messages>
+ <priority>
+ <general>20000</general>
+ <parser>20000</parser>
+ <parserJavadoc>20000</parserJavadoc>
+ <printer>20000</printer>
+ <printerJavadoc>20000</printerJavadoc>
+ <transform>20000</transform>
+ </priority>
+ <showErrorStackTrace>false</showErrorStackTrace>
+ </messages>
+ <misc>
+ <threadCount>1</threadCount>
+ </misc>
+ <printer>
+ <alignment>
+ <methodCallChain>false</methodCallChain>
+ <parameterMethodDeclaration>false</parameterMethodDeclaration>
+ <ternaryOperator>true</ternaryOperator>
+ <variableAssignment>true</variableAssignment>
+ <variableIdentifier>true</variableIdentifier>
+ </alignment>
+ <backup>
+ <directory>bak</directory>
+ <level>0</level>
+ </backup>
+ <blanklines>
+ <after>
+ <block>1</block>
+ <braceLeft>0</braceLeft>
+ <class>1</class>
+ <declaration>0</declaration>
+ <footer>1</footer>
+ <header>0</header>
+ <interface>1</interface>
+ <lastImport>2</lastImport>
+ <method>1</method>
+ <package>1</package>
+ </after>
+ <before>
+ <block>1</block>
+ <braceRight>0</braceRight>
+ <caseBlock>1</caseBlock>
+ <comment>
+ <javadoc>1</javadoc>
+ <multiline>1</multiline>
+ <singleline>1</singleline>
+ </comment>
+ <controlStatement>1</controlStatement>
+ <declaration>1</declaration>
+ <footer>0</footer>
+ <header>0</header>
+ </before>
+ <keepUpTo>1</keepUpTo>
+ </blanklines>
+ <braces>
+ <empty>
+ <cuddle>false</cuddle>
+ <insertStatement>false</insertStatement>
+ </empty>
+ <insert>
+ <dowhile>true</dowhile>
+ <for>true</for>
+ <ifelse>true</ifelse>
+ <while>true</while>
+ </insert>
+ <remove>
+ <block>false</block>
+ <dowhile>false</dowhile>
+ <for>false</for>
+ <ifelse>false</ifelse>
+ <while>false</while>
+ </remove>
+ <treatDifferent>
+ <methodClass>false</methodClass>
+ <methodClassIfWrapped>false</methodClassIfWrapped>
+ </treatDifferent>
+ </braces>
+ <chunks>
+ <blanklines>true</blanklines>
+ <comments>true</comments>
+ </chunks>
+ <comments>
+ <format>
+ <multiline>false</multiline>
+ </format>
+ <javadoc>
+ <check>
+ <innerclass>false</innerclass>
+ <tags>true</tags>
+ <throwsTags>true</throwsTags>
+ </check>
+ <fieldsShort>false</fieldsShort>
+ <generate>
+ <class>23</class>
+ <constructor>23</constructor>
+ <field>23</field>
+ <method>23</method>
+ </generate>
+ <parseComments>true</parseComments>
+ <tags>
+ <in-line />
+ <standard />
+ </tags>
+ <templates>
+ <constructor>
+ <bottom> */</bottom>
+ <exception> * @throws $exceptionType$ DOCUMENT ME!</exception>
+ <param> * @param $paramType$ DOCUMENT ME!</param>
+ <top>/**| * Creates a new $objectType$ object.</top>
+ </constructor>
+ <interface>/**| * DOCUMENT ME!| *| * @author $author$| * @version $Revision: 1.6 $| */</interface>
+ <method>
+ <bottom> */</bottom>
+ <exception> * @throws $exceptionType$ DOCUMENT ME!</exception>
+ <param> * @param $paramType$ DOCUMENT ME!</param>
+ <return> * @return DOCUMENT ME!</return>
+ <top>/**| * DOCUMENT ME!</top>
+ </method>
+ <variable>/**| * DOCUMENT ME!| */</variable>
+ </templates>
+ </javadoc>
+ <remove>
+ <javadoc>false</javadoc>
+ <multiline>false</multiline>
+ <singleline>false</singleline>
+ </remove>
+ <separator>
+ <fillCharacter>-</fillCharacter>
+ <insert>false</insert>
+ <insertRecursive>false</insertRecursive>
+ <text>
+ <class>Inner Classes</class>
+ <constructor>Constructors</constructor>
+ <field>Instance fields</field>
+ <initializer>Instance initializers</initializer>
+ <interface>Inner Interfaces</interface>
+ <method>Methods</method>
+ <static>Static fields/initializers</static>
+ </text>
+ </separator>
+ </comments>
+ <environment />
+ <footer>
+ <keys />
+ <smartMode>0</smartMode>
+ <use>false</use>
+ </footer>
+ <header>
+ <keys>SCJD</keys>
+ <smartMode>20</smartMode>
+ <text>/*| * SCJD assignment, URLyBird, Erik Brakkee.| * Candidate ID: sr1399267.| */</text>
+ <use>true</use>
+ </header>
+ <history>
+ <policy>disabled</policy>
+ </history>
+ <imports>
+ <grouping>
+ <defaultDepth>3</defaultDepth>
+ <packages>*:0|gnu:2|java:2|javax:2</packages>
+ </grouping>
+ <policy>disabled</policy>
+ <sort>true</sort>
+ </imports>
+ <indentation>
+ <caseFromSwitch>true</caseFromSwitch>
+ <continuation>
+ <block>true</block>
+ <operator>false</operator>
+ </continuation>
+ <firstColumnComments>false</firstColumnComments>
+ <label>false</label>
+ <policy>
+ <deep>false</deep>
+ </policy>
+ <sizes>
+ <braceCuddled>1</braceCuddled>
+ <braceLeft>1</braceLeft>
+ <braceRight>0</braceRight>
+ <braceRightAfter>1</braceRightAfter>
+ <continuation>4</continuation>
+ <deep>55</deep>
+ <extends>-1</extends>
+ <general>4</general>
+ <implements>-1</implements>
+ <leading>0</leading>
+ <tabs>8</tabs>
+ <throws>-1</throws>
+ <trailingComment>1</trailingComment>
+ </sizes>
+ <tabs>
+ <enable>false</enable>
+ <onlyLeading>false</onlyLeading>
+ </tabs>
+ </indentation>
+ <misc>
+ <arrayBracketsAfterIdent>false</arrayBracketsAfterIdent>
+ <forceFormatting>false</forceFormatting>
+ <insertExpressionParentheses>true</insertExpressionParentheses>
+ <insertLoggingConditional>false</insertLoggingConditional>
+ <insertTrailingNewline>true</insertTrailingNewline>
+ <insertUID>false</insertUID>
+ </misc>
+ <sorting>
+ <declaration>
+ <class>false</class>
+ <constructor>false</constructor>
+ <enable>true</enable>
+ <interface>false</interface>
+ <method>false</method>
+ <order>interface|class|static|field|initializer|constructor|method</order>
+ <variable>false</variable>
+ </declaration>
+ <modifier>
+ <enable>false</enable>
+ <order>public|protected|private|abstract|static|final|synchronized|transient|volatile|native|strictfp</order>
+ </modifier>
+ </sorting>
+ <whitespace>
+ <after>
+ <comma>true</comma>
+ <semicolon>true</semicolon>
+ <typeCast>true</typeCast>
+ </after>
+ <before>
+ <braces>true</braces>
+ <brackets>false</brackets>
+ <bracketsTypes>false</bracketsTypes>
+ <caseColon>false</caseColon>
+ <operator>
+ <not>false</not>
+ </operator>
+ <parentheses>
+ <methodCall>false</methodCall>
+ <methodDeclaration>false</methodDeclaration>
+ <statement>true</statement>
+ </parentheses>
+ </before>
+ <padding>
+ <braces>true</braces>
+ <brackets>false</brackets>
+ <operator>
+ <assignment>true</assignment>
+ <bitwise>true</bitwise>
+ <logical>true</logical>
+ <mathematical>true</mathematical>
+ <relational>true</relational>
+ <shift>true</shift>
+ </operator>
+ <parenthesis>false</parenthesis>
+ <typeCast>false</typeCast>
+ </padding>
+ </whitespace>
+ <wrapping>
+ <always>
+ <after>
+ <arrayElement>0</arrayElement>
+ <braceRight>false</braceRight>
+ <extendsTypes>false</extendsTypes>
+ <implementsTypes>false</implementsTypes>
+ <label>true</label>
+ <methodCallChained>false</methodCallChained>
+ <ternaryOperator>
+ <first>false</first>
+ <second>false</second>
+ </ternaryOperator>
+ <throwsTypes>false</throwsTypes>
+ </after>
+ <before>
+ <braceLeft>false</braceLeft>
+ <extends>false</extends>
+ <implements>false</implements>
+ <throws>false</throws>
+ </before>
+ <parameter>
+ <methodCall>false</methodCall>
+ <methodCallNested>false</methodCallNested>
+ <methodDeclaration>false</methodDeclaration>
+ </parameter>
+ </always>
+ <general>
+ <beforeOperator>true</beforeOperator>
+ <enable>true</enable>
+ <lineLength>80</lineLength>
+ </general>
+ <ondemand>
+ <after>
+ <assignment>false</assignment>
+ <leftParenthesis>false</leftParenthesis>
+ <parameter>false</parameter>
+ <types>
+ <extends>false</extends>
+ <implements>false</implements>
+ <throws>false</throws>
+ </types>
+ </after>
+ <before>
+ <rightParenthesis>false</rightParenthesis>
+ </before>
+ <groupingParentheses>false</groupingParentheses>
+ </ondemand>
+ </wrapping>
+ </printer>
+</jalopy>
+