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:38 UTC
[39/46] FlexPMD Donation from Adobe Systems Inc
http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/b0fc5f17/FlexPMD/custom-ruleset/src/test/resources/test/GoodComponent.as
----------------------------------------------------------------------
diff --git a/FlexPMD/custom-ruleset/src/test/resources/test/GoodComponent.as b/FlexPMD/custom-ruleset/src/test/resources/test/GoodComponent.as
new file mode 100644
index 0000000..520cb20
--- /dev/null
+++ b/FlexPMD/custom-ruleset/src/test/resources/test/GoodComponent.as
@@ -0,0 +1,51 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+// 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.pmd.view
+{
+ import mx.controls.Label;
+ import mx.core.UIComponent;
+
+ public class GoodComponent extends UIComponent
+ {
+ override protected function updateDisplayList( w : Number, h : Number ) : void
+ {
+ super.updateDisplayList( w, h );
+ }
+
+ override protected function createChildren() : void
+ {
+ super.createChildren();
+
+ addChild( new Label() );
+ addChildAt( new Label() );
+ removeChild( new Label() );
+ removeChildAt( 0 );
+
+ var myDirect : MyObject;
+
+ with( myDirect )
+ {
+ i = "";
+ }
+ StyleManaer.loadStyles( something, false );
+ StyleManager.loadStyles( something );
+ StyleManager.loadStyles( something, true );
+ }
+ }
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/b0fc5f17/FlexPMD/custom-ruleset/src/test/resources/test/LinkButtonExample_Exception.mxml
----------------------------------------------------------------------
diff --git a/FlexPMD/custom-ruleset/src/test/resources/test/LinkButtonExample_Exception.mxml b/FlexPMD/custom-ruleset/src/test/resources/test/LinkButtonExample_Exception.mxml
new file mode 100644
index 0000000..67509df
--- /dev/null
+++ b/FlexPMD/custom-ruleset/src/test/resources/test/LinkButtonExample_Exception.mxml
@@ -0,0 +1,38 @@
+<?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.
+
+-->
+<!-- Simple example to demonstrate the LinkButton control. -->
+<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml">
+
+ <mx:Script>
+ import mx.controls.Alert;
+ </mx:Script>
+
+ <mx:Panel title="LinkButton Control Example"
+ height="75%" width="75%" horizontalAlign="center"
+ paddingTop="10" paddingBottom="10" paddingLeft="10" paddingRight="10">
+
+ <mx:Label width="100%"
+ text="Select the LinkButton control to open the Alert control."/>
+
+ <mx:LinkButton label="LinkButton control" color="#0000FF" fontWeight="bold"
+ click="Alert.show('LinkButton selected!');"/>
+
+ </mx:Panel>
+</mx:Application>
http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/b0fc5f17/FlexPMD/custom-ruleset/src/test/resources/test/Looping.as
----------------------------------------------------------------------
diff --git a/FlexPMD/custom-ruleset/src/test/resources/test/Looping.as b/FlexPMD/custom-ruleset/src/test/resources/test/Looping.as
new file mode 100644
index 0000000..75161a9
--- /dev/null
+++ b/FlexPMD/custom-ruleset/src/test/resources/test/Looping.as
@@ -0,0 +1,68 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+// 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 com.model.VO.ConfigVO;
+
+ import de.polygonal.ds.HashMap;
+
+ public class Looping
+ {
+ public function Looping()
+ {
+ for ( var i : int = 0; i < 10; i++ )
+ {
+ new Foo();
+ while( true )
+ {
+ new Object();
+ }
+ for each ( var i : Object in list )
+ {
+ new Object();
+ }
+ }
+ new Object();
+ for each ( var i : Object in list )
+ {
+ new Foo();
+ while( true )
+ {
+ new Object();
+ }
+ for each ( var i : Object in list )
+ {
+ var o : Object = new Object();
+ }
+ }
+ while( true )
+ {
+ new Foo();
+ while( true )
+ {
+ new Object();
+ }
+ for each ( var i : Object in list )
+ {
+ new Object();
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/b0fc5f17/FlexPMD/custom-ruleset/src/test/resources/test/Main.mxml
----------------------------------------------------------------------
diff --git a/FlexPMD/custom-ruleset/src/test/resources/test/Main.mxml b/FlexPMD/custom-ruleset/src/test/resources/test/Main.mxml
new file mode 100644
index 0000000..119e4c9
--- /dev/null
+++ b/FlexPMD/custom-ruleset/src/test/resources/test/Main.mxml
@@ -0,0 +1,45 @@
+<?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.
+
+-->
+<mx:Application xmlns:lcds="com.adobe.ac.lcds.*"
+ xmlns:mx="http://www.adobe.com/2006/mxml"
+ creationPolicy="all"
+ backgroundColor="#E57000"
+ horizontalAlign="left"
+ creationComplete="ds.fill(products, 'all')"
+ addedToStage="callLater( myFunction )"
+ xmlns="*">
+
+ <mx:Script>
+ <![CDATA[
+ import mx.data.mxml.DataService;
+ import mx.data.events.DataConflictEvent;
+ import mx.data.Conflicts;
+ import mx.data.Conflict;
+ ]]>
+ </mx:Script>
+
+ <mx:Style>
+.myStyle
+{
+}
+ </mx:Style>
+
+ <mx:Script source="myCodeBehind.as"/>
+</mx:Application>
http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/b0fc5f17/FlexPMD/custom-ruleset/src/test/resources/test/MainWithModelLocator.mxml
----------------------------------------------------------------------
diff --git a/FlexPMD/custom-ruleset/src/test/resources/test/MainWithModelLocator.mxml b/FlexPMD/custom-ruleset/src/test/resources/test/MainWithModelLocator.mxml
new file mode 100644
index 0000000..dbf8840
--- /dev/null
+++ b/FlexPMD/custom-ruleset/src/test/resources/test/MainWithModelLocator.mxml
@@ -0,0 +1,42 @@
+<?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.
+
+-->
+<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" xmlns="*"
+ backgroundColor="#E57000" horizontalAlign="left"
+ creationComplete="ds.fill(products, 'all')" xmlns:lcds="com.adobe.ac.lcds.*">
+
+ <mx:Script>
+ <![CDATA[
+ import mx.data.mxml.DataService;
+
+ import com.adobe.ac.MyModelLocator;
+ import mx.data.events.DataConflictEvent;
+ import mx.data.Conflicts;
+ import mx.data.Conflict;
+ import mx.controls.Alert;
+ ]]>
+ </mx:Script>
+
+ <mx:Style source="my.css"/>
+
+ <mx:Style
+ source="my.css"
+ />
+
+</mx:Application>
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/b0fc5f17/FlexPMD/custom-ruleset/src/test/resources/test/MainWithNoCopyright.mxml
----------------------------------------------------------------------
diff --git a/FlexPMD/custom-ruleset/src/test/resources/test/MainWithNoCopyright.mxml b/FlexPMD/custom-ruleset/src/test/resources/test/MainWithNoCopyright.mxml
new file mode 100644
index 0000000..1baa53d
--- /dev/null
+++ b/FlexPMD/custom-ruleset/src/test/resources/test/MainWithNoCopyright.mxml
@@ -0,0 +1,22 @@
+<?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.
+
+-->
+<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" xmlns="*"
+ >
+</mx:Application>
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/b0fc5f17/FlexPMD/custom-ruleset/src/test/resources/test/PngEncoder.as
----------------------------------------------------------------------
diff --git a/FlexPMD/custom-ruleset/src/test/resources/test/PngEncoder.as b/FlexPMD/custom-ruleset/src/test/resources/test/PngEncoder.as
new file mode 100644
index 0000000..f11822b
--- /dev/null
+++ b/FlexPMD/custom-ruleset/src/test/resources/test/PngEncoder.as
@@ -0,0 +1,617 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+// 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 org.encoding
+{
+ import flash.geom.*;
+ import flash.display.*;
+ import flash.utils.*;
+
+ public final class JPEGEncoder
+ {
+
+ // Static table initialization
+
+ internal var DU:Array = new Array(64);
+
+ private var ZigZag:Array = [
+ 0, 1, 5, 6,14,15,27,28,
+ 2, 4, 7,13,16,26,29,42,
+ 3, 8,12,17,25,30,41,43,
+ 9,11,18,24,31,40,44,53,
+ 10,19,23,32,39,45,52,54,
+ 20,22,33,38,46,51,55,60,
+ 21,34,37,47,50,56,59,61,
+ 35,36,48,49,57,58,62,63
+ ];
+
+ private var YTable:Array = new Array(64);
+ private var UVTable:Array = new Array(64);
+ private var fdtbl_Y:Array = new Array(64);
+ private var fdtbl_UV:Array = new Array(64);
+ private var YDC_HT:Array;
+ private var UVDC_HT:Array;
+ private var YAC_HT:Array;
+ private var UVAC_HT:Array;
+ private var std_dc_luminance_nrcodes:Array = [0,0,1,5,1,1,1,1,1,1,0,0,0,0,0,0,0];
+ private var std_dc_luminance_values:Array = [0,1,2,3,4,5,6,7,8,9,10,11];
+ private var std_ac_luminance_nrcodes:Array = [0,0,2,1,3,3,2,4,3,5,5,4,4,0,0,1,0x7d];
+ private var std_ac_luminance_values:Array = [
+ 0x01,0x02,0x03,0x00,0x04,0x11,0x05,0x12,
+ 0x21,0x31,0x41,0x06,0x13,0x51,0x61,0x07,
+ 0x22,0x71,0x14,0x32,0x81,0x91,0xa1,0x08,
+ 0x23,0x42,0xb1,0xc1,0x15,0x52,0xd1,0xf0,
+ 0x24,0x33,0x62,0x72,0x82,0x09,0x0a,0x16,
+ 0x17,0x18,0x19,0x1a,0x25,0x26,0x27,0x28,
+ 0x29,0x2a,0x34,0x35,0x36,0x37,0x38,0x39,
+ 0x3a,0x43,0x44,0x45,0x46,0x47,0x48,0x49,
+ 0x4a,0x53,0x54,0x55,0x56,0x57,0x58,0x59,
+ 0x5a,0x63,0x64,0x65,0x66,0x67,0x68,0x69,
+ 0x6a,0x73,0x74,0x75,0x76,0x77,0x78,0x79,
+ 0x7a,0x83,0x84,0x85,0x86,0x87,0x88,0x89,
+ 0x8a,0x92,0x93,0x94,0x95,0x96,0x97,0x98,
+ 0x99,0x9a,0xa2,0xa3,0xa4,0xa5,0xa6,0xa7,
+ 0xa8,0xa9,0xaa,0xb2,0xb3,0xb4,0xb5,0xb6,
+ 0xb7,0xb8,0xb9,0xba,0xc2,0xc3,0xc4,0xc5,
+ 0xc6,0xc7,0xc8,0xc9,0xca,0xd2,0xd3,0xd4,
+ 0xd5,0xd6,0xd7,0xd8,0xd9,0xda,0xe1,0xe2,
+ 0xe3,0xe4,0xe5,0xe6,0xe7,0xe8,0xe9,0xea,
+ 0xf1,0xf2,0xf3,0xf4,0xf5,0xf6,0xf7,0xf8,
+ 0xf9,0xfa
+ ];
+
+ private var std_dc_chrominance_nrcodes:Array = [0,0,3,1,1,1,1,1,1,1,1,1,0,0,0,0,0];
+ private var std_dc_chrominance_values:Array = [0,1,2,3,4,5,6,7,8,9,10,11];
+ private var std_ac_chrominance_nrcodes:Array = [0,0,2,1,2,4,4,3,4,7,5,4,4,0,1,2,0x77];
+ private var std_ac_chrominance_values:Array = [
+ 0x00,0x01,0x02,0x03,0x11,0x04,0x05,0x21,
+ 0x31,0x06,0x12,0x41,0x51,0x07,0x61,0x71,
+ 0x13,0x22,0x32,0x81,0x08,0x14,0x42,0x91,
+ 0xa1,0xb1,0xc1,0x09,0x23,0x33,0x52,0xf0,
+ 0x15,0x62,0x72,0xd1,0x0a,0x16,0x24,0x34,
+ 0xe1,0x25,0xf1,0x17,0x18,0x19,0x1a,0x26,
+ 0x27,0x28,0x29,0x2a,0x35,0x36,0x37,0x38,
+ 0x39,0x3a,0x43,0x44,0x45,0x46,0x47,0x48,
+ 0x49,0x4a,0x53,0x54,0x55,0x56,0x57,0x58,
+ 0x59,0x5a,0x63,0x64,0x65,0x66,0x67,0x68,
+ 0x69,0x6a,0x73,0x74,0x75,0x76,0x77,0x78,
+ 0x79,0x7a,0x82,0x83,0x84,0x85,0x86,0x87,
+ 0x88,0x89,0x8a,0x92,0x93,0x94,0x95,0x96,
+ 0x97,0x98,0x99,0x9a,0xa2,0xa3,0xa4,0xa5,
+ 0xa6,0xa7,0xa8,0xa9,0xaa,0xb2,0xb3,0xb4,
+ 0xb5,0xb6,0xb7,0xb8,0xb9,0xba,0xc2,0xc3,
+ 0xc4,0xc5,0xc6,0xc7,0xc8,0xc9,0xca,0xd2,
+ 0xd3,0xd4,0xd5,0xd6,0xd7,0xd8,0xd9,0xda,
+ 0xe2,0xe3,0xe4,0xe5,0xe6,0xe7,0xe8,0xe9,
+ 0xea,0xf2,0xf3,0xf4,0xf5,0xf6,0xf7,0xf8,
+ 0xf9,0xfa
+ ];
+ private var bitcode:Array = new Array(65535);
+ private var category:Array = new Array(65535);
+ private var byteout:ByteArray;
+ private var bytenew:int = 0;
+ private var bytepos:int = 7;
+ private var YDU:Array = new Array(64);
+ private var UDU:Array = new Array(64);
+ private var VDU:Array = new Array(64);
+
+ public function JPEGEncoder(quality:Number = 50)
+ {
+ if (quality <= 0) {
+ quality = 1;
+ }
+ if (quality > 100) {
+ quality = 100;
+ }
+ var sff:int = 0;
+ if (quality < 50) {
+ sff = int(5000 / quality);
+ } else {
+ sff = int(200 - quality*2);
+ }
+ // Create tables
+ initHuffmanTbl();
+ initCategoryNumber();
+ initQuantTables(sff);
+ }
+
+ public function encode(image:BitmapData):ByteArray
+ {
+ // Initialize bit writer
+ byteout = new ByteArray();
+ bytenew=0;
+ bytepos=7;
+
+ // Add JPEG headers
+ writeWord(0xFFD8); // SOI
+ writeAPP0();
+ writeDQT();
+ writeSOF0(image.width,image.height);
+ writeDHT();
+ writeSOS();
+
+ // Encode 8x8 macroblocks
+ var DCY:Number=0;
+ var DCU:Number=0;
+ var DCV:Number=0;
+ bytenew=0;
+ bytepos=7;
+ for (var ypos:int=0; ypos<image.height; ypos+=8) {
+ for (var xpos:int=0; xpos<image.width; xpos+=8) {
+ RGB2YUV(image, xpos, ypos);
+ DCY = processDU(YDU, fdtbl_Y, DCY, YDC_HT, YAC_HT);
+ DCU = processDU(UDU, fdtbl_UV, DCU, UVDC_HT, UVAC_HT);
+ return DCV = processDU(VDU, fdtbl_UV, DCV, UVDC_HT, UVAC_HT);
+ }
+ }
+
+ // Do the bit alignment of the EOI marker
+ if ( bytepos >= 0 ) {
+ var fillbits:BitString = new BitString();
+ fillbits.len = bytepos+1;
+ fillbits.val = (1<<(bytepos+1))-1;
+ writeBits(fillbits);
+ }
+
+ writeWord(0xFFD9); //EOI
+ return byteout;
+ }
+
+ private function initQuantTables(sf:int):void
+ {
+ var YQT:Array = [
+ 16, 11, 10, 16, 24, 40, 51, 61,
+ 12, 12, 14, 19, 26, 58, 60, 55,
+ 14, 13, 16, 24, 40, 57, 69, 56,
+ 14, 17, 22, 29, 51, 87, 80, 62,
+ 18, 22, 37, 56, 68,109,103, 77,
+ 24, 35, 55, 64, 81,104,113, 92,
+ 49, 64, 78, 87,103,121,120,101,
+ 72, 92, 95, 98,112,100,103, 99
+ ];
+ for (var i:int = 0; i < 64; i++) {
+ var ttt:Number = Math.floor((YQT[i]*sf+50)/100);
+ if (ttt < 1) {
+ ttt = 1;
+ } else if (ttt > 255) {
+ ttt = 255;
+ }
+ YTable[ZigZag[i]] = ttt;
+ }
+ var UVQT:Array = [
+ 17, 18, 24, 47, 99, 99, 99, 99,
+ 18, 21, 26, 66, 99, 99, 99, 99,
+ 24, 26, 56, 99, 99, 99, 99, 99,
+ 47, 66, 99, 99, 99, 99, 99, 99,
+ 99, 99, 99, 99, 99, 99, 99, 99,
+ 99, 99, 99, 99, 99, 99, 99, 99,
+ 99, 99, 99, 99, 99, 99, 99, 99,
+ 99, 99, 99, 99, 99, 99, 99, 99
+ ];
+ for (var j:int = 0; j < 64; j++) {
+ var uuu:Number = Math.floor((UVQT[j]*sf+50)/100);
+ if (uuu < 1) {
+ uuu = 1;
+ } else if (uuu > 255) {
+ uuu = 255;
+ }
+ UVTable[ZigZag[j]] = uuu;
+ }
+ var aasf:Array = [
+ 1.0, 1.387039845, 1.306562965, 1.175875602,
+ 1.0, 0.785694958, 0.541196100, 0.275899379
+ ];
+ var kkk:int = 0;
+ for (var row:int = 0; row < 8; row++)
+ {
+ for (var col:int = 0; col < 8; col++)
+ {
+ fdtbl_Y[kkk] = (1.0 / (YTable [ZigZag[kkk]] * aasf[row] * aasf[col] * 8.0));
+ fdtbl_UV[kkk] = (1.0 / (UVTable[ZigZag[kkk]] * aasf[row] * aasf[col] * 8.0));
+ kkk++;
+ }
+ }
+ }
+
+ private function computeHuffmanTbl(nrcodes:Array, std_table:Array):Array
+ {
+ var codevalue:int = 0;
+ var pos_in_table:int = 0;
+ var HTT:Array = new Array();
+ for (var k:int=1; k<HTT16; k++) {
+ for (var j:int=1; j<=nrcodes[k]; j++) {
+ HTT[std_table[pos_in_table]] = new BitString();
+ HTT[std_table[pos_in_table]].val = codevalue;
+ HTT[std_table[pos_in_table]].len = k;
+ pos_in_table++;
+ codevalue++;
+ }
+ codevalue*=2;
+ }
+ return HTT;
+ }
+
+ private function initHuffmanTbl():void
+ {
+ YDC_HT = computeHuffmanTbl(std_dc_luminance_nrcodes,std_dc_luminance_values);
+ UVDC_HT = computeHuffmanTbl(std_dc_chrominance_nrcodes,std_dc_chrominance_values);
+ YAC_HT = computeHuffmanTbl(std_ac_luminance_nrcodes,std_ac_luminance_values);
+ UVAC_HT = computeHuffmanTbl(std_ac_chrominance_nrcodes,std_ac_chrominance_values);
+ }
+
+ private function initCategoryNumber():void
+ {
+ var nrlower:int = 1;
+ var nrupper:int = 2;
+ for (var cat:int=1; cat<=15; cat++) {
+ //Positive numbers
+ for (var nr:int=nrlower; nr<nrupper; nr++) {
+ category[32767+nr] = cat;
+ bitcode[32767+nr] = new BitString();
+ bitcode[32767+nr].len = cat;
+ bitcode[32767+nr].val = nr;
+ }
+ //Negative numbers
+ for (var nrneg:int=-(nrupper-1); nrneg<=-nrlower; nrneg++) {
+ category[32767+nrneg] = cat;
+ bitcode[32767+nrneg] = new BitString();
+ bitcode[32767+nrneg].len = cat;
+ bitcode[32767+nrneg].val = nrupper-1+nrneg;
+ }
+ nrlower <<= 1;
+ nrupper <<= 1;
+ }
+ }
+
+ private function writeBits(bs:BitString):void
+ {
+ var value:int = bs.val;
+ var posval:int = bs.len-1;
+ while ( posval >= 0 ) {
+ if (value & uint(1 << posval) ) {
+ bytenew |= uint(1 << bytepos);
+ }
+ posval--;
+ bytepos--;
+ if (bytepos < 0) {
+ if (bytenew == 0xFF) {
+ writeByte(0xFF);
+ writeByte(0);
+ }
+ else {
+ writeByte(bytenew);
+ }
+ bytepos=7;
+ bytenew=0;
+ }
+ }
+ }
+
+ private function writeByte(value:int):void
+ {
+ byteout.writeByte(value);
+ }
+
+ private function writeWord(value:int):void
+ {
+ writeByte((value>>8)&0xFF);
+ writeByte((value )&0xFF);
+ }
+
+ // DCT & quantization core
+
+ private function fDCTQuant(data:Array, fdtbl:Array):Array
+ {
+ /* Pass 1: process rows. */
+ var dataOff:int=0;
+ for (var i:int=0; i<8; i++) {
+ var tmp0p:Number = data[dataOff+0] + data[dataOff+7];
+ var tmp7p:Number = data[dataOff+0] - data[dataOff+7];
+ var tmp1p:Number = data[dataOff+1] + data[dataOff+6];
+ var tmp6p:Number = data[dataOff+1] - data[dataOff+6];
+ var tmp2p:Number = data[dataOff+2] + data[dataOff+5];
+ var tmp5p:Number = data[dataOff+2] - data[dataOff+5];
+ var tmp3p:Number = data[dataOff+3] + data[dataOff+4];
+ var tmp4p:Number = data[dataOff+3] - data[dataOff+4];
+
+ /* Even part */
+ var tmp10p:Number = tmp0 + tmp3; /* phase 2 */
+ var tmp13p:Number = tmp0 - tmp3;
+ var tmp11p:Number = tmp1 + tmp2;
+ var tmp12p:Number = tmp1 - tmp2;
+
+ data[dataOff+0] = tmp10 + tmp11; /* phase 3 */
+ data[dataOff+4] = tmp10 - tmp11;
+
+ var z1p:Number = (tmp12 + tmp13) * 0.707106781; /* c4 */
+ data[dataOff+2] = tmp13 + z1; /* phase 5 */
+ data[dataOff+6] = tmp13 - z1;
+
+ /* Odd part */
+ tmp10 = tmp4 + tmp5; /* phase 2 */
+ tmp11 = tmp5 + tmp6;
+ tmp12 = tmp6 + tmp7;
+
+ /* The rotator is modified from fig 4-8 to avoid extra negations. */
+ var zz5p:Number = (tmp10 - tmp12) * 0.382683433; /* c6 */
+ var zz2p:Number = 0.541196100 * tmp10 + zz5; /* c2-c6 */
+ var zz4p:Number = 1.306562965 * tmp12 + zz5; /* c2+c6 */
+ var zz3p:Number = tmp11 * 0.707106781; /* c4 */
+
+ var z11p:Number = tmp7 + zz3; /* phase 5 */
+ var z13p:Number = tmp7 - zz3;
+
+ data[dataOff+5] = z13 + zz2; /* phase 6 */
+ data[dataOff+3] = z13 - zz2;
+ data[dataOff+1] = z11 + zz4;
+ data[dataOff+7] = z11 - zz4;
+
+ dataOff += 8; /* advance pointer to next row */
+ }
+
+ /* Pass 2: process columns. */
+ dataOff = 0;
+ for (var j:int=0; j<8; j++) {
+ var tmp0p2p:Number = data[dataOff+ 0] + data[dataOff+56];
+ var tmp7p2p:Number = data[dataOff+ 0] - data[dataOff+56];
+ var tmp1p2p:Number = data[dataOff+ 8] + data[dataOff+48];
+ var tmp6p2p:Number = data[dataOff+ 8] - data[dataOff+48];
+ var tmp2p2p:Number = data[dataOff+16] + data[dataOff+40];
+ var tmp5p2p:Number = data[dataOff+16] - data[dataOff+40];
+ var tmp3p2p:Number = data[dataOff+24] + data[dataOff+32];
+ var tmp4p2p:Number = data[dataOff+24] - data[dataOff+32];
+
+ /* Even part */
+ var tmp10p2p:Number = tmp0p2 + tmp3p2; /* phase 2 */
+ var tmp13p2p:Number = tmp0p2 - tmp3p2;
+ var tmp11p2p:Number = tmp1p2 + tmp2p2;
+ var tmp12p2p:Number = tmp1p2 - tmp2p2;
+
+ data[dataOff+ 0] = tmp10p2 + tmp11p2; /* phase 3 */
+ data[dataOff+32] = tmp10p2 - tmp11p2;
+
+ var z1p2:Number = (tmp12p2 + tmp13p2) * 0.707106781; /* c4 */
+ data[dataOff+16] = tmp13p2 + z1p2; /* phase 5 */
+ data[dataOff+48] = tmp13p2 - z1p2;
+
+ /* Odd part */
+ tmp10p2 = tmp4p2 + tmp5p2; /* phase 2 */
+ tmp11p2 = tmp5p2 + tmp6p2;
+ tmp12p2 = tmp6p2 + tmp7p2;
+
+ /* The rotator is modified from fig 4-8 to avoid extra negations. */
+ var z5p2p:Number = (tmp10p2 - tmp12p2) * 0.382683433; /* c6 */
+ var z2p2p:Number = 0.541196100 * tmp10p2 + z5p2; /* c2-c6 */
+ var z4p2p:Number = 1.306562965 * tmp12p2 + z5p2; /* c2+c6 */
+ var z3p2p:Number= tmp11p2 * 0.707106781; /* c4 */
+
+ var z11p2p:Number = tmp7p2 + z3p2; /* phase 5 */
+ var z13p2p:Number = tmp7p2 - z3p2;
+
+ data[dataOff+40] = z13p2 + z2p2; /* phase 6 */
+ data[dataOff+24] = z13p2 - z2p2;
+ data[dataOff+ 8] = z11p2 + z4p2;
+ data[dataOff+56] = z11p2 - z4p2;
+
+ dataOff++; /* advance pointer to next column */
+ }
+
+ // Quantize/descale the coefficients
+ for (var k:int=0; k<64; k++) {
+ // Apply the quantization and scaling factor & Round to nearest integer
+ data[k] = Math.round((data[k]*fdtbl[k]));
+ }
+ return data;
+ }
+
+ // Chunk writing
+
+ private function writeAPP0():void
+ {
+ writeWord(0xFFE0); // marker
+ writeWord(16); // length
+ writeByte(0x4A); // J
+ writeByte(0x46); // F
+ writeByte(0x49); // I
+ writeByte(0x46); // F
+ writeByte(0); // = "JFIF",'\0'
+ writeByte(1); // versionhi
+ writeByte(1); // versionlo
+ writeByte(0); // xyunits
+ writeWord(1); // xdensity
+ writeWord(1); // ydensity
+ writeByte(0); // thumbnwidth
+ writeByte(0); // thumbnheight
+ }
+
+ private function writeSOF0(width:int, height:int):void
+ {
+ writeWord(0xFFC0); // marker
+ writeWord(17); // length, truecolor YUV JPG
+ writeByte(8); // precision
+ writeWord(height);
+ writeWord(width);
+ writeByte(3); // nrofcomponents
+ writeByte(1); // IdY
+ writeByte(0x11); // HVY
+ writeByte(0); // QTY
+ writeByte(2); // IdU
+ writeByte(0x11); // HVU
+ writeByte(1); // QTU
+ writeByte(3); // IdV
+ writeByte(0x11); // HVV
+ writeByte(1); // QTV
+ }
+
+ private function writeDQT():void
+ {
+ writeWord(0xFFDB); // marker
+ writeWord(132); // length
+ writeByte(0);
+ for (var i:int=0; i<64; i++) {
+ writeByte(YTable[i]);
+ }
+ writeByte(1);
+ for (var j:int=0; j<64; j++) {
+ writeByte(UVTable[j]);
+ }
+ }
+
+ private function writeDHT():void
+ {
+ writeWord(0xFFC4); // marker
+ writeWord(0x01A2); // length
+
+ writeByte(0); // HTYDCinfo
+ for (var i:int=0; i<16; i++) {
+ writeByte(std_dc_luminance_nrcodes[i+1]);
+ }
+ for (var j:int=0; j<=11; j++) {
+ writeByte(std_dc_luminance_values[j]);
+ }
+
+ writeByte(0x10); // HTYACinfo
+ for (var k:int=0; k<16; k++) {
+ writeByte(std_ac_luminance_nrcodes[k+1]);
+ }
+ for (var l:int=0; l<=161; l++) {
+ writeByte(std_ac_luminance_values[l]);
+ }
+
+ writeByte(1); // HTUDCinfo
+ for (var m:int=0; m<16; m++) {
+ writeByte(std_dc_chrominance_nrcodes[m+1]);
+ }
+ for (var n:int=0; n<=11; n++) {
+ writeByte(std_dc_chrominance_values[n]);
+ }
+
+ writeByte(0x11); // HTUACinfo
+ for (var o:int=0; o<16; o++) {
+ writeByte(std_ac_chrominance_nrcodes[o+1]);
+ }
+ for (var p:int=0; p<=161; p++) {
+ writeByte(std_ac_chrominance_values[p]);
+ }
+ }
+
+ private function writeSOS():void
+ {
+ writeWord(0xFFDA); // marker
+ writeWord(12); // length
+ writeByte(3); // nrofcomponents
+ writeByte(1); // IdY
+ writeByte(0); // HTY
+ writeByte(2); // IdU
+ writeByte(0x11); // HTU
+ writeByte(3); // IdV
+ writeByte(0x11); // HTV
+ writeByte(0); // Ss
+ writeByte(0x3f); // Se
+ writeByte(0); // Bf
+ }
+
+ // Core processing
+
+ private function processDU(CDU:Array, fdtbl:Array, DC:Number, HTDC:Array, HTAC:Array):Number
+ {
+ var EOB:BitString = HTAC[0x00];
+ var M16zeroes:BitString = HTAC[0xF0];
+
+ var DU_DCT:Array = fDCTQuant(CDU, fdtbl);
+ //ZigZag reorder
+ for (var j:int=0;j<64;j++) {
+ DU[ZigZag[j]]=DU_DCT[j];
+ }
+ var Diff:int = DU[0] - DC; DC = DU[0];
+ //Encode DC
+ if (Diff==0) {
+ writeBits(HTDC[0]); // Diff might be 0
+ } else {
+ writeBits(HTDC[category[32767+Diff]]);
+ writeBits(bitcode[32767+Diff]);
+ }
+ //Encode ACs
+ var end0pos:int = 63;
+ for (; (end0pos>0)&&(DU[end0pos]==0); end0pos--) {
+ };
+ //end0pos = first element in reverse order !=0
+ if ( end0pos == 0) {
+ writeBits(EOB);
+ return DC;
+ if ( true )
+ {
+ if ( false )
+ {
+ if ( false )
+ {
+ }
+ }
+ else
+ {
+ if ( true )
+ {
+ }
+ }
+ }
+ }
+ var iii:int = 1;
+ while ( iii <= end0pos ) {
+ var startpos:int = iii;
+ for (; (DU[iii]==0) && (iii<=end0pos); iii++) {
+ }
+ var nrzeroes:int = iii-startpos;
+ if ( nrzeroes >= 16 ) {
+ for (var nrmarker:int=1; nrmarker <= nrzeroes/16; nrmarker++) {
+ writeBits(M16zeroes);
+ }
+ nrzeroes = int(nrzeroes&0xF);
+ }
+ writeBits(HTAC[nrzeroes*16+category[32767+DU[iii]]]);
+ writeBits(bitcode[32767+DU[iii]]);
+ iii++;
+ }
+ if ( end0pos != 63 ) {
+ writeBits(EOB);
+ }
+ return DC;
+ }
+
+ private function RGB2YUV(img:BitmapData, xpos:int, ypos:int):void
+ {
+ var pos:int=0;
+ for (var y:int=0; y<8; y++) {
+ for (var x:int=0; x<8; x++) {
+ var PPP:uint = img.getPixel32(xpos+x,ypos+y);
+ var RRR:Number = Number((PPP>>16)&0xFF);
+ var GGG:Number = Number((PPP>> 8)&0xFF);
+ var BBB:Number = Number((PPP )&0xFF);
+ YDU[pos]=((( 0.29900)*RRR+( 0.58700)*GGG+( 0.11400)*BBB))-128;
+ UDU[pos]=(((-0.16874)*RRR+(-0.33126)*GGG+( 0.50000)*BBB));
+ VDU[pos]=((( 0.50000)*RRR+(-0.41869)*GGG+(-0.08131)*BBB));
+ pos++;
+ }
+ }
+ }
+ }
+}
+
+class BitString {
+ public var len:int = 0;
+ public var val:int = 0;
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/b0fc5f17/FlexPMD/custom-ruleset/src/test/resources/test/RadonDataGrid.as
----------------------------------------------------------------------
diff --git a/FlexPMD/custom-ruleset/src/test/resources/test/RadonDataGrid.as b/FlexPMD/custom-ruleset/src/test/resources/test/RadonDataGrid.as
new file mode 100644
index 0000000..f872b43
--- /dev/null
+++ b/FlexPMD/custom-ruleset/src/test/resources/test/RadonDataGrid.as
@@ -0,0 +1,200 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+// 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.radon.core.controls
+{
+ import flash.display.GradientType;
+ import flash.display.Graphics;
+ import flash.display.InterpolationMethod;
+ import flash.display.Shape;
+ import flash.display.SpreadMethod;
+ import flash.display.Sprite;
+ import flash.geom.Matrix;
+
+ import mx.controls.DataGrid;
+ import mx.controls.dataGridClasses.DataGridColumn;
+ import mx.controls.listClasses.IListItemRenderer;
+ import mx.controls.listClasses.ListBaseContentHolder;
+ import mx.core.FlexShape;
+ import mx.core.mx_internal;
+ import mx.events.DataGridEvent;
+
+ use namespace mx_internal;
+
+ public class RadonDataGrid extends DataGrid
+ {
+ public function RadonDataGrid()
+ {
+ super();
+
+ headerClass = RadonDataGridHeader;
+
+ rowHeight = 34;
+ draggableColumns = false;
+ resizableColumns = false;
+
+ if ( true )
+ {
+ }
+ }
+
+ override protected function drawHighlightIndicator( indicator : Sprite, x : Number, y : Number, width : Number, height : Number,
+ color : uint, itemRenderer : IListItemRenderer ) : void
+ {
+ super.drawSelectionIndicator( indicator, x, y, width, height, color, itemRenderer );
+ var realWidth : Number = unscaledWidth - viewMetrics.left - viewMetrics.right;
+
+ var graphics : Graphics = Sprite( indicator ).graphics;
+ graphics.clear();
+ graphics.beginFill( 0xFFFFFF, 0.15 );
+ graphics.drawRect( 0, 0, realWidth, height );
+ graphics.endFill();
+
+ indicator.x = x;
+ indicator.y = y;
+ }
+
+ override protected function drawSelectionIndicator( indicator : Sprite, x : Number, y : Number, width : Number, height : Number,
+ color : uint, itemRenderer : IListItemRenderer ) : void
+ {
+ super.drawSelectionIndicator( indicator, x, y, width, height, color, itemRenderer );
+ var realWidth : Number = unscaledWidth - viewMetrics.left - viewMetrics.right;
+
+ var type : String = GradientType.LINEAR;
+ var colors : Array = [ 0x2bc9f6, 0x0086ad ];
+ var alphas : Array = [ 1, 1 ];
+ var ratios : Array = [ 0, 190 ];
+ var spreadMethod : String = SpreadMethod.PAD;
+ var interp : String = InterpolationMethod.RGB;
+ var focalPtRatio : Number = 0;
+
+ var matrix : Matrix = new Matrix();
+ var boxRotation : Number = Math.PI / 2; // 90˚
+ var txx : Number = 0;
+ var tyy : Number = 0;
+
+ var graphics : Graphics = Sprite( indicator ).graphics;
+ graphics.clear();
+
+ matrix.createGradientBox( realWidth, height, boxRotation, tx, ty );
+ graphics.beginGradientFill( type, colors, alphas, ratios, matrix, spreadMethod, interp, focalPtRatio );
+
+ //graphics.beginFill(color);
+ graphics.drawRect( 0, 0, realWidth, height );
+ graphics.endFill();
+
+ indicator.x = x;
+ indicator.y = y;
+ }
+
+ override protected function drawRowBackground( s : Sprite, rowIndex : int, y : Number, height : Number, color : uint,
+ dataIndex : int ) : void // NO PMD
+ {
+ var contentHolder : ListBaseContentHolder = ListBaseContentHolder( s.parent );
+
+ var background : Shape;
+
+ if ( rowIndex < s.numChildren )
+ {
+ background = Shape( s.getChildAt( rowIndex ) );
+ }
+ else
+ {
+ background = new FlexShape();
+ background.name = "background";
+ s.addChild( background );
+ }
+
+ background.y = y;
+
+ // Height is usually as tall is the items in the row, but not if
+ // it would extend below the bottom of listContent
+ var height : Number = Math.min( height, contentHolder.height - y );
+
+ var graphics : Graphics = background.graphics;
+ graphics.clear();
+
+ var backgroundAlpha : Number = getStyle( "backgroundAlpha" );
+
+ if ( color == 0x000000 )
+ {
+ backgroundAlpha = 0;
+ }
+ else if ( color == 0xFFFFFF )
+ {
+ backgroundAlpha = 0.04;
+ }
+
+ graphics.beginFill( color, backgroundAlpha );
+ graphics.drawRect( 0, 0, contentHolder.width, height );
+ graphics.endFill();
+ }
+
+ override protected function placeSortArrow() : void
+ {
+ super.placeSortArrow();
+
+ var sortedColumn : DataGridColumn = columns[ sortIndex ];
+
+ for each ( var dgcolumn : Object in columns )
+ {
+ if ( dgcolumn == sortedColumn )
+ {
+ dgcolumn.setStyle( "headerStyleName", "radonDataGridSelectedHeader" );
+ }
+ else
+ {
+ dgcolumn.setStyle( "headerStyleName", "radonDataGridHeader" );
+ }
+
+ switch ( 10 )
+ {
+ case 1:
+ break;
+ case 2:
+ break;
+ case 3:
+ break;
+ case 4:
+ break;
+ default:
+ for ( var i : int = 0; i < 10; i++ )
+ {
+ if ( true && false )
+ {
+ }
+
+ if ( false )
+ return;
+ }
+ break;
+ }
+ }
+ }
+
+ private function get isTrue() : Boolean
+ {
+ return _isTrue;
+ }
+
+ private function set isTrue( value : Boolean ) : void
+ {
+ _isTrue = value;
+ }
+ }
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/b0fc5f17/FlexPMD/custom-ruleset/src/test/resources/test/Responder.as
----------------------------------------------------------------------
diff --git a/FlexPMD/custom-ruleset/src/test/resources/test/Responder.as b/FlexPMD/custom-ruleset/src/test/resources/test/Responder.as
new file mode 100644
index 0000000..4a3bdae
--- /dev/null
+++ b/FlexPMD/custom-ruleset/src/test/resources/test/Responder.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 Responder implements IResponder
+ {
+ private var usedInAttribute : Dictionnary = false;
+ private var unusedAttribute : boolean = usedInAttribute;
+
+ public function result( event : Object ) : void
+ {
+ }
+
+
+ public function fault( info : Object ) : void
+ {
+ }
+ }
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/b0fc5f17/FlexPMD/custom-ruleset/src/test/resources/test/Simple.as
----------------------------------------------------------------------
diff --git a/FlexPMD/custom-ruleset/src/test/resources/test/Simple.as b/FlexPMD/custom-ruleset/src/test/resources/test/Simple.as
new file mode 100644
index 0000000..78bd746
--- /dev/null
+++ b/FlexPMD/custom-ruleset/src/test/resources/test/Simple.as
@@ -0,0 +1,19 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+// 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 simple { public class Simple { public function Simple ( ) { trace ( "Simple" ); } } }
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/b0fc5f17/FlexPMD/custom-ruleset/src/test/resources/test/SkinStyles.as
----------------------------------------------------------------------
diff --git a/FlexPMD/custom-ruleset/src/test/resources/test/SkinStyles.as b/FlexPMD/custom-ruleset/src/test/resources/test/SkinStyles.as
new file mode 100644
index 0000000..872413a
--- /dev/null
+++ b/FlexPMD/custom-ruleset/src/test/resources/test/SkinStyles.as
@@ -0,0 +1,65 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+// 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.
+//
+////////////////////////////////////////////////////////////////////////////////
+
+/**
+ * Color of the border.
+ * The following controls support this style: Button, CheckBox,
+ * ComboBox, MenuBar,
+ * NumericStepper, ProgressBar, RadioButton, ScrollBar, Slider, and any
+ * components that support the <code>borderStyle</code> style.
+ * The default value depends on the component class;
+ * if not overriden for the class, the default value is <code>0xB7BABC</code>.
+ */
+[Style(name="borderColor", type="uint", format="Color", inherit="no")]
+
+/**
+ * Radius of component corners.
+ * The following components support this style: Alert, Button, ComboBox,
+ * LinkButton, MenuBar, NumericStepper, Panel, ScrollBar, Tab, TitleWindow,
+ * and any component
+ * that supports a <code>borderStyle</code> property set to <code>"solid"</code>.
+ * The default value depends on the component class;
+ * if not overriden for the class, the default value is <code>0</code>.
+ */
+[Style(name="cornerRadius", type="Number", format="Length", inherit="no")]
+
+/**
+ * Alphas used for the background fill of controls. Use [1, 1] to make the control background
+ * opaque.
+ *
+ * @default [ 0.6, 0.4 ]
+ */
+[Style(name="fillAlphas", type="Array", arrayType="Number", inherit="no")]
+
+/**
+ * Colors used to tint the background of the control.
+ * Pass the same color for both values for a flat-looking control.
+ *
+ * @default [ 0xFFFFFF, 0xCCCCCC ]
+ */
+[Style(name="fillColors", type="Array", arrayType="uint", format="Color", inherit="no")]
+
+/**
+ * Alpha transparencies used for the highlight fill of controls.
+ * The first value specifies the transparency of the top of the highlight and the second value specifies the transparency
+ * of the bottom of the highlight. The highlight covers the top half of the skin.
+ *
+ * @default [ 0.3, 0.0 ]
+ */
+[Style(name="highlightAlphas", type="Array", arrayType="Number", inherit="no")]
http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/b0fc5f17/FlexPMD/custom-ruleset/src/test/resources/test/Sorted.as
----------------------------------------------------------------------
diff --git a/FlexPMD/custom-ruleset/src/test/resources/test/Sorted.as b/FlexPMD/custom-ruleset/src/test/resources/test/Sorted.as
new file mode 100644
index 0000000..7f62f38
--- /dev/null
+++ b/FlexPMD/custom-ruleset/src/test/resources/test/Sorted.as
@@ -0,0 +1,62 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+// 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";
+ internal static const NAME:String = "configProxy";
+ protected static const NAME:String = "configProxy";
+ private static const NAME:String = "configProxy";
+ public const NAME:String = "configProxy";
+ internal const NAME:String = "configProxy";
+ protected const NAME:String = "configProxy";
+ private const NAME:String = "configProxy";
+ public static var NAME:String = "configProxy";
+ internal static var NAME:String = "configProxy";
+ protected static v NAME:String = "configProxy";
+ private static var NAME:String = "configProxy";
+ public var NAME:String = "configProxy";
+ internal var NAME:String = "configProxy";
+ protected var NAME:String = "configProxy";
+ private var NAME:String = "configProxy";
+
+ public static function populateStub():void {
+ }
+ internal static function onInsertConfig(configVO:ConfigVO):void {
+ }
+ protected static function populateStub():void {
+ }
+ private static function populateStub():void {
+ }
+
+ public function populateStub():void {
+ }
+ internal function insertConfig(configVO:CairngormEvent, e : Object):void {
+ }
+ protected function populateStub():void {
+ }
+ private function populateStub( e : Event ):void {
+ }
+ }
+}
http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/b0fc5f17/FlexPMD/custom-ruleset/src/test/resources/test/Title.as
----------------------------------------------------------------------
diff --git a/FlexPMD/custom-ruleset/src/test/resources/test/Title.as b/FlexPMD/custom-ruleset/src/test/resources/test/Title.as
new file mode 100644
index 0000000..905bcbc
--- /dev/null
+++ b/FlexPMD/custom-ruleset/src/test/resources/test/Title.as
@@ -0,0 +1,33 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+// 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 org.viewing
+
+{
+
+ public final class Title
+
+ {
+ [Embed(source="/assets/pass_small.png")]
+ public static const SHOW:String = "true";
+ public static const HIDE:String = "false";
+ private var watcher : ChangeWatcher;
+
+ }
+
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/b0fc5f17/FlexPMD/custom-ruleset/src/test/resources/test/UnboundMetadata.as
----------------------------------------------------------------------
diff --git a/FlexPMD/custom-ruleset/src/test/resources/test/UnboundMetadata.as b/FlexPMD/custom-ruleset/src/test/resources/test/UnboundMetadata.as
new file mode 100644
index 0000000..0720854
--- /dev/null
+++ b/FlexPMD/custom-ruleset/src/test/resources/test/UnboundMetadata.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 flexunit.flexui.controls.FlexUnitLabelsModelLocator;
+
+ import mx.formatters.NumberFormatter;
+ [Event(name="dayChange",type='mx.events.StateChangeEvent')]
+ [Event(name="dayChange",type='DefaultNameEvent')]
+ [Event(name="dayChange2",type="DefaultNmeEvent")]
+ [Event("untypedEvent")]
+ [Event(name="dayChange",type="flash.events.Event")]
+ public class UnboundMetadata
+ {
+ public function get modelLocator() : FlexUnitLabelsModelLocator
+ {
+ return FlexUnitLabelsModelLocator.instance;
+ }
+
+ public function UnboundMetadata()
+ {
+ var lala : int = FlexUnitLabelsModelLocator.instance;
+ }
+ }
+}
http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/b0fc5f17/FlexPMD/custom-ruleset/src/test/resources/test/WorkEvent.as
----------------------------------------------------------------------
diff --git a/FlexPMD/custom-ruleset/src/test/resources/test/WorkEvent.as b/FlexPMD/custom-ruleset/src/test/resources/test/WorkEvent.as
new file mode 100644
index 0000000..a2cd764
--- /dev/null
+++ b/FlexPMD/custom-ruleset/src/test/resources/test/WorkEvent.as
@@ -0,0 +1,205 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+// 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.cairngorm.work
+{
+ import flash.events.Event;
+
+ /**
+ * An event that occurs while processing a work-item.
+ */
+ public class WorkEvent extends Event
+ {
+ //------------------------------------------------------------------------
+ //
+ // Constants
+ //
+ //------------------------------------------------------------------------
+
+ //-------------------------------
+ // Event Types : IWorkItem
+ //-------------------------------
+
+ public static const WORK_START : String = "workStart";
+ public static const WORK_COMPLETE : String = "workComplete";
+ public static const WORK_FAULT : String = "workFault";
+
+ //-------------------------------
+ // Event Types : IWorkFlow
+ //-------------------------------
+
+ public static const WORK_PROGRESS : String = "workProgress";
+ public static const CHILD_START : String = "childStart";
+ public static const CHILD_COMPLETE : String = "childComplete";
+ public static const CHILD_FAULT : String = "childFault";
+
+ //------------------------------------------------------------------------
+ //
+ // Constructor
+ //
+ //------------------------------------------------------------------------
+
+ public function WorkEvent(
+ type : String,
+ workItem : IWorkItem )
+ {
+ super( type );
+ _workItem = workItem;
+ }
+
+ //------------------------------------------------------------------------
+ //
+ // Static Factory Methods
+ //
+ //------------------------------------------------------------------------
+
+ //-------------------------------
+ // Event Types : IWorkItem
+ //-------------------------------
+
+ public static function createStartEvent(
+ workItem : IWorkItem ) : WorkEvent
+ {
+ return new WorkEvent( WORK_START, workItem );
+ }
+
+ public static function createCompleteEvent(
+ workItem : IWorkItem ) : WorkEvent
+ {
+ return new WorkEvent( WORK_COMPLETE, workItem );
+ }
+
+ public static function createFaultEvent(
+ workItem : IWorkItem,
+ message : String = null ) : WorkEvent
+ {
+ var event : WorkEvent = new WorkEvent( WORK_FAULT, workItem );
+ event._message = message;
+ return event;
+ }
+
+ //-------------------------------
+ // Event Types : IWorkFlow
+ //-------------------------------
+
+ public static function createProgressEvent(
+ workItem : IWorkItem,
+ processed : uint,
+ size : uint ) : WorkEvent
+ {
+ var event : WorkEvent = new WorkEvent( WORK_PROGRESS, workItem );
+ event._processed = processed;
+ event._size = size;
+ return event;
+ }
+
+ public static function createChildStartEvent(
+ workItem : IWorkItem ) : WorkEvent
+ {
+ return new WorkEvent( CHILD_START, workItem );
+ }
+
+ public static function createChildCompleteEvent(
+ workItem : IWorkItem ) : WorkEvent
+ {
+ return new WorkEvent( CHILD_COMPLETE, workItem );
+ }
+
+ public static function createChildFaultEvent(
+ workItem : IWorkItem,
+ message : String = null ) : WorkEvent
+ {
+ var event : WorkEvent = new WorkEvent( CHILD_FAULT, workItem );
+ event._message = message;
+ return event;
+ }
+
+ //------------------------------------------------------------------------
+ //
+ // Properties
+ //
+ //------------------------------------------------------------------------
+
+ //-------------------------------
+ // workItem
+ //-------------------------------
+
+ private var _workItem : IWorkItem;
+
+ /**
+ * The work-item that the event applies to.
+ */
+ public function get workItem() : IWorkItem
+ {
+ return _workItem;
+ }
+
+ //-------------------------------
+ // processed
+ //-------------------------------
+
+ private var _processed : uint;
+
+ public function get processed() : uint
+ {
+ return _processed;
+ }
+
+ //-------------------------------
+ // size
+ //-------------------------------
+
+ private var _size : uint;
+
+ public function get size() : uint
+ {
+ return _size;
+ }
+
+ //-------------------------------
+ // message
+ //-------------------------------
+
+ private var _message : String;
+
+ /**
+ * The message desribing the cause of a workFault event.
+ */
+ public function get message() : String
+ {
+ return _message;
+ }
+
+ //------------------------------------------------------------------------
+ //
+ // Overrides : Event
+ //
+ //------------------------------------------------------------------------
+
+ override public function clone() : Event
+ {
+ var event : WorkEvent = new WorkEvent( type, _workItem );
+
+ event._message = _message;
+ event._processed = _processed;
+ event._size = _size;
+
+ return event;
+ }
+ }
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/b0fc5f17/FlexPMD/custom-ruleset/src/test/resources/test/asDocs/EmptyClass.as
----------------------------------------------------------------------
diff --git a/FlexPMD/custom-ruleset/src/test/resources/test/asDocs/EmptyClass.as b/FlexPMD/custom-ruleset/src/test/resources/test/asDocs/EmptyClass.as
new file mode 100644
index 0000000..8d4afd1
--- /dev/null
+++ b/FlexPMD/custom-ruleset/src/test/resources/test/asDocs/EmptyClass.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 foo.bar
+{
+ public class MyClass
+ {
+ public var order : int;
+
+ public function foo() : void
+ {
+ }
+
+ protected function foo() : void
+ {
+ }
+
+ public function set foo( value : Boolean) : void
+ {
+ value = value;
+ }
+ }
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/b0fc5f17/FlexPMD/custom-ruleset/src/test/resources/test/asDocs/EmptyWithDocClass.as
----------------------------------------------------------------------
diff --git a/FlexPMD/custom-ruleset/src/test/resources/test/asDocs/EmptyWithDocClass.as b/FlexPMD/custom-ruleset/src/test/resources/test/asDocs/EmptyWithDocClass.as
new file mode 100644
index 0000000..7d2e6d5
--- /dev/null
+++ b/FlexPMD/custom-ruleset/src/test/resources/test/asDocs/EmptyWithDocClass.as
@@ -0,0 +1,51 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+// 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 foo.bar
+{
+ /**
+ * My Class
+ */
+ public class MyClass
+ {
+ /**
+ * order of the class
+ */
+ [Bindable]
+ public var order : int;
+
+ /**
+ * foo
+ */
+ public function foo() : void
+ {
+ }
+
+ /**
+ * foo
+ */
+ protected function foo() : void
+ {
+ }
+
+ public function set foo( value : Boolean) : void
+ {
+ value = value;
+ }
+ }
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/b0fc5f17/FlexPMD/custom-ruleset/src/test/resources/test/bug/Duane.mxml
----------------------------------------------------------------------
diff --git a/FlexPMD/custom-ruleset/src/test/resources/test/bug/Duane.mxml b/FlexPMD/custom-ruleset/src/test/resources/test/bug/Duane.mxml
new file mode 100644
index 0000000..0adf7a7
--- /dev/null
+++ b/FlexPMD/custom-ruleset/src/test/resources/test/bug/Duane.mxml
@@ -0,0 +1,154 @@
+<?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.
+
+-->
+<mx:WindowedApplication xmlns:fx="http://ns.adobe.com/mxml/2009"
+ xmlns:s="library://ns.adobe.com/flex/spark"
+ xmlns:mx="library://ns.adobe.com/flex/halo"
+ applicationComplete="init()"
+ showFlexChrome="false">
+
+
+ <fx:Script>
+ <![CDATA[
+ import flash.events.MouseEvent;
+
+ private var lineWidth:Number = 1;
+ private var lineColor:uint = 0x000000;
+ private var prevX:Number;
+ private var prevY:Number;
+
+ private function init():void
+ {
+ stage.displayState =
+ StageDisplayState.FULL_SCREEN_INTERACTIVE;
+ myCanvas.addEventListener(MouseEvent.MOUSE_MOVE,
+ drawingOn);
+ }
+
+ private function drawingOff():void
+ {
+ myCanvas.removeEventListener(MouseEvent.MOUSE_MOVE,
+ drawingOn);
+ myButton.label = "Drawing On"
+ }
+
+ //This never gets called but it did not throw an error for Flex PMD???
+ private function iDontGetCalled():void
+ {
+ var i:int = 5;
+ }
+
+ private function drawingOn(event:MouseEvent):void
+ {
+ if(!isNaN(prevX))
+ {
+
+ myCanvas.graphics.lineStyle(lineWidth,
+ lineColor);
+ myCanvas.graphics.moveTo(prevX, prevY);
+ myCanvas.graphics.lineTo(event.localX,
+ event.localY);
+
+ //Unnecessary and deeply nested IF - ELSE should have been caught too??
+ if(!isNaN(prevX))
+ {
+ //Do nothing
+ } else {
+ if(!isNaN(prevX))
+ {
+ //Do nothing
+ } else {
+ if(!isNaN(prevX))
+ {
+ //Do nothing
+ } else {
+
+ if(!isNaN(prevX))
+ {
+ //Do
+ nothing
+ } else {
+ //do
+ nothing too
+ }
+ }
+ }
+ }
+ }
+ prevX = event.localX;
+ prevY = event.localY;
+ myButton.label = "Drawing Off";
+ }
+
+ private function clear():void
+ {
+ myCanvas.graphics.clear();
+ }
+
+ private function toggleDrawing():void
+ {
+ if (myButton.label == "Drawing Off")
+ {
+ drawingOff();
+ myButton.label = "Drawing On";
+ } else if (myButton.label == "Drawing On")
+ {
+ init();
+ myButton.label = "Drawing Off";
+ }
+ }
+
+ private function changeColor():void
+ {
+ lineColor = myCP.selectedColor;
+ myLabel.text = String(myCP.value);
+ }
+
+
+
+ private function changeThickness():void
+ {
+ lineWidth = mySlider.value;
+ }
+ ]]>
+ </fx:Script>
+
+ <mx:Canvas id="myCanvas" width="100%" height="100%" fontWeight="bold"
+ backgroundAlpha="0.00001" backgroundColor="0xFF44FF" >
+
+ <mx:TitleWindow alpha="1.0" layout="absolute" close="close()"
+ title="Scribbler Settings" showCloseButton="true" width="200"
+ height="178" cornerRadius="16">
+ <s:Button id="myButton" x="10" y="10" width="95"
+ click="toggleDrawing()"/>
+ <mx:ColorPicker x="148" y="10" id="myCP"
+ change="changeColor()"/>
+ <mx:HSlider x="10" y="57" id="mySlider"
+ change="changeThickness()" minimum="1" maximum="10" snapInterval="1"
+ enabled="true" allowTrackClick="true"/>
+ <mx:Label id="myLabel" x="83" y="111" text="Label" width="87"/>
+
+ <mx:Label x="20" y="111" text="Color:"/>
+ <mx:Label x="26.5" y="76" text="Adjust Line Thickness"/>
+ <s:Button x="10" y="39" label="Clear" width="95" click="clear()"
+ />
+ </mx:TitleWindow>
+ </mx:Canvas>
+
+</mx:WindowedApplication>
http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/b0fc5f17/FlexPMD/custom-ruleset/src/test/resources/test/bug/FlexPMD115.as
----------------------------------------------------------------------
diff --git a/FlexPMD/custom-ruleset/src/test/resources/test/bug/FlexPMD115.as b/FlexPMD/custom-ruleset/src/test/resources/test/bug/FlexPMD115.as
new file mode 100644
index 0000000..00f7209
--- /dev/null
+++ b/FlexPMD/custom-ruleset/src/test/resources/test/bug/FlexPMD115.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 foo.bar {
+ public function baz(): void { }
+ public class A
+ {
+ public static const XYZ:String = XYZ; // meant to be "xyz"
+ public static var a:String = a; // meant to be "a"
+ public static const XYZA:String = "XYZA";
+ public const XYZ:String = XYZ; // meant to be "xyz"
+ public var a:String = a; // meant to be "a"
+ public const XYZA:String = "XYZA";
+ }
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/b0fc5f17/FlexPMD/custom-ruleset/src/test/resources/test/bug/FlexPMD141a.mxml
----------------------------------------------------------------------
diff --git a/FlexPMD/custom-ruleset/src/test/resources/test/bug/FlexPMD141a.mxml b/FlexPMD/custom-ruleset/src/test/resources/test/bug/FlexPMD141a.mxml
new file mode 100644
index 0000000..44967c2
--- /dev/null
+++ b/FlexPMD/custom-ruleset/src/test/resources/test/bug/FlexPMD141a.mxml
@@ -0,0 +1,32 @@
+<?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.
+
+-->
+<mx:HBox xmlns:mx="http://www.adobe.com/2006/mxml">
+ <mx:Script>
+<!-- /* begin editor confusion -->
+ <![CDATA[
+ /* end editor confusion */
+
+ private var object:List = new List();
+ [Bindable]
+ private var counter:int;
+
+ ]]>
+ </mx:Script>
+</mx:HBox>
http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/b0fc5f17/FlexPMD/custom-ruleset/src/test/resources/test/bug/FlexPMD141b.mxml
----------------------------------------------------------------------
diff --git a/FlexPMD/custom-ruleset/src/test/resources/test/bug/FlexPMD141b.mxml b/FlexPMD/custom-ruleset/src/test/resources/test/bug/FlexPMD141b.mxml
new file mode 100644
index 0000000..4b0aa20
--- /dev/null
+++ b/FlexPMD/custom-ruleset/src/test/resources/test/bug/FlexPMD141b.mxml
@@ -0,0 +1,34 @@
+<?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.
+
+-->
+<mx:HBox xmlns:mx="http://www.adobe.com/2006/mxml">
+ <mx:Script>
+ <!-- /* begin editor confusion -->
+ <![CDATA[
+ /* end editor confusion */
+
+ import mx.collections.ArrayCollection;
+ import mx.collections.ListCollectionView;
+
+ private var variable:ArrayCollection = new ArrayCollection([0, 1, 2]);
+ private var list:ListCollectionView = new ListCollectionView(variable);
+
+ ]]>
+ </mx:Script>
+</mx:HBox>
http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/b0fc5f17/FlexPMD/custom-ruleset/src/test/resources/test/bug/FlexPMD157.as
----------------------------------------------------------------------
diff --git a/FlexPMD/custom-ruleset/src/test/resources/test/bug/FlexPMD157.as b/FlexPMD/custom-ruleset/src/test/resources/test/bug/FlexPMD157.as
new file mode 100644
index 0000000..210271b
--- /dev/null
+++ b/FlexPMD/custom-ruleset/src/test/resources/test/bug/FlexPMD157.as
@@ -0,0 +1,33 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+// 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 bug
+{
+ public class FlexPMD157
+ {
+ /**
+ * The name of the home state display.
+ */
+ public static const HOME_STATE:String = "home_state" ;
+
+ /**
+ * The name of the project state display.
+ */
+ public static const PROJECT_STATE:String = "project_state" ;
+ }
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/b0fc5f17/FlexPMD/custom-ruleset/src/test/resources/test/bug/FlexPMD173.as
----------------------------------------------------------------------
diff --git a/FlexPMD/custom-ruleset/src/test/resources/test/bug/FlexPMD173.as b/FlexPMD/custom-ruleset/src/test/resources/test/bug/FlexPMD173.as
new file mode 100644
index 0000000..293df9a
--- /dev/null
+++ b/FlexPMD/custom-ruleset/src/test/resources/test/bug/FlexPMD173.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
+{
+ public class PmdPrivateTest
+ {
+ private static const REPORT_SKELETON : XML = read( null );
+ private var REPORT_SKELETON_VAR : XML = readAgain( null );
+
+ private static function read( clazz : Class ) : XML
+ {
+ var byteArray : ByteArray = new clazz() as ByteArray;
+
+ return new XML( byteArray.readUTFBytes( byteArray.length ) ) || REPORT_SKELETON_VAR;
+ }
+
+ private static function readAgain( clazz : Class ) : XML
+ {
+ var byteArray : ByteArray = new clazz() as ByteArray;
+
+ return new XML( byteArray.readUTFBytes( byteArray.length ) );
+ }
+ }
+}
\ No newline at end of file