| //////////////////////////////////////////////////////////////////////////////// |
| // |
| // 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; |
| } |
| } |
| |
| } |