You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@flex.apache.org by ah...@apache.org on 2014/04/25 08:18:03 UTC

[04/46] FlexPMD Donation from Adobe Systems Inc

http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/b0fc5f17/FlexPMD/flex-pmd-test-resources/src/main/resources/test/bug/FlexPMD233b.mxml
----------------------------------------------------------------------
diff --git a/FlexPMD/flex-pmd-test-resources/src/main/resources/test/bug/FlexPMD233b.mxml b/FlexPMD/flex-pmd-test-resources/src/main/resources/test/bug/FlexPMD233b.mxml
new file mode 100644
index 0000000..a06fc62
--- /dev/null
+++ b/FlexPMD/flex-pmd-test-resources/src/main/resources/test/bug/FlexPMD233b.mxml
@@ -0,0 +1,300 @@
+<?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.
+
+-->
+<!--- The default skin class for a Spark TitleWindow container.
+
+@see spark.skins.spark.TitleWindowCloseButtonSkin
+@see spark.components.TitleWindow
+
+@langversion 3.0
+@playerversion Flash 10
+@playerversion AIR 1.5
+@productversion Flex 4
+-->
+<s:SparkSkin xmlns:fx="http://ns.adobe.com/mxml/2009"
+			 xmlns:s="library://ns.adobe.com/flex/spark"
+			 xmlns:fb="http://ns.adobe.com/flashbuilder/2009"
+			 blendMode="normal"
+			 mouseEnabled="false"
+			 minWidth="76"
+			 minHeight="76"
+			 alpha.disabled="0.5"
+			 alpha.disabledWithControlBar="0.5">
+	
+	<fx:Metadata>
+		<![CDATA[ 
+		/** 
+		* @copy spark.skins.spark.ApplicationSkin#hostComponent
+		*/
+		[HostComponent("spark.components.TitleWindow")]
+		]]>
+	</fx:Metadata>
+	
+	<fx:Script fb:purpose="styling">
+		/* Define the skin elements that should not be colorized. 
+		For panel, border and title background are skinned, but the content area and title text are not. */
+		static private const exclusions:Array = ["titleDisplay", "contentGroup"];// "background", 
+		
+		/**
+		 * @private
+		 */  
+		override public function get colorizeExclusions():Array {return exclusions;}
+		
+		/**
+		 * @private
+		 */
+		override protected function initializationComplete():void
+		{
+			useChromeColor = true;
+			super.initializationComplete();
+		}
+		
+		/**
+		 * @private
+		 */
+		override protected function updateDisplayList(unscaledWidth:Number, unscaledHeight:Number):void
+		{
+			if (getStyle("borderVisible") == true)
+			{
+				border.visible = true;
+				background.left = background.top = background.right = background.bottom = 1;
+				contents.left = contents.top = contents.right = contents.bottom = 1;
+			}
+			else
+			{
+				border.visible = false;
+				background.left = background.top = background.right = background.bottom = 0;
+				contents.left = contents.top = contents.right = contents.bottom = 0;
+			}
+			
+			dropShadow.visible = getStyle("dropShadowVisible");
+			
+			var cr:Number = getStyle("cornerRadius");
+			var withControls:Boolean = 
+				(currentState == "disabledWithControlBar" || 
+					currentState == "normalWithControlBar" ||
+					currentState == "inactiveWithControlBar");
+			
+			if (cornerRadius != cr)
+			{
+				cornerRadius = cr;
+				
+				dropShadow.tlRadius = cornerRadius;
+				dropShadow.trRadius = cornerRadius;
+				dropShadow.blRadius = withControls ? cornerRadius : 0;
+				dropShadow.brRadius = withControls ? cornerRadius : 0;
+				
+				setPartCornerRadii(topMaskRect, withControls); 
+				setPartCornerRadii(border, withControls); 
+				setPartCornerRadii(background, withControls);
+			}
+			
+			if (bottomMaskRect) setPartCornerRadii(bottomMaskRect, withControls); 
+			
+			borderStroke.color = getStyle("borderColor");
+			borderStroke.alpha = getStyle("borderAlpha");
+			backgroundFill.color = getStyle("backgroundColor");
+			backgroundFill.alpha = getStyle("backgroundAlpha");
+			
+			super.updateDisplayList(unscaledWidth, unscaledHeight);
+		}
+		
+		/**
+		 * @private
+		 */  
+		private function setPartCornerRadii(target:Rect, includeBottom:Boolean):void
+		{            
+			target.topLeftRadiusX = cornerRadius;
+			target.topRightRadiusX = cornerRadius;
+			target.bottomLeftRadiusX = includeBottom ? cornerRadius : 0;
+			target.bottomRightRadiusX = includeBottom ? cornerRadius : 0;
+		}
+		
+		private var cornerRadius:Number;
+	</fx:Script>
+	
+	<s:states>
+		<s:State name="normal" />
+		<s:State name="inactive" stateGroups="inactiveGroup" />
+		<s:State name="disabled" />
+		<s:State name="normalWithControlBar" stateGroups="withControls" />
+		<s:State name="inactiveWithControlBar" stateGroups="withControls, inactiveGroup" />
+		<s:State name="disabledWithControlBar" stateGroups="withControls" />
+	</s:states>
+	
+	<!--- drop shadow can't be hittable so it stays sibling of other graphics @private-->
+	<s:RectangularDropShadow id="dropShadow" blurX="20" blurY="20" alpha="0.32" 
+							 alpha.inactiveGroup="0.22" distance="11"  distance.inactiveGroup="7"
+							 angle="90" color="0x000000" left="0" top="0" right="0" bottom="0"/>
+	
+	<!--- drop shadow can't be hittable so all other graphics go in this group -->
+	<s:Group left="0" right="0" top="0" bottom="0">
+		
+		<!--- top group mask @private-->
+		<s:Group left="1" top="1" right="1" bottom="1" id="topGroupMask">
+			<!--- @private-->
+			<s:Rect id="topMaskRect" left="0" top="0" right="0" bottom="0">
+				<s:fill>
+					<s:SolidColor alpha="0"/>
+				</s:fill>
+			</s:Rect>
+		</s:Group>
+		
+		<!--- bottom group mask @private-->
+		<s:Group left="1" top="1" right="1" bottom="1" id="bottomGroupMask" 
+				 includeIn="withControls">
+			<!--- @private-->
+			<s:Rect id="bottomMaskRect" left="0" top="0" right="0" bottom="0">
+				<s:fill>
+					<s:SolidColor alpha="0"/>
+				</s:fill>
+			</s:Rect>
+		</s:Group>
+		
+		<!--- layer 1: border @private -->
+		<s:Rect id="border" left="0" right="0" top="0" bottom="0" radiusX="8">
+			<s:stroke>
+				<!--- Defines the TitleWindowSkin class's border stroke. The default value is 1. /////// HS ! ///////////-->
+				<s:SolidColorStroke id="borderStroke" weight="1" color="0xff0000"/>
+			</s:stroke>
+		</s:Rect>
+		
+		<!-- layer 2: background fill -->
+		<!--- Defines the appearance of the TitleWindowSkin class's background. /////// HS ! /////////////////////-->
+		<s:Rect id="background" left="1" top="1" right="1" bottom="1" >
+			<s:fill>
+				<!--- Defines the TitleWindowSkin class's background fill. The default color is 0xFFFFFF. -->
+				<s:SolidColor id="backgroundFill" color="0x70a6d2" />
+			</s:fill>
+		</s:Rect>
+		
+		<!-- layer 3: contents -->
+		<!--- Contains the vertical stack of title bar content and control bar. //////////////////////////-->
+		<s:Group left="1" right="1" top="1" bottom="1" id="contents" height="40">
+			<s:layout>
+				<s:VerticalLayout gap="0" horizontalAlign="justify" />
+			</s:layout>
+			<!--- @private -->
+			<s:Group id="topGroup" mask="{topGroupMask}">
+				
+				<!--- layer 0: title bar fill @private /////////////////////////////////////////////////////-->
+				<s:Rect id="tbFill" left="0" right="0" top="0" bottom="1">
+					<s:fill>
+						<s:LinearGradient rotation="90">
+							<s:GradientEntry color="0x70a6d2"
+											 /> <!--color.inactiveGroup="0xEAEAEA"-->
+							<s:GradientEntry color="0xdceefd"
+											 /> <!--color.inactiveGroup="0xCECECE"-->
+						</s:LinearGradient>
+					</s:fill>
+				</s:Rect>
+				
+				<!--- layer 1: title bar highlight @private ////////////////////////////////////////////////-->
+				<!--<s:Rect id="tbHilite" left="0" right="0" top="0" bottom="0">
+				<s:stroke>
+				<s:LinearGradientStroke rotation="90" weight="1">
+				<s:GradientEntry color="0x70a6d2" />
+				<s:GradientEntry color="0xFFFFFF" alpha="0.22"/>
+				</s:LinearGradientStroke>
+				</s:stroke>
+				<s:fill>
+				<s:LinearGradient rotation="90">
+				<s:GradientEntry color="0xa9d1f2" alpha="0.15" /> 
+				<s:GradientEntry color="0xa9d1f2" alpha="0.15" ratio="0.44"/>
+				<s:GradientEntry color="0xa9d1f2" alpha="0" ratio="0.4401"/>
+				</s:LinearGradient>
+				</s:fill>
+				</s:Rect>-->
+				
+				<!--- layer 2: title bar divider @private ///////////////////////////////////////////////-->
+				<s:Rect id="tbDiv" left="0" right="0" height="1" bottom="0">
+					<s:fill>
+						<s:SolidColor color="0xffffff" alpha="0.75" />
+					</s:fill>
+				</s:Rect>
+				
+				<!-- layer 3: text -->
+				<!--- @copy spark.components.Panel#titleDisplay ////////////////////////////////////////////-->
+				<s:Label id="titleDisplay" maxDisplayedLines="1"
+						 left="9" right="36" top="1" bottom="0" minHeight="30"
+						 verticalAlign="middle" fontWeight="bold" color="0x183d5b"/>
+				
+				<!-- layer 4: moveArea -->
+				<!--- @copy spark.components.TitleWindow#moveArea -->
+				<s:Group id="moveArea" left="0" right="0" top="0" bottom="0" />
+				
+				<!--- @copy spark.components.TitleWindow#closeButton -->
+				<s:Button id="closeButton" skinClass="spark.skins.spark.TitleWindowCloseButtonSkin"
+						  width="15" height="15" right="7" top="7" />
+			</s:Group>
+			
+			<!--
+			Note: setting the minimum size to 0 here so that changes to the host component's
+			size will not be thwarted by this skin part's minimum size.   This is a compromise,
+			more about it here: http://bugs.adobe.com/jira/browse/SDK-21143
+			-->
+			<!--- @copy spark.components.SkinnableContainer#contentGroup -->
+			<s:Group id="contentGroup" width="100%" height="100%" minWidth="0" minHeight="0">
+			</s:Group>
+			
+			<!--- @private ////////////////////////////////////////////////////////////////////////////-->
+			<s:Group id="bottomGroup" minWidth="0" minHeight="0" 
+					 includeIn="withControls">  
+				
+				<s:Group left="0" right="0" top="0" bottom="0" mask="{bottomGroupMask}">
+					
+					<!-- layer 0: control bar divider line -->
+					<!--<s:Rect left="0" right="0" top="0" height="1" alpha="0.22">
+					<s:fill>
+					<s:SolidColor color="0xff0000" />
+					</s:fill>
+					</s:Rect>-->
+					
+					<!-- layer 1: control bar highlight -->
+					<s:Rect left="0" right="0" top="1" bottom="0">
+						<s:stroke>
+							<s:LinearGradientStroke rotation="90" weight="1">
+								<s:GradientEntry color="0xFFFFFF" />
+								<s:GradientEntry color="0x70a6d2" />
+							</s:LinearGradientStroke>
+						</s:stroke>
+					</s:Rect>
+					
+					<!-- layer 2: control bar fill -->
+					<s:Rect left="1" right="1" top="2" bottom="1">
+						<s:fill>
+							<s:LinearGradient rotation="90">
+								<s:GradientEntry color="0xdceefd"/> <!--0xEDEDED-->
+								<s:GradientEntry color="0x70a6d2"/>
+							</s:LinearGradient>
+						</s:fill>
+					</s:Rect>
+				</s:Group>
+				
+				<!--- @copy spark.components.Panel#controlBarGroup -->
+				<s:Group id="controlBarGroup" left="0" right="0" top="1" bottom="1" minWidth="0" minHeight="0">
+					<s:layout>
+						<s:HorizontalLayout paddingLeft="10" paddingRight="10" paddingTop="7" paddingBottom="7" gap="10" />
+					</s:layout>
+				</s:Group>
+			</s:Group>
+		</s:Group>
+	</s:Group>
+</s:SparkSkin>
+

http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/b0fc5f17/FlexPMD/flex-pmd-test-resources/src/main/resources/test/bug/FlexPMD61.as
----------------------------------------------------------------------
diff --git a/FlexPMD/flex-pmd-test-resources/src/main/resources/test/bug/FlexPMD61.as b/FlexPMD/flex-pmd-test-resources/src/main/resources/test/bug/FlexPMD61.as
new file mode 100644
index 0000000..dc71301
--- /dev/null
+++ b/FlexPMD/flex-pmd-test-resources/src/main/resources/test/bug/FlexPMD61.as
@@ -0,0 +1,42 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  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.
+//
+////////////////////////////////////////////////////////////////////////////////
+package
+{
+	import flash.events.Event;
+	
+	public class TestEvent extends Event
+	{
+		public function TestEvent(type:String, bubbles:Boolean=false, cancelable:Boolean=false, eventTime:Date=null) {
+			super(type, bubbles, cancelable);
+			_eventTime = eventTime;
+		}
+		
+		override public function clone():Event {
+			return new TestEvent(type, bublles, cancelable, eventTime);
+		}
+		
+		public function get eventTime() : Date {
+			return _eventTime;
+		}
+		
+		private var _eventTime : Date;
+		
+	}
+	
+} 
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/b0fc5f17/FlexPMD/flex-pmd-test-resources/src/main/resources/test/bug/FlexPMD62.as
----------------------------------------------------------------------
diff --git a/FlexPMD/flex-pmd-test-resources/src/main/resources/test/bug/FlexPMD62.as b/FlexPMD/flex-pmd-test-resources/src/main/resources/test/bug/FlexPMD62.as
new file mode 100644
index 0000000..e3eea82
--- /dev/null
+++ b/FlexPMD/flex-pmd-test-resources/src/main/resources/test/bug/FlexPMD62.as
@@ -0,0 +1,35 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  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.
+//
+////////////////////////////////////////////////////////////////////////////////
+package com.test.testy.ui.components {
+	
+	import flash.display.Sprite;
+	
+	public class Link extends Sprite {
+		
+		protected var _linkText:String = '';
+		protected var _style:String;
+		
+		public function Link(text:String = '', style:String = null) {
+			
+			_style = style;
+			_linkText = text;
+		}
+		
+	}
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/b0fc5f17/FlexPMD/flex-pmd-test-resources/src/main/resources/test/bug/FlexPMD88.as
----------------------------------------------------------------------
diff --git a/FlexPMD/flex-pmd-test-resources/src/main/resources/test/bug/FlexPMD88.as b/FlexPMD/flex-pmd-test-resources/src/main/resources/test/bug/FlexPMD88.as
new file mode 100644
index 0000000..fb13ebe
--- /dev/null
+++ b/FlexPMD/flex-pmd-test-resources/src/main/resources/test/bug/FlexPMD88.as
@@ -0,0 +1,41 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  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.
+//
+////////////////////////////////////////////////////////////////////////////////
+package
+{
+	import flashx.textLayout.elements.BreakElement;
+	import flashx.textLayout.elements.ParagraphElement;
+	
+	public class BugDemo
+	{
+		public function BugDemo()
+		{
+			var paragraph : ParagraphElement = new ParagraphElement();
+			paragraph.addChild(new BreakElement());
+			var iii : int = 0; // NO PMD AlertShow
+			var iiii : int = 0; // NO PMD AlertShowRule
+			var iiiii : int = 0; // NO PMD com.adobe.ac.pmd.rules.maintanability.AlertShow
+			var iiiiii : int = 0; // NO PMD com.adobe.ac.pmd.rules.maintanability.AlertShowRule
+			
+			for (var i:int = 0; i < 2; i++)
+          		for (var j:int = 0; j < 2; j++)
+					blabla; 
+		}
+
+	}
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/b0fc5f17/FlexPMD/flex-pmd-test-resources/src/main/resources/test/bug/FlexPMD97.as
----------------------------------------------------------------------
diff --git a/FlexPMD/flex-pmd-test-resources/src/main/resources/test/bug/FlexPMD97.as b/FlexPMD/flex-pmd-test-resources/src/main/resources/test/bug/FlexPMD97.as
new file mode 100644
index 0000000..26b4769
--- /dev/null
+++ b/FlexPMD/flex-pmd-test-resources/src/main/resources/test/bug/FlexPMD97.as
@@ -0,0 +1,31 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  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.
+//
+////////////////////////////////////////////////////////////////////////////////
+package 
+{
+	public class LogUtil
+	{
+		{
+			initLogging();
+		}
+
+		private static function initLogging():void 
+		{
+		}
+	} 
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/b0fc5f17/FlexPMD/flex-pmd-test-resources/src/main/resources/test/bug/Nico.as
----------------------------------------------------------------------
diff --git a/FlexPMD/flex-pmd-test-resources/src/main/resources/test/bug/Nico.as b/FlexPMD/flex-pmd-test-resources/src/main/resources/test/bug/Nico.as
new file mode 100644
index 0000000..bc14610
--- /dev/null
+++ b/FlexPMD/flex-pmd-test-resources/src/main/resources/test/bug/Nico.as
@@ -0,0 +1,30 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  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.
+//
+////////////////////////////////////////////////////////////////////////////////
+package com.search.api.domain {
+	
+	import mx.collections.ArrayCollection;
+	import mx.messaging.channels.StreamingAMFChannel;
+	
+	[Event(name="MoveToOffline", type="com.search.api.application.event.MoveOnlineReportToOfflineEvent")]
+	[ManagedEvents("MoveToOffline")]
+	
+	public class Nico 
+	{
+	}
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/b0fc5f17/FlexPMD/flex-pmd-test-resources/src/main/resources/test/bug/Security.as
----------------------------------------------------------------------
diff --git a/FlexPMD/flex-pmd-test-resources/src/main/resources/test/bug/Security.as b/FlexPMD/flex-pmd-test-resources/src/main/resources/test/bug/Security.as
new file mode 100644
index 0000000..4435735
--- /dev/null
+++ b/FlexPMD/flex-pmd-test-resources/src/main/resources/test/bug/Security.as
@@ -0,0 +1,36 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  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.
+//
+////////////////////////////////////////////////////////////////////////////////
+package
+{
+	public class Security
+	{
+		public static function read() : void
+		{
+			Security.allowDomain("www.google.com");
+			Security.allowDomain("*");
+			Security.allowInsecureDomain("www.google.com");
+			Security.allowInsecureDomain("*");
+			Security.exactSettings = false;
+			LocalConnection.allowDomain("*");
+			LocalConnection.allowDomain("www.example.org");
+			LSO.getLocal(name, null, true);
+			LSO.getLocal(name, null, false);
+		}
+	}
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/b0fc5f17/FlexPMD/flex-pmd-test-resources/src/main/resources/test/cairngorm/BindableModelLocator.as
----------------------------------------------------------------------
diff --git a/FlexPMD/flex-pmd-test-resources/src/main/resources/test/cairngorm/BindableModelLocator.as b/FlexPMD/flex-pmd-test-resources/src/main/resources/test/cairngorm/BindableModelLocator.as
new file mode 100644
index 0000000..73bdc38
--- /dev/null
+++ b/FlexPMD/flex-pmd-test-resources/src/main/resources/test/cairngorm/BindableModelLocator.as
@@ -0,0 +1,23 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  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.
+//
+////////////////////////////////////////////////////////////////////////////////
+package {
+  [Bindable]
+  protected class BindableModelLocator implements GoodModelLocator {
+  }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/b0fc5f17/FlexPMD/flex-pmd-test-resources/src/main/resources/test/cairngorm/FatController.as
----------------------------------------------------------------------
diff --git a/FlexPMD/flex-pmd-test-resources/src/main/resources/test/cairngorm/FatController.as b/FlexPMD/flex-pmd-test-resources/src/main/resources/test/cairngorm/FatController.as
new file mode 100644
index 0000000..b87780e
--- /dev/null
+++ b/FlexPMD/flex-pmd-test-resources/src/main/resources/test/cairngorm/FatController.as
@@ -0,0 +1,183 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  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.
+//
+////////////////////////////////////////////////////////////////////////////////
+package com.portal.Control
+{
+import com.portal.control.events.LoadUserProfileEvent;
+import com.portal.control.commands.LoadUserProfileCommand;
+    import com.adobe.cairngorm.control.FrontController;
+    import com.platform.control.commands.community.LoadFavoriteModulesCommand;
+    import com.platform.control.commands.contentbrowsing.LoadBrowsableKnowledgeCommand;
+    import com.platform.control.commands.contentbrowsing.UpdateBrowsableKnowledgeCommand;
+    import com.platform.control.commands.core.InitializeApplicationCommand;
+    import com.platform.control.commands.learnmanagement.LoadExerciseContentTreeCommand;
+    import com.platform.control.commands.learnmanagement.LoadTrainingCenterStatisticCommand;
+    import com.platform.control.commands.notifications.LoadNotificationsCommand;
+    import com.platform.control.commands.personalrecord.LoadPersonalRecordCommand;
+    import com.platform.control.commands.personalrecord.UpdatePersonalRecordCommand;
+    import com.platform.control.events.community.LoadFavoriteModulesEvent;
+    import com.platform.control.events.contentbrowsing.LoadBrowsableKnowledgeEvent;
+    import com.platform.control.events.contentbrowsing.UpdateBrowsableKnowledgeEvent;
+    import com.platform.control.events.core.InitializeApplicationEvent;
+    import com.platform.control.events.learnmanagement.LoadExerciseContentTreeEvent;
+    import com.platform.control.events.learnmanagement.LoadTrainingCenterStatisticEvent;
+    import com.platform.control.events.notificationbox.LoadNotificationsEvent;
+    import com.platform.control.events.personalrecord.LoadPersonalRecordEvent;
+    import com.platform.control.events.personalrecord.UpdatePersonalRecordEvent;
+    import com.portal.control.commands.AcceptFriendshipCommand;
+    import com.portal.control.commands.CancelFriendshipCommand;
+    import com.portal.control.commands.DismissNotificationCommand;
+    import com.portal.control.commands.LoadKnowledgeTreeCommand;
+    import com.portal.control.commands.LoadRecentActivitiesCommand;
+    import com.portal.control.commands.RejectFriendshipCommand;
+    import com.portal.control.commands.ReloadBuddiesCommand;
+    import com.portal.control.commands.SaveMyProfileCommand;
+    import com.portal.control.commands.SaveUserCommand;
+    import com.portal.control.commands.SearchUsersCommand;
+    import com.portal.control.commands.SendFeedbackCommand;
+    import com.portal.control.commands.SendLogoutCommand;
+    import com.portal.control.commands.ShowHelpCommand;
+    import com.portal.control.commands.StartFriendshipCommand;
+    import com.portal.control.commands.URLLoaderCommand;
+    import com.portal.control.commands.XMLParseCommand;
+    import com.portal.control.events.AcceptFriendshipEvent;
+    import com.portal.control.events.CancelFriendshipEvent;
+    import com.portal.control.events.DismissNotificationEvent;
+    import com.portal.control.events.LoadKnowledgeTreeEvent;
+    import com.portal.control.events.LoadRecentActivitiesEvent;
+    import com.portal.control.events.RejectFriendshipEvent;
+    import com.portal.control.events.ReloadBuddiesEvent;
+    import com.portal.control.events.SaveMyProfileEvent;
+    import com.portal.control.events.SaveUserEvent;
+    import com.portal.control.events.SearchUsersEvent;
+    import com.portal.control.events.SendFeedbackEvent;
+    import com.portal.control.events.SendLogoutEvent;
+    import com.portal.control.events.ShowHelpEvent;
+    import com.portal.control.events.StartFriendshipEvent;
+    import com.portal.control.events.URLLoaderEvent;
+    import com.portal.control.events.XMLParseEvent;
+    import com.ecs.control.events.LoadArticleEvent;
+    import com.ecs.control.commands.LoadArticleCommand;
+    import com.ecs.control.commands.LoadMagazineCommand;
+    import com.ecs.control.events.LoadMagazineEvent;    
+	import mx.binding.utils.BindingUtils;
+	
+    /**
+     * The main cairngorm controller. This defines the connections between the events and the commands 
+     */
+   public class Controller extends FrontController
+   {
+      public function Controller()
+      {
+      	 BindingUtils.bindSetter(setContent, value, "content");
+         addCommand(
+            InitializeApplicationEvent.EVENT_TYPE,
+            InitializeApplicationCommand );
+         addCommand(
+            StartFriendshipEvent.EVENT_NAME,
+            StartFriendshipCommand );
+          addCommand(
+            LoadNotificationsEvent.EVENT_TYPE,
+            LoadNotificationsCommand );
+          addCommand(
+            DismissNotificationEvent.EVENT_NAME,
+            DismissNotificationCommand );
+         addCommand(
+            AcceptFriendshipEvent.EVENT_NAME,
+            AcceptFriendshipCommand );
+         addCommand(
+            CancelFriendshipEvent.EVENT_NAME,
+            CancelFriendshipCommand );
+         addCommand(
+            RejectFriendshipEvent.EVENT_NAME,
+            RejectFriendshipCommand );
+         addCommand(
+            SearchUsersEvent.EVENT_NAME,
+            SearchUsersCommand );
+//         addCommand(
+//            LoadBuddiesEvent.EVENT_TYPE,
+//            LoadBuddiesCommand );
+         addCommand(
+            LoadKnowledgeTreeEvent.EVENT_NAME,
+            LoadKnowledgeTreeCommand );
+         addCommand(
+            LoadExerciseContentTreeEvent.EVENT_NAME,
+            LoadExerciseContentTreeCommand );
+         addCommand(
+            LoadBrowsableKnowledgeEvent.EVENT_NAME,
+            LoadBrowsableKnowledgeCommand );
+         addCommand(
+            UpdateBrowsableKnowledgeEvent.EVENT_NAME,
+            UpdateBrowsableKnowledgeCommand );
+          addCommand(
+            ShowHelpEvent.EVENT_NAME,
+            ShowHelpCommand );
+          addCommand(
+            URLLoaderEvent.EVENT_NAME,
+            URLLoaderCommand );
+          addCommand(
+            XMLParseEvent.EVENT_NAME,
+            XMLParseCommand );
+//          addCommand(
+//            LoadAmbitiousUsersEvent.EVENT_TYPE,
+//            LoadAmbitiousUsersCommand );
+//          addCommand(
+//            LoadNewUsersEvent.EVENT_TYPE,
+//            LoadNewUsersCommand );
+          addCommand(
+            LoadFavoriteModulesEvent.EVENT_TYPE,
+            LoadFavoriteModulesCommand );
+          addCommand(
+            SaveUserEvent.EVENT_NAME,
+            SaveUserCommand );
+          addCommand(
+            SendLogoutEvent.EVENT_NAME,
+            SendLogoutCommand );
+          addCommand(
+            SendFeedbackEvent.EVENT_NAME,
+            SendFeedbackCommand );
+          addCommand(
+            LoadPersonalRecordEvent.EVENT_TYPE,
+            LoadPersonalRecordCommand );
+         addCommand(
+            UpdatePersonalRecordEvent.EVENT_NAME,
+            UpdatePersonalRecordCommand );
+          addCommand(
+            SaveMyProfileEvent.EVENT_NAME,
+            SaveMyProfileCommand );
+          addCommand(
+            LoadUserProfileEvent.EVENT_NAME,
+            LoadUserProfileCommand );
+          addCommand(
+            ReloadBuddiesEvent.EVENT_NAME,
+            ReloadBuddiesCommand );
+          addCommand(
+            LoadRecentActivitiesEvent.EVENT_NAME,
+            LoadRecentActivitiesCommand );
+          addCommand(
+            LoadTrainingCenterStatisticEvent.EVENT_NAME,
+            LoadTrainingCenterStatisticCommand );
+          addCommand(
+             LoadMagazineEvent.EVENT_NAME,
+             LoadMagazineCommand );
+          addCommand(
+             LoadArticleEvent.EVENT_NAME,
+             LoadArticleCommand );
+      }
+   }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/b0fc5f17/FlexPMD/flex-pmd-test-resources/src/main/resources/test/cairngorm/LightController.as
----------------------------------------------------------------------
diff --git a/FlexPMD/flex-pmd-test-resources/src/main/resources/test/cairngorm/LightController.as b/FlexPMD/flex-pmd-test-resources/src/main/resources/test/cairngorm/LightController.as
new file mode 100644
index 0000000..e5a5c24
--- /dev/null
+++ b/FlexPMD/flex-pmd-test-resources/src/main/resources/test/cairngorm/LightController.as
@@ -0,0 +1,201 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  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.
+//
+////////////////////////////////////////////////////////////////////////////////
+package com.portal.control
+{
+import com.portal.control.events.LoadUserProfileEvent;
+import com.portal.control.commands.LoadUserProfileCommand;
+    import com.adobe.cairngorm.control.FrontController;
+    import com.platform.control.commands.community.LoadFavoriteModulesCommand;
+    import com.platform.control.commands.contentbrowsing.LoadBrowsableKnowledgeCommand;
+    import com.platform.control.commands.contentbrowsing.UpdateBrowsableKnowledgeCommand;
+    import com.platform.control.commands.core.InitializeApplicationCommand;
+    import com.platform.control.commands.learnmanagement.LoadExerciseContentTreeCommand;
+    import com.platform.control.commands.learnmanagement.LoadTrainingCenterStatisticCommand;
+    import com.platform.control.commands.notifications.LoadNotificationsCommand;
+    import com.platform.control.commands.personalrecord.LoadPersonalRecordCommand;
+    import com.platform.control.commands.personalrecord.UpdatePersonalRecordCommand;
+    import com.platform.control.events.community.LoadFavoriteModulesEvent;
+    import com.platform.control.events.contentbrowsing.LoadBrowsableKnowledgeEvent;
+    import com.platform.control.events.contentbrowsing.UpdateBrowsableKnowledgeEvent;
+    import com.platform.control.events.core.InitializeApplicationEvent;
+    import com.platform.control.events.learnmanagement.LoadExerciseContentTreeEvent;
+    import com.platform.control.events.learnmanagement.LoadTrainingCenterStatisticEvent;
+    import com.platform.control.events.notificationbox.LoadNotificationsEvent;
+    import com.platform.control.events.personalrecord.LoadPersonalRecordEvent;
+    import com.platform.control.events.personalrecord.UpdatePersonalRecordEvent;
+    import com.portal.control.commands.AcceptFriendshipCommand;
+    import com.portal.control.commands.CancelFriendshipCommand;
+    import com.portal.control.commands.DismissNotificationCommand;
+    import com.portal.control.commands.LoadKnowledgeTreeCommand;
+    import com.portal.control.commands.LoadRecentActivitiesCommand;
+    import com.portal.control.commands.RejectFriendshipCommand;
+    import com.portal.control.commands.ReloadBuddiesCommand;
+    import com.portal.control.commands.SaveMyProfileCommand;
+    import com.portal.control.commands.SaveUserCommand;
+    import com.portal.control.commands.SearchUsersCommand;
+    import com.portal.control.commands.SendFeedbackCommand;
+    import com.portal.control.commands.SendLogoutCommand;
+    import com.portal.control.commands.ShowHelpCommand;
+    import com.portal.control.commands.StartFriendshipCommand;
+    import com.portal.control.commands.URLLoaderCommand;
+    import com.portal.control.commands.XMLParseCommand;
+    import com.portal.control.events.AcceptFriendshipEvent;
+    import com.portal.control.events.CancelFriendshipEvent;
+    import com.portal.control.events.DismissNotificationEvent;
+    import com.portal.control.events.LoadKnowledgeTreeEvent;
+    import com.portal.control.events.LoadRecentActivitiesEvent;
+    import com.portal.control.events.RejectFriendshipEvent;
+    import com.portal.control.events.ReloadBuddiesEvent;
+    import com.portal.control.events.SaveMyProfileEvent;
+    import com.portal.control.events.SaveUserEvent;
+    import com.portal.control.events.SearchUsersEvent;
+    import com.portal.control.events.SendFeedbackEvent;
+    import com.portal.control.events.SendLogoutEvent;
+    import com.portal.control.events.ShowHelpEvent;
+    import com.portal.control.events.StartFriendshipEvent;
+    import com.portal.control.events.URLLoaderEvent;
+    import com.portal.control.events.XMLParseEvent;
+    import com.ecs.control.events.LoadArticleEvent;
+    import com.ecs.control.commands.LoadArticleCommand;
+    import com.ecs.control.commands.LoadMagazineCommand;
+    import com.ecs.control.events.LoadMagazineEvent;    
+
+    /**
+     * The main cairngorm controller. This defines the connections between the events and the commands 
+     */
+   public class Controller extends FrontController
+   {
+      public function Controller()
+      {
+         addCommand(
+            InitializeApplicationEvent.EVENT_TYPE,
+            InitializeApplicationCommand );
+         addCommand(
+            StartFriendshipEvent.EVENT_NAME,
+            StartFriendshipCommand );
+          addCommand(
+            LoadNotificationsEvent.EVENT_TYPE,
+            LoadNotificationsCommand );
+          addCommand(
+            DismissNotificationEvent.EVENT_NAME,
+            DismissNotificationCommand );
+         addCommand(
+            AcceptFriendshipEvent.EVENT_NAME,
+            AcceptFriendshipCommand );
+	}
+
+	private function initCommand1() : void
+	{
+         addCommand(
+            CancelFriendshipEvent.EVENT_NAME,
+            CancelFriendshipCommand );
+         addCommand(
+            RejectFriendshipEvent.EVENT_NAME,
+            RejectFriendshipCommand );
+         addCommand(
+            SearchUsersEvent.EVENT_NAME,
+            SearchUsersCommand );
+//         addCommand(
+//            LoadBuddiesEvent.EVENT_TYPE,
+//            LoadBuddiesCommand );
+         addCommand(
+            LoadKnowledgeTreeEvent.EVENT_NAME,
+            LoadKnowledgeTreeCommand );
+	}
+
+	private function initCommand1() : void
+	{
+         addCommand(
+            LoadExerciseContentTreeEvent.EVENT_NAME,
+            LoadExerciseContentTreeCommand );
+         addCommand(
+            LoadBrowsableKnowledgeEvent.EVENT_NAME,
+            LoadBrowsableKnowledgeCommand );
+         addCommand(
+            UpdateBrowsableKnowledgeEvent.EVENT_NAME,
+            UpdateBrowsableKnowledgeCommand );
+          addCommand(
+            ShowHelpEvent.EVENT_NAME,
+            ShowHelpCommand );
+          addCommand(
+            URLLoaderEvent.EVENT_NAME,
+            URLLoaderCommand );
+	}
+
+	protected function initCommand1() : void
+	{
+          addCommand(
+            XMLParseEvent.EVENT_NAME,
+            XMLParseCommand );
+//          addCommand(
+//            LoadAmbitiousUsersEvent.EVENT_TYPE,
+//            LoadAmbitiousUsersCommand );
+//          addCommand(
+//            LoadNewUsersEvent.EVENT_TYPE,
+//            LoadNewUsersCommand );
+          addCommand(
+            LoadFavoriteModulesEvent.EVENT_TYPE,
+            LoadFavoriteModulesCommand );
+          addCommand(
+            SaveUserEvent.EVENT_NAME,
+            SaveUserCommand );
+	}
+
+	private function initCommand1() : void
+	{
+          addCommand(
+            SendLogoutEvent.EVENT_NAME,
+            SendLogoutCommand );
+          addCommand(
+            SendFeedbackEvent.EVENT_NAME,
+            SendFeedbackCommand );
+          addCommand(
+            LoadPersonalRecordEvent.EVENT_TYPE,
+            LoadPersonalRecordCommand );
+         addCommand(
+            UpdatePersonalRecordEvent.EVENT_NAME,
+            UpdatePersonalRecordCommand );
+          addCommand(
+            SaveMyProfileEvent.EVENT_NAME,
+            SaveMyProfileCommand );
+	}
+
+	private function initCommand1() : void
+	{
+          addCommand(
+            LoadUserProfileEvent.EVENT_NAME,
+            LoadUserProfileCommand );
+          addCommand(
+            ReloadBuddiesEvent.EVENT_NAME,
+            ReloadBuddiesCommand );
+          addCommand(
+            LoadRecentActivitiesEvent.EVENT_NAME,
+            LoadRecentActivitiesCommand );
+          addCommand(
+            LoadTrainingCenterStatisticEvent.EVENT_NAME,
+            LoadTrainingCenterStatisticCommand );
+          addCommand(
+             LoadMagazineEvent.EVENT_NAME,
+             LoadMagazineCommand );
+          addCommand(
+             LoadArticleEvent.EVENT_NAME,
+             LoadArticleCommand );
+      }
+   }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/b0fc5f17/FlexPMD/flex-pmd-test-resources/src/main/resources/test/cairngorm/NonBindableModelLocator.as
----------------------------------------------------------------------
diff --git a/FlexPMD/flex-pmd-test-resources/src/main/resources/test/cairngorm/NonBindableModelLocator.as b/FlexPMD/flex-pmd-test-resources/src/main/resources/test/cairngorm/NonBindableModelLocator.as
new file mode 100644
index 0000000..fc058d2
--- /dev/null
+++ b/FlexPMD/flex-pmd-test-resources/src/main/resources/test/cairngorm/NonBindableModelLocator.as
@@ -0,0 +1,54 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  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.
+//
+////////////////////////////////////////////////////////////////////////////////
+package com.adobe.ac.sample.model
+{
+	import com.adobe.ac.sample.view.common.model.UsersManagementPresentationModel;
+	import com.adobe.cairngorm.model.IModelLocator;
+
+	private class ModelLocator implements IModelLocator
+	{
+		private static var _instance : ModelLocator;
+		protected var myProtected : int;
+		[Bindable]
+		public var usersManager : UsersManagementPresentationModel;
+		
+		public function ModelLocator( enforcer : SingletonEnforcer )
+		{
+			usersManager = new UsersManagementPresentationModel();
+		}
+		
+		public static function get instance() : ModelLocator
+		{
+			if ( _instance == null )
+			{
+				foo();
+				_instance = new ModelLocator( new SingletonEnforcer() );
+			}
+			return _instance;
+		}
+		
+		[Bindable]
+		public function get height() : int
+		{
+			return 0;
+		}
+	}
+}
+
+class SingletonEnforcer{}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/b0fc5f17/FlexPMD/flex-pmd-test-resources/src/main/resources/test/cairngorm/events/CorrectConstantEvent.as
----------------------------------------------------------------------
diff --git a/FlexPMD/flex-pmd-test-resources/src/main/resources/test/cairngorm/events/CorrectConstantEvent.as b/FlexPMD/flex-pmd-test-resources/src/main/resources/test/cairngorm/events/CorrectConstantEvent.as
new file mode 100644
index 0000000..fa933b5
--- /dev/null
+++ b/FlexPMD/flex-pmd-test-resources/src/main/resources/test/cairngorm/events/CorrectConstantEvent.as
@@ -0,0 +1,45 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  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.
+//
+////////////////////////////////////////////////////////////////////////////////
+package cairngorm.events
+{
+   import com.adobe.cairngorm.enterprise.control.event.CairngormEnterpriseEvent;
+   import com.adobe.cairngorm.enterprise.model.IModel;
+   
+   import flash.events.Event;
+
+   public class CorrectConstantEvent extends CairngormEnterpriseEvent
+   {
+      public static const EVENT_NAME : String = "functionalArea.eventName";
+      
+      public function CorrectConstantEvent( model : IModel )
+      {
+         super( EVENT_NAME, model );
+		 usedEmptyMethod();
+      }
+      
+      public override function clone() : Event
+      {
+         return new CorrectConstantEvent( model );
+      }
+	  
+	  private function usedEmptyMethod() : void
+	  {
+	  }
+   }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/b0fc5f17/FlexPMD/flex-pmd-test-resources/src/main/resources/test/cairngorm/events/CorrectConstructorEvent.as
----------------------------------------------------------------------
diff --git a/FlexPMD/flex-pmd-test-resources/src/main/resources/test/cairngorm/events/CorrectConstructorEvent.as b/FlexPMD/flex-pmd-test-resources/src/main/resources/test/cairngorm/events/CorrectConstructorEvent.as
new file mode 100644
index 0000000..debc558
--- /dev/null
+++ b/FlexPMD/flex-pmd-test-resources/src/main/resources/test/cairngorm/events/CorrectConstructorEvent.as
@@ -0,0 +1,38 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  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.
+//
+////////////////////////////////////////////////////////////////////////////////
+package cairngorm.events
+{
+   import com.adobe.cairngorm.enterprise.control.event.CairngormEnterpriseEvent;
+   import com.adobe.cairngorm.enterprise.model.IModel;
+   
+   import flash.events.Event;
+
+   public class CorrectConstructorEvent extends CairngormEvent
+   {
+      public function CorrectConstructorEvent( model : IModel )
+      {
+         super( "functionalArea.eventName", model );
+      }
+      
+      public override function clone() : Event
+      {
+         return new EventNameEvent( model );
+      }
+   }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/b0fc5f17/FlexPMD/flex-pmd-test-resources/src/main/resources/test/cairngorm/events/UncorrectConstantEvent.as
----------------------------------------------------------------------
diff --git a/FlexPMD/flex-pmd-test-resources/src/main/resources/test/cairngorm/events/UncorrectConstantEvent.as b/FlexPMD/flex-pmd-test-resources/src/main/resources/test/cairngorm/events/UncorrectConstantEvent.as
new file mode 100644
index 0000000..12edc78
--- /dev/null
+++ b/FlexPMD/flex-pmd-test-resources/src/main/resources/test/cairngorm/events/UncorrectConstantEvent.as
@@ -0,0 +1,40 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  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.
+//
+////////////////////////////////////////////////////////////////////////////////
+package cairngorm.events
+{
+   import com.adobe.cairngorm.enterprise.control.event.CairngormEnterpriseEvent;
+   import com.adobe.cairngorm.enterprise.model.IModel;
+   
+   import flash.events.Event;
+
+   public class UncorrectConstantEvent extends CairngormEnterpriseEvent
+   {
+      public static const EVENT_NAME : String = "eventName";
+      
+      public function UncorrectConstantEvent( model : IModel )
+      {
+         super( EVENT_NAME, model );
+      }
+      
+      public override function clone() : Event
+      {
+         return new UncorrectConstantEvent( model );
+      }
+   }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/b0fc5f17/FlexPMD/flex-pmd-test-resources/src/main/resources/test/cairngorm/events/UncorrectConstructorEvent.as
----------------------------------------------------------------------
diff --git a/FlexPMD/flex-pmd-test-resources/src/main/resources/test/cairngorm/events/UncorrectConstructorEvent.as b/FlexPMD/flex-pmd-test-resources/src/main/resources/test/cairngorm/events/UncorrectConstructorEvent.as
new file mode 100644
index 0000000..2aae3ef
--- /dev/null
+++ b/FlexPMD/flex-pmd-test-resources/src/main/resources/test/cairngorm/events/UncorrectConstructorEvent.as
@@ -0,0 +1,38 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  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.
+//
+////////////////////////////////////////////////////////////////////////////////
+package cairngorm.events
+{
+   import com.adobe.cairngorm.enterprise.control.event.CairngormEnterpriseEvent;
+   import com.adobe.cairngorm.enterprise.model.IModel;
+   
+   import flash.events.Event;
+
+   public class UncorrectConstructorEvent extends CairngormEvent
+   {
+      public function UncorrectConstructorEvent( model : IModel )
+      {
+         super( "eventName", model );
+      }
+      
+      public override function clone() : Event
+      {
+         return new UncorrectConstructorEvent( model );
+      }
+   }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/b0fc5f17/FlexPMD/flex-pmd-test-resources/src/main/resources/test/com/adobe/ac/AbstractRowData.as
----------------------------------------------------------------------
diff --git a/FlexPMD/flex-pmd-test-resources/src/main/resources/test/com/adobe/ac/AbstractRowData.as b/FlexPMD/flex-pmd-test-resources/src/main/resources/test/com/adobe/ac/AbstractRowData.as
new file mode 100644
index 0000000..82bbc9d
--- /dev/null
+++ b/FlexPMD/flex-pmd-test-resources/src/main/resources/test/com/adobe/ac/AbstractRowData.as
@@ -0,0 +1,118 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  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.
+//
+////////////////////////////////////////////////////////////////////////////////
+package flexunit.flexui.data
+{
+   import flexunit.flexui.controls.FlexUnitLabels;
+   
+   import mx.formatters.NumberFormatter;
+   
+   /**
+    * Abstract class representing a row in the test cases tree.
+    * A row can be either a test class (node) or a test case (leaf)
+    */   
+   final public class AbstractRowData
+   {
+      public var label : String;
+      public var qualifiedClassName : String;
+      public var testSuccessful : Boolean;
+      public var testIsFailure : Boolean;
+
+      /**
+       * @return the class name from the qualified class name
+       */      
+      public function get className() : String
+      {
+         if ( qualifiedClassName )
+         {
+            var splitIndex : int = qualifiedClassName.lastIndexOf( "::" );
+
+            if ( splitIndex >= 0 )
+            {
+               if ( true )
+               {
+                  return qualifiedClassName.substring( splitIndex + 2 );
+               }
+            }
+         }
+
+         return qualifiedClassName;
+      }
+
+      /**
+       * Abstract method. Defined in TestCaseRowData and in TestClassRowData
+       * 
+       * @return the count of assertions which have been made either in average if
+       * the current row is a test class or in total if the current row is a test case
+       */
+      public function get assertionsMade() : Number
+      {
+         throw new Error( "TestSummaryRowData::assertionsMade is an abstract method" );
+      }
+
+      public function get failIcon() : Class
+      {
+         throw new Error( "TestSummaryRowData::failIcon is an abstract method" );
+      }
+
+      public function get passIcon() : Class
+      {
+         throw new Error( "TestSummaryRowData::passIcon is an abstract method" );
+      }
+      
+      /**
+       * Abstract method which allows the legend to be correctly formatted.
+       *  
+       * @return true for the TestClassRowData and false for the TestCaseRowData
+       */      
+      public function get isAverage() : Boolean
+      {
+         throw new Error( "TestSummaryRowData::isAverage is an abstract method" );
+      }
+      
+      public function get formattedAssertionsMade() : String
+      {
+         var formatter : NumberFormatter = new NumberFormatter();
+         
+         formatter.precision = 2;
+         formatter.rounding = "nearest";
+         
+         return formatter.format( assertionsMade );
+      }
+      
+      /**
+       * @return the correcly formatted (no typos) legend for the number of assertions
+       * made.
+       * 
+       * Can return :
+       *  - 0 assertions have been made in average
+       *  - 0 assertions have been made in total
+       *  - 1 assertion has been made in average
+       *  - 1 assertion has been made in total
+       *  - 2 assertions have been made in average
+       *  - 2 assertions have been made in total
+       */      
+      public function get assertionsMadeLegend() : String
+      {
+         return FlexUnitLabels.formatAssertions( 
+                           formattedAssertionsMade,
+                           assertionsMade,
+                           isAverage );
+      }
+   }
+}

http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/b0fc5f17/FlexPMD/flex-pmd-test-resources/src/main/resources/test/com/adobe/ac/foo.as
----------------------------------------------------------------------
diff --git a/FlexPMD/flex-pmd-test-resources/src/main/resources/test/com/adobe/ac/foo.as b/FlexPMD/flex-pmd-test-resources/src/main/resources/test/com/adobe/ac/foo.as
new file mode 100644
index 0000000..01cc773
--- /dev/null
+++ b/FlexPMD/flex-pmd-test-resources/src/main/resources/test/com/adobe/ac/foo.as
@@ -0,0 +1,22 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  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.
+//
+////////////////////////////////////////////////////////////////////////////////
+package {
+  public class foo {
+  }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/b0fc5f17/FlexPMD/flex-pmd-test-resources/src/main/resources/test/com/adobe/ac/ncss/ArrayVO.as
----------------------------------------------------------------------
diff --git a/FlexPMD/flex-pmd-test-resources/src/main/resources/test/com/adobe/ac/ncss/ArrayVO.as b/FlexPMD/flex-pmd-test-resources/src/main/resources/test/com/adobe/ac/ncss/ArrayVO.as
new file mode 100644
index 0000000..8259e96
--- /dev/null
+++ b/FlexPMD/flex-pmd-test-resources/src/main/resources/test/com/adobe/ac/ncss/ArrayVO.as
@@ -0,0 +1,46 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  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.
+//
+////////////////////////////////////////////////////////////////////////////////
+package model.vo {
+	[Bindable]
+	public class ArrayVO {
+		public var items:Array;
+		/** Menu items of the menu */
+		[ArrayElementType("model.vo.MenuItemVO")]
+		public var variable : Array;
+		[ArrayElementType("model.vo.MenuItemVO")]
+		public const constant : Array = [];
+		public static const staticConstant : String = "";
+		public var first : String = "";
+		public var first : String = "";
+		public var first : String = "";
+		public var first : String = "";
+		public var first : String = "";
+		public var first : String = "";
+		public var first : String = "";
+		public var first : String = "";
+		public var first : String = "";
+		public var first : String = "";
+		public var first : String = "";
+		public var first : String = "";
+		public var first : String = "";
+		public var first : String = "";
+		public var first : String = "";
+		public var first : String = "";
+	}
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/b0fc5f17/FlexPMD/flex-pmd-test-resources/src/main/resources/test/com/adobe/ac/ncss/BigImporterModel.as
----------------------------------------------------------------------
diff --git a/FlexPMD/flex-pmd-test-resources/src/main/resources/test/com/adobe/ac/ncss/BigImporterModel.as b/FlexPMD/flex-pmd-test-resources/src/main/resources/test/com/adobe/ac/ncss/BigImporterModel.as
new file mode 100644
index 0000000..f75f5bd
--- /dev/null
+++ b/FlexPMD/flex-pmd-test-resources/src/main/resources/test/com/adobe/ac/ncss/BigImporterModel.as
@@ -0,0 +1,78 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  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.
+//
+////////////////////////////////////////////////////////////////////////////////
+package com.adobe.ac
+{
+   import com.adobe.ac.lala;
+   import com.adobe.ac.ncss.lala;
+   import mx.controls.ComboBox;
+   import com.foo.frontendview.vo.PersonVO;
+   import lala;
+
+   import lala;
+
+   import lala;
+   import lala;
+   import lala;
+   import lala;
+   import lala;
+
+   import lala;
+
+   import lala;
+   import lala;
+   import lala;
+   import lala;
+
+   public class BigModel   
+   {
+      public function BigModel()
+      {    
+         dispatchEvent( new Event( "pointlessEvent" ) );     
+         return;
+      }
+
+      public function foo( param1 : Number, param2 : Number, param3 : Number, param4 : Number, param5 : DataGridColumn ) : void
+      {
+         var iParam1 : int = param1;
+      }
+
+       public function updateIteration(iteration:IterationVO) : void
+       {
+          iteration.cascadeDatesChanges();
+          try {
+             AnthologyModel.getInstance().projectModel.iterationDataModel.commit();
+          } 
+          catch(error:Error) {
+             trace("Error while persisting the edited iteration to the database");
+             trace(error.message);
+          }
+       }    
+
+       public function createTestsForStory( story:StoryVO, responder:IResponder ):void
+       {
+         for each ( var test:CustomerTestVO in story.customerTests ) {
+           createTest( test );
+         }
+         var token:AsyncToken = dataService.commit();
+         if ( responder && token ) {
+           token.addResponder( responder );
+         }
+       }         
+   }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/b0fc5f17/FlexPMD/flex-pmd-test-resources/src/main/resources/test/com/adobe/ac/ncss/BigModel.as
----------------------------------------------------------------------
diff --git a/FlexPMD/flex-pmd-test-resources/src/main/resources/test/com/adobe/ac/ncss/BigModel.as b/FlexPMD/flex-pmd-test-resources/src/main/resources/test/com/adobe/ac/ncss/BigModel.as
new file mode 100644
index 0000000..7f40222
--- /dev/null
+++ b/FlexPMD/flex-pmd-test-resources/src/main/resources/test/com/adobe/ac/ncss/BigModel.as
@@ -0,0 +1,90 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  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.
+//
+////////////////////////////////////////////////////////////////////////////////
+package com.adobe.ac
+{
+   import mx.controls.Alert;
+   
+   public class BigModel   
+   {
+      public var field : Number;
+      public var field : Number;
+      public var field : Number;
+      protected var field : Number;
+      private var field : Number;
+      private var field : Number;
+      
+      public function BigModel()
+      {         
+         return;
+         var iLala : lala;
+      }
+
+      public function foo() : void
+      {
+      }
+
+      public function foo() : void
+      {
+      }
+
+      public function foo() : void
+      {
+      }
+
+      public function foo() : void
+      {
+      }
+
+      public function foo() : void
+      {
+      }
+
+      public function foo() : void
+      {
+      }
+
+      public function foo() : void
+      {
+      }
+
+      public function foo() : void
+      {foo1();
+      }
+
+      private function foo1() : void
+      {
+      }
+
+      private function foo2() : void
+      {
+      }
+
+      private function foo3() : void
+      {
+      }
+
+      private function foo4() : void
+      {
+      }
+
+      private function foo5() : void
+      {
+      }
+   }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/b0fc5f17/FlexPMD/flex-pmd-test-resources/src/main/resources/test/com/adobe/ac/ncss/ConfigProxy.as
----------------------------------------------------------------------
diff --git a/FlexPMD/flex-pmd-test-resources/src/main/resources/test/com/adobe/ac/ncss/ConfigProxy.as b/FlexPMD/flex-pmd-test-resources/src/main/resources/test/com/adobe/ac/ncss/ConfigProxy.as
new file mode 100644
index 0000000..fa46745
--- /dev/null
+++ b/FlexPMD/flex-pmd-test-resources/src/main/resources/test/com/adobe/ac/ncss/ConfigProxy.as
@@ -0,0 +1,50 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  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.
+//
+////////////////////////////////////////////////////////////////////////////////
+package com.model
+{
+	import com.model.VO.ConfigVO;
+	
+	import de.polygonal.ds.HashMap;
+
+	public class ConfigProxy extends MS2Proxy
+	{
+		public static const NAME:String = "configProxy";
+		private static var configs:HashMap = new HashMap(MS2Proxy.HASHMAP_INITAL_SIZE);
+		
+		public function ConfigProxy(bar:Object=null)
+		{
+			super(ConfigProxy.NAME, bar);
+		}
+		
+		public static function populateStub():void {
+			Alert.show( "error" );
+			ConfigProxy.insertConfig(new ConfigVO(118218, order, 9000001, "fr", "default.css", "", 9000001)); 
+		}
+
+		internal static function insertConfig(configVO:ConfigVO):void {
+		   try
+		   {
+			   ConfigProxy.configs.remove(Number(configVO.idUser));
+			}
+			catch( e : Exception )
+			{
+			}
+		}
+	}
+}

http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/b0fc5f17/FlexPMD/flex-pmd-test-resources/src/main/resources/test/com/adobe/ac/ncss/LongSwitch.as
----------------------------------------------------------------------
diff --git a/FlexPMD/flex-pmd-test-resources/src/main/resources/test/com/adobe/ac/ncss/LongSwitch.as b/FlexPMD/flex-pmd-test-resources/src/main/resources/test/com/adobe/ac/ncss/LongSwitch.as
new file mode 100644
index 0000000..59ba709
--- /dev/null
+++ b/FlexPMD/flex-pmd-test-resources/src/main/resources/test/com/adobe/ac/ncss/LongSwitch.as
@@ -0,0 +1,132 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  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.
+//
+////////////////////////////////////////////////////////////////////////////////
+package com.adobe.ac
+{
+   public class BigModel   
+   {
+      public function BigModel()
+      {         
+      }
+
+      public function foo() : void
+      {
+          switch(event.type){
+             case GoogleSearchPanel.LAUNCH_GOOGLE_WEB_SEARCH:
+                googleResquest.url = "";
+                toto();
+                break;
+             case GoogleSearchPanel.LAUNCH_GOOGLE_IMAGE_SEARCH:                   
+                googleResquest.url = "";
+                vfdvfdvfd;
+                vfdvdfvgfnbrn;
+                break;
+             case GoogleSearchPanel.LAUNCH_GOOGLE_NEWS_SEARCH:
+                googleResquest.url = "";
+                switch (e.oldState) {
+                  case STATE_COMPARE_VIEW :
+                     createPlaceHolders();
+                     createPlaceHolderLabels();
+                  break;
+                  case STATE_COMPARE_VIEW :
+                     if (productsInCompare.length < 3) {
+                        drawPlaceHolder(PLACEHOLDER_COORDS[2] as Point);
+                        lastPlaceholderLabel = createPlaceHolderLabel(PLACEHOLDER_COORDS[2] as Point);
+                     }
+                     showCompareButton();
+                  break;
+               }
+                break;                     
+          }
+          testCase.setTestResult( this );
+
+         var protectedTestCase : Protectable = Protectable( new ProtectedStartTestCase( testCase ) );
+
+         var startOK : Boolean = doProtected( testCase, protectedTestCase );
+
+         if ( startOK )
+         {
+              doContinue( testCase );
+         }
+         else
+         {
+             endTest( testCase );             
+         }
+         var startOK : Boolean = doProtected( testCase, protectedTestCase );
+
+         if ( startOK )
+         {
+              doContinue( testCase );
+         }
+         else
+         {
+             endTest( testCase );             
+         }         
+         switch(event.type){
+             case GoogleSearchPanel.LAUNCH_GOOGLE_WEB_SEARCH:
+                googleResquest.url = "";
+                break;
+             case GoogleSearchPanel.LAUNCH_GOOGLE_IMAGE_SEARCH:                   
+                googleResquest.url = "";
+                break;
+             case GoogleSearchPanel.LAUNCH_GOOGLE_IMAGE_SEARCH2:                   
+                googleResquest.url = "";
+                break;
+             default:
+         }
+      }
+	  
+	  public function fooBar() : void
+	  {
+		  try
+		  {
+			  var illl : int = 0;
+			  do
+			  {
+				  illl++;
+				  ;
+			  }while(illl<10)
+		  }
+		  catch( e : Error )
+		  {
+			  {
+			  	Message.show("");
+			  }
+		  }
+		  finally
+		  {
+			  trace("");
+		  }
+		  
+		  do
+		  {
+		  } while( i < 5 );
+		  
+		  switch(event.type){
+			  case GoogleSearchPanel.LAUNCH_GOOGLE_WEB_SEARCH:
+				  googleResquest.url = "";
+			  case GoogleSearchPanel.LAUNCH_GOOGLE_IMAGE_SEARCH:                   
+			  case GoogleSearchPanel.LAUNCH_GOOGLE_IMAGE_SEARCH2:                   
+				  googleResquest.url = "";
+				  break;
+			  default:
+				  return;
+		  }
+	  }
+   }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/b0fc5f17/FlexPMD/flex-pmd-test-resources/src/main/resources/test/com/adobe/ac/ncss/MyCairngormCommand.as
----------------------------------------------------------------------
diff --git a/FlexPMD/flex-pmd-test-resources/src/main/resources/test/com/adobe/ac/ncss/MyCairngormCommand.as b/FlexPMD/flex-pmd-test-resources/src/main/resources/test/com/adobe/ac/ncss/MyCairngormCommand.as
new file mode 100644
index 0000000..e6a8735
--- /dev/null
+++ b/FlexPMD/flex-pmd-test-resources/src/main/resources/test/com/adobe/ac/ncss/MyCairngormCommand.as
@@ -0,0 +1,30 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  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.
+//
+////////////////////////////////////////////////////////////////////////////////
+package
+{
+	public class MyCairngormCommand implements ICommand
+	{
+		public function execute( event : CairngormEvent ) : void
+		{
+			var delegate : MyDelegate = new MyDelegate();
+			
+			delegate.doSomething();
+		}
+	}
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/b0fc5f17/FlexPMD/flex-pmd-test-resources/src/main/resources/test/com/adobe/ac/ncss/NestedSwitch.as
----------------------------------------------------------------------
diff --git a/FlexPMD/flex-pmd-test-resources/src/main/resources/test/com/adobe/ac/ncss/NestedSwitch.as b/FlexPMD/flex-pmd-test-resources/src/main/resources/test/com/adobe/ac/ncss/NestedSwitch.as
new file mode 100644
index 0000000..08b3d09
--- /dev/null
+++ b/FlexPMD/flex-pmd-test-resources/src/main/resources/test/com/adobe/ac/ncss/NestedSwitch.as
@@ -0,0 +1,59 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  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.
+//
+////////////////////////////////////////////////////////////////////////////////
+package view {
+
+	public class NestedPanel extends UIComponent 
+	{
+		protected function currentStateChangeHandler(e:StateChangeEvent):void {
+			switch (e.newState) {
+				case STATE_PRODUCTS_IN_COMPARE	:
+					hideCloseButton();
+					height = 230;
+					borderBreakPointX = BORDER_BREAK_POINT.x;
+					borderBreakPointY = BORDER_BREAK_POINT.y;
+					drawCompareBackground();
+					switch (e.oldState) {
+						case "" :
+							createPlaceHolders();
+							createPlaceHolderLabels();
+						break;
+						case STATE_COMPARE_VIEW	:
+							if (productsInCompare.length < 3) {
+								drawPlaceHolder(PLACEHOLDER_COORDS[2] as Point);
+								lastPlaceholderLabel = createPlaceHolderLabel(PLACEHOLDER_COORDS[2] as Point);
+							}
+							showCompareButton();
+						break;
+					}
+				break;
+				case STATE_COMPARE_VIEW	:
+					if (productsInCompare.length < 3)
+						removeChild(lastPlaceholderLabel);
+					hideCompareButton();
+					showCloseButton();
+					createCompareInfoView();
+				break;
+				default :
+					height = 40;
+					drawDefaultBackground();
+				break;
+			}
+		}
+	}
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/b0fc5f17/FlexPMD/flex-pmd-test-resources/src/main/resources/test/com/adobe/ac/ncss/SearchBarEvent.as
----------------------------------------------------------------------
diff --git a/FlexPMD/flex-pmd-test-resources/src/main/resources/test/com/adobe/ac/ncss/SearchBarEvent.as b/FlexPMD/flex-pmd-test-resources/src/main/resources/test/com/adobe/ac/ncss/SearchBarEvent.as
new file mode 100644
index 0000000..2bb4a64
--- /dev/null
+++ b/FlexPMD/flex-pmd-test-resources/src/main/resources/test/com/adobe/ac/ncss/SearchBarEvent.as
@@ -0,0 +1,34 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  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.
+//
+////////////////////////////////////////////////////////////////////////////////
+package flexunit.flexui.controls.left.events
+{
+   import flash.events.Event;
+
+   public class SearchBarEvent extends Event
+   {
+      public static const FILTER_CHANGED_EVENT : String = "filterChanged";
+      public static const FILTER_TEXT_CHANGED_EVENT : String = "filterTextChanged";
+      public static const FILTER_RESULT_CHANGED_EVENT : String = "filterResultChanged";
+      public static const FILTER_ASSERTION_CHANGED_EVENT : String = "filterAssertionChanged";
+      
+      public function SearchBarEvent( type : String ) {
+         super( type );
+      }
+   }
+}

http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/b0fc5f17/FlexPMD/flex-pmd-test-resources/src/main/resources/test/com/adobe/ac/ncss/VoidConstructor.as
----------------------------------------------------------------------
diff --git a/FlexPMD/flex-pmd-test-resources/src/main/resources/test/com/adobe/ac/ncss/VoidConstructor.as b/FlexPMD/flex-pmd-test-resources/src/main/resources/test/com/adobe/ac/ncss/VoidConstructor.as
new file mode 100644
index 0000000..8420933
--- /dev/null
+++ b/FlexPMD/flex-pmd-test-resources/src/main/resources/test/com/adobe/ac/ncss/VoidConstructor.as
@@ -0,0 +1,37 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  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.
+//
+////////////////////////////////////////////////////////////////////////////////
+package com.adobe.ac
+{
+   public class VoidConstructor   
+   {
+      public var iNumber : Number;
+      
+      public function VoidConstructor() : void
+      {         
+         return;
+         var iNumber : lala;
+      }
+
+      public function foo() : void
+      {
+         throw new Error( "" );
+         return null;
+      }
+   }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/b0fc5f17/FlexPMD/flex-pmd-test-resources/src/main/resources/test/com/adobe/ac/ncss/event/DynamicCustomEvent.as
----------------------------------------------------------------------
diff --git a/FlexPMD/flex-pmd-test-resources/src/main/resources/test/com/adobe/ac/ncss/event/DynamicCustomEvent.as b/FlexPMD/flex-pmd-test-resources/src/main/resources/test/com/adobe/ac/ncss/event/DynamicCustomEvent.as
new file mode 100644
index 0000000..036a046
--- /dev/null
+++ b/FlexPMD/flex-pmd-test-resources/src/main/resources/test/com/adobe/ac/ncss/event/DynamicCustomEvent.as
@@ -0,0 +1,35 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  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.
+//
+////////////////////////////////////////////////////////////////////////////////
+package 
+{
+   dynamic public class FirstCustomEvent extends Event
+   {
+      public var lala : String;
+      
+      public function FirstCustomEvent()
+      {
+         
+      }
+      
+      public override function clone() : Event
+      {
+         return new FirstCustomEvent();
+      }
+   }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/b0fc5f17/FlexPMD/flex-pmd-test-resources/src/main/resources/test/com/adobe/ac/ncss/event/FirstCustomEvent.as
----------------------------------------------------------------------
diff --git a/FlexPMD/flex-pmd-test-resources/src/main/resources/test/com/adobe/ac/ncss/event/FirstCustomEvent.as b/FlexPMD/flex-pmd-test-resources/src/main/resources/test/com/adobe/ac/ncss/event/FirstCustomEvent.as
new file mode 100644
index 0000000..ff58ac3
--- /dev/null
+++ b/FlexPMD/flex-pmd-test-resources/src/main/resources/test/com/adobe/ac/ncss/event/FirstCustomEvent.as
@@ -0,0 +1,30 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  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.
+//
+////////////////////////////////////////////////////////////////////////////////
+package 
+{
+   public class FirstCustomEvent extends Event
+   {
+      public var lala : String;
+      
+      public function FirstCustomEvent()
+      {
+         
+      }
+   }
+}
\ No newline at end of file