blob: c4340d559eeedfc61e36b070af09447438eda146 [file] [log] [blame]
////////////////////////////////////////////////////////////////////////////////
//
// 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 mx.automation.tool
{
import mx.automation.AutomationClass;
import mx.automation.IAutomationPropertyDescriptor;
import mx.utils.ObjectUtil;
/**
* Provides serializable class information for external automation tools.
* Some classes are represented as the same AutomationClass (HSlider and VSlider, forinstance).
*
* @langversion 3.0
* @playerversion Flash 9
* @playerversion AIR 1.1
* @productversion Flex 4
*/
public class ToolAutomationClass extends AutomationClass
implements IToolAutomationClass
{
//--------------------------------------------------------------------------
//
// Constructor
//
//--------------------------------------------------------------------------
public function ToolAutomationClass(name:String, superClassName:String = null)
{
super(name, superClassName);
}
//--------------------------------------------------------------------------
//
// Variables
//
//--------------------------------------------------------------------------
/**
* @private
* QTP is case insensitive. QTP has been found to change property names
* at certain instance to complete lower case names. Hence we use a map
* built on lower case property name to find the descriptor.
*/
private var propertyCaseMap:Object = {};
//--------------------------------------------------------------------------
//
// Properties
//
//--------------------------------------------------------------------------
//--------------------------------------------------------------------------
//
// Methods
//
//--------------------------------------------------------------------------
/**
* Add a descriptor of a property to the class.
*
* @langversion 3.0
* @playerversion Flash 9
* @playerversion AIR 1.1
* @productversion Flex 4
*/
override public function addPropertyDescriptor(p:IAutomationPropertyDescriptor):void
{
super.addPropertyDescriptor(p);
propertyCaseMap[p.name.toLowerCase()] = p;
}
/**
* @private
* Getter for the map of lower case property name and descriptor.
*/
public function get propertyLowerCaseMap():Object
{
return propertyCaseMap;
}
}
}