blob: d6177245a6716acec7e67001b1964e0abc6274e2 [file] [log] [blame]
<?xml version="1.0"?>
<!--
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.
-->
<ruleset name="Binding Rules"
xmlns="http://pmd.sourceforge.net/ruleset/2.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://pmd.sourceforge.net/ruleset/2.0.0 http://pmd.sourceforge.net/ruleset_2_0_0.xsd"
xsi:noNamespaceSchemaLocation="http://pmd.sf.net/ruleset_xml_schema.xsd">
<description>
The Binding ruleset contains a collection of good practices around usage of binding.
</description>
<rule class="org.apache.flex.pmd.rules.binding.BindingUtilsRule"
message="BindingUtils class uses hard coded strings, which won't be picked up by the compiler if you rename this attribute. You should probably consider refactoring using events">
<description></description>
<priority>1</priority>
<example>
public class Controller extends FrontController
{
public function Controller()
{
BindingUtils.bindSetter(setContent, value, "content"); // VIOLATION
}
}
</example>
</rule>
<rule class="org.apache.flex.pmd.rules.binding.ChangeWatcherRule"
message="ChangeWatcher class uses hard coded strings to specify the attribute name, to listen to. Prefer listening to events or setters">
<priority>1</priority>
<example>
public final class Title
{
private var watcher : ChangeWatcher; // VIOLATION
}
</example>
</rule>
<rule class="org.apache.flex.pmd.rules.binding.TooLongBindingExpressionRule"
message="This binding expression is too long ({0} dots maximum, but {1} actually)">
<description>A Binding expression is executed as soon as one of the bindable attributes changed. If a binding expression contains too many expression, there could be some performance issue.</description>
<priority>3</priority>
<properties>
<property name="maximum">
<value>3</value>
</property>
</properties>
<example>
<![CDATA[
<mx:Label text="{ vfrfr.frfr.frf.lala }"/> <!-- Violation-->
]]>
</example>
</rule>
</ruleset>