<?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.

-->
<pmd version="1.4.1" timestamp="2013-03-20T09:22:29+01:00">
  <file name="/home/gapon/NetBeansProjects/TodoList/model/Todo.php">
    <violation beginline="59" endline="59" rule="ShortVariable" ruleset="Naming Rules" externalInfoUrl="http://phpmd.org/rules/naming.html#shortvariable" priority="3">
      Avoid variables with short names like $id. Configured minimum length is 3.
    </violation>
    <violation beginline="116" endline="116" rule="ShortVariable" ruleset="Naming Rules" externalInfoUrl="http://phpmd.org/rules/naming.html#shortvariable" priority="3">
      Avoid variables with short names like $id. Configured minimum length is 3.
    </violation>
    <violation beginline="216" endline="218" rule="BooleanGetMethodName" ruleset="Naming Rules" package="+global" externalInfoUrl="http://phpmd.org/rules/naming.html#booleangetmethodname" class="Todo" method="getDeleted" priority="4">
      The 'getDeleted()' method which returns a boolean should be named 'is...()' or 'has...()'
    </violation>
  </file>
  <file name="/home/gapon/NetBeansProjects/TodoList/util/Utils.php">
    <violation beginline="94" endline="94" rule="ExitExpression" ruleset="Design Rules" externalInfoUrl="http://phpmd.org/rules/design.html#exitexpression" priority="1">
      The method redirect() contains an exit expression.
    </violation>
    <violation beginline="115" endline="115" rule="ShortVariable" ruleset="Naming Rules" externalInfoUrl="http://phpmd.org/rules/naming.html#shortvariable" priority="3">
      Avoid variables with short names like $id. Configured minimum length is 3.
    </violation>
  </file>
  <file name="/home/gapon/NetBeansProjects/TodoList/web/index.php">
    <violation beginline="77" endline="77" rule="ShortVariable" ruleset="Naming Rules" externalInfoUrl="http://phpmd.org/rules/naming.html#shortvariable" priority="3">
      Avoid variables with short names like $ex. Configured minimum length is 3.
    </violation>
    <violation beginline="106" endline="106" rule="ExitExpression" ruleset="Design Rules" externalInfoUrl="http://phpmd.org/rules/design.html#exitexpression" priority="1">
      The method loadClass() contains an exit expression.
    </violation>
    <violation beginline="150" endline="150" rule="ExitExpression" ruleset="Design Rules" externalInfoUrl="http://phpmd.org/rules/design.html#exitexpression" priority="1">
      The method runPage() contains an exit expression.
    </violation>
  </file>
</pmd>
