<?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"/>
</suppressions>
