<?xml version="1.0"?>

<!DOCTYPE suppressions PUBLIC
    "-//Puppy Crawl//DTD Suppressions 1.0//EN"
    "http://www.puppycrawl.com/dtds/suppressions_1_0.dtd">
<!--
   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.
-->
<!-- ===================================================================== -->
<!-- Exceptions for Checkstyle -->
<!-- $Id$ -->
<!-- ===================================================================== -->

<suppressions>

    <suppress checks="MissingSwitchDefault" files="PropertiesConfiguration.java"/>

    <!-- There is an empty catch block ignoring unsupported operation exceptions
         from the list delimiter handler. This is okay, then the property is
         written out in multiple lines.
    -->
    <suppress checks="EmptyBlock" files="PropertiesConfiguration.java"
      lines="1074-1107"/>

    <suppress files="FileUtils\.java" checks="[a-zA-Z0-9]*"/>

    <!-- There is an import for an exception class which is used in the
         Javadoc for almost every method.
    -->
    <suppress checks="UnusedImports" files="DataConfiguration"/>
    <suppress checks="UnusedImports" files="ConversionHandler"/>
    <suppress checks="UnusedImports" files="DefaultConversionHandler"/>
</suppressions>
