<?xml version="1.0" encoding="UTF-8"?>
<!--

    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">

<module name="Checker">
    <property name="severity" value="warning"/>
    <module name="NewlineAtEndOfFile"/>
    <module name="SuppressionFilter">
        <property name="file" value="resources/checkstyle_suppressions.xml"/>
    </module>
    <module name="TreeWalker">
        <module name="AvoidStarImport"/>
        <module name="EmptyStatement"/>
<!--
        jclouds prefers 120 character line lengths but has many files with
        longer lines
        <module name="LineLength">
            <property name="ignorePattern" value="^import\s.*;$"/>
            <property name="max" value="120"/>
        </module>
-->
        <module name="ModifierOrder"/>
        <module name="MultipleVariableDeclarations"/>
        <module name="SimplifyBooleanExpression"/>
        <module name="UnnecessaryParentheses"/>
    </module>
    <module name="RegexpMultiline">
        <property name="format" value="=\s*new ArrayList&lt;[^&gt;]"/>
        <property name="message" value="Prefer com.google.common.collect.Lists"/>
    </module>
    <module name="RegexpMultiline">
        <property name="format" value="=\s*new HashMap&lt;[^&gt;]"/>
        <property name="message" value="Prefer com.google.common.collect.Maps"/>
    </module>
    <module name="RegexpMultiline">
        <property name="format" value="=\s*new HashSet&lt;[^&gt;]"/>
        <property name="message" value="Prefer com.google.common.collect.Sets"/>
    </module>
    <module name="RegexpMultiline">
        <property name="format" value="=\s*new LinkedHashMap&lt;[^&gt;]"/>
        <property name="message" value="Prefer com.google.common.collect.Maps"/>
    </module>
    <module name="RegexpMultiline">
        <property name="format" value="=\s*new LinkedHashSet&lt;[^&gt;]"/>
        <property name="message" value="Prefer com.google.common.collect.Sets"/>
    </module>
    <module name="RegexpMultiline">
        <property name="format" value="=\s*new LinkedList&lt;[^&gt;]"/>
        <property name="message" value="Prefer com.google.common.collect.Lists"/>
    </module>
    <module name="RegexpMultiline">
        <property name="format" value="=\s*new TreeMap&lt;[^&gt;]"/>
        <property name="message" value="Prefer com.google.common.collect.Maps"/>
    </module>
    <module name="RegexpMultiline">
        <property name="format" value="=\s*new TreeSet&lt;[^&gt;]"/>
        <property name="message" value="Prefer com.google.common.collect.Sets"/>
    </module>
    <module name="RegexpMultiline">
        <property name="format" value="=\s*new AtomicReference&lt;[^&gt;]"/>
        <property name="message" value="Prefer com.google.common.util.concurrent.Atomics"/>
    </module>
    <module name="RegexpMultiline">
        <property name="format" value="new StringBuffer"/>
        <property name="message" value="Prefer java.lang.StringBuilder"/>
    </module>
</module>
