<?xml version="1.0"?>
<!--
   ============LICENSE_START=======================================================
   SDC
   ================================================================================
   Copyright (C) 2019 Nokia. All rights reserved.
   ================================================================================
   Licensed 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.
   ============LICENSE_END=========================================================
  -->

<!DOCTYPE suppressions PUBLIC
        "-//Checkstyle//DTD SuppressionFilter Configuration 1.0//EN"
        "https://checkstyle.org/dtds/suppressions_1_0.dtd">

<suppressions>
    <suppress checks=".*" files="\.java" lines="1-20"/>
    <suppress checks=".*" files="\.properties"/>
    <suppress checks="javadoc" files="\.java"/>
    <suppress checks="LineLength" files="\.java"/>
    <suppress checks="HiddenField" files="\.java"/>
    <suppress checks="FinalClass" files="\.java"/>
    <suppress checks="FinalParameters" files="\.java"/>
    <suppress checks="AvoidInlineConditionals" files="\.java"/>
    <suppress checks="DesignForExtension" files="\.java"/>
    <suppress checks="ImportOrder" files="\.java"/>
    <suppress checks="LocalVariableName" files="\.java"/>
    <suppress checks="AbbreviationAsWordInName" files="\.java"/>
    <!--Checkstyle requirements that don't match SnakeYAML parser requirements-->
    <suppress checks="ParameterName" files="common/onap-tosca-datatype/.*/*.java"/>
    <suppress checks="MethodName" files="common/onap-tosca-datatype/.*/*.java"/>
    <suppress checks="MemberName" files="common/onap-tosca-datatype/.*/*.java"/>
    <!--Should fix below modules-->
    <suppress checks="." files="[\\/]common-app-logging[\\/].*\.java$"/>
    <suppress checks="." files="[\\/]common-app-api[\\/].*\.java$"/>
</suppressions>