IBM Rational Functional Tester
Version 8.1.1000
IBM Rational Functional Tester Proxy SDK Reference

Project Version 2.3

com.rational.test.ft.domain
Class DescribedObject

java.lang.Object   extended by com.rational.test.ft.sys.RegisteredObject       extended by com.rational.test.ft.domain.ProxyTestObject
          extended by com.rational.test.ft.domain.DescribedObject
All Implemented Interfaces:
IChannelObject, IDataDriven, IProxyBase

public class DescribedObject
extends ProxyTestObject

A DescribedObject is a list of properties created in another domain, or or perhaps even TestContext, which describes an object in the current domain. DescribedObject is derived from ProxyTestObject only because it is returned in place of a Proxy in methods such as getChildren and getParent.


Field Summary
 
Fields inherited from class com.rational.test.ft.domain.ProxyTestObject
BROWSERTABTESTOBJECT_CLASSNAME, BROWSERTESTOBJECT_CLASSNAME, COLORDIALOGTESTOBJECT_CLASSNAME, CROSSDOMAINCONTAINER_CLASSNAME, debug, DOCUMENTTESTOBJECT_CLASSNAME, DOMAINTESTOBJECT_CLASSNAME, ECLIPSETOPLEVELTESTOBJECT_CLASSNAME, EMBEDDEDBROWSERTESTOBJECT_CLASSNAME, FILEDIALOGTESTOBJECT_CLASSNAME, FRAMESUBITEMTESTOBJECT_CLASSNAME, FRAMETESTOBJECT_CLASSNAME, GEFEDITPARTTESTOBJECT_CLASSNAME, GUISUBITEMTESTOBJECT_CLASSNAME, GUITESTOBJECT_CLASSNAME, INTERNALFRAMETESTOBJECT_CLASSNAME, MESSAGEBOXTESTOBJECT_CLASSNAME, PALETTEGUISUBITEMTESTOBJECT_CLASSNAME, PROCESSTESTOBJECT_CLASSNAME, SCROLLSUBITEMTESTOBJECT_CLASSNAME, SCROLLTESTOBJECT_CLASSNAME, SELECTGUISUBITEMTESTOBJECT_CLASSNAME, SELECTSCROLLGUISUBITEMTESTOBJECT_CLASSNAME, SHELLTESTOBJECT_CLASSNAME, STATELESSGUISUBITEMTESTOBJECT_CLASSNAME, SUBITEMTESTOBJECT_CLASSNAME, TABITEMTESTOBJECT_CLASSNAME, TESTOBJECT_CLASSNAME, TEXTGUISUBITEMTESTOBJECT_CLASSNAME, TEXTGUITESTOBJECT_CLASSNAME, TEXTSCROLLTESTOBJECT_CLASSNAME, TEXTSELECTGUISUBITEMTESTOBJECT_CLASSNAME, TOGGLEGUITESTOBJECT_CLASSNAME, TOGGLETESTOBJECT_CLASSNAME, TOPLEVELSUBITEMTESTOBJECT_CLASSNAME, TOPLEVELTESTOBJECT_CLASSNAME, TRACKBARTESTOBJECT_CLASSNAME, vomClippedRectangle
 
Fields inherited from class com.rational.test.ft.sys.RegisteredObject
theTestObject
 
Fields inherited from interface com.rational.test.ft.domain.IDataDriven
INCLUDE_ALL, INCLUDE_JUSTOBJECT, INCLUDE_SIBLINGS
 
Constructor Summary
DescribedObject()
           
DescribedObject(com.rational.test.ft.sys.HashtableEx propertyMap, java.lang.String testObjectClassName)
          This constructor is used by the value manager to create an instance from a persisted DescribedObjectReference
DescribedObject(com.rational.test.ft.sys.SpyMap spyMap, java.lang.String testObjectClassName)
           
 
Method Summary
 void addRecognitionProperty(java.lang.String property, java.lang.Object value, int weight)
          Defines an additional recognition property that this proxy can use.
 ProxyTestObject[] getChildren()
          Returns an array of proxies, visible by using the TestObject interface from a script, for the children of this object.
 java.lang.String getDescriptiveName()
          Returns a name that can be used to describe the associated UI object in a script.
 java.lang.Object getIndexer(java.lang.String name, java.lang.Object[] indexes)
          Gets the value of an indexed property
 com.rational.test.ft.value.IndexerInfo[] getIndexers()
          Gets information about a TestObject's indexed properties
 ProxyTestObject[] getMappableChildren()
          Returns an array of proxies, visible by using the TestObject interface from a script, for the children of this object.
 ProxyTestObject getMappableParent()
          Returns a proxy object for the mappable parent of this object; returns null if this object has no mappable parent.
 com.rational.test.ft.value.MethodInfo[] getMethods()
          Returns an array containing method signatures for all methodsaccessiblee against the associated test object.
 com.rational.test.ft.sys.MethodSpecification getMethodSpecForPoint(java.awt.Point pt)
          Returns a MethodSpecification for a method that returns a java.awt.Point for the specified coordinates.
 java.util.Hashtable getNonValueProperties()
          Returns the properties that are not supported because the value is a reference to another object.
 ProxyTestObject[] getOwnedObjects()
          Returns an array of proxies for the objects owned by this object.
 ProxyTestObject getOwner()
          Returns a proxy object for the owner of this object; returns null if this object has no owner.
 ProxyTestObject getParent()
          Returns a proxy object for the parent of this object; returns null if this object has no parent.
 java.util.Hashtable getProperties()
          Returns a complete set of properties for the associated test object.
 java.lang.Object getProperty(java.lang.String propertyName)
          Gets the value for a specific property defined in getProperties() or getRecognitionProperties().
 com.rational.test.ft.sys.HashtableEx getPropertyMap()
           
 java.util.Hashtable getRecognitionProperties()
          Returns an enumeration of properties used to identify the associated test object.
 int getRecognitionPropertyWeight(java.lang.String propertyName)
          Returns an indication of how useful this property is for recognition.
 java.util.Hashtable getStandardProperties()
          Returns a complete set of consistent properties for the associated test object.
 java.util.Hashtable getTestDataTypes()
          Returns a hashtable of data type descriptions of the verification point data available with the associated object.
 TestDomainImplementation getTestDomain()
          Returns the TestDomain that this proxy object is associated with.
 java.lang.String getTestObjectClassName()
          Returns a valid class name specification.
 ProxyTestObject getTopMappableParent()
          Returns a proxy object for the top mappable parent of this object; returns a pointer to itself if this object has no mappable parent.
 ProxyTestObject getTopParent()
          Returns a proxy object for the top parent of this object; returns a pointer to itself if this object has no parent.
 java.lang.String getUniqueId()
          Returns a string for the associated object.
 boolean hasAddedRecognitionProperties()
          Returns true if recognition properties have been added to this proxy from an external source through addRecognitionProperty().
 void processMouseEvent(IMouseActionInfo action)
          Updates the supplied action with an appropriate MethodSpecification to play back the action.
 void setIndexer(java.lang.String name, java.lang.Object[] indexes, java.lang.Object val)
          Sets the value of an indexed property
 void setProperty(java.lang.String propertyName, java.lang.Object value)
          Sets the value for a specific property defined in getProperties() or getRecognitionProperties().
 boolean shouldBeMapped()
          Determines whether the object is interesting from a persistent testability sense and should therefore be added to the object map.
 
Methods inherited from class com.rational.test.ft.domain.ProxyTestObject
addDataDrivableCommands, baseClassMatch, canTakeVP, equals, findChildrenWithProperties, findChildrenWithPropertiesAndInvoke, getChannel, getChildren, getDataDrivableCommand, getDataDrivableCommands, getField, getIgnorableProperties, getMappableChildren, getMappableParent, getObjectClassName, getObjectCustomClassName, getOwnedObjects, getParent, getProxy, getRole, getScriptCommandAnchor, getScriptCommandFlags, getTestData, getVisualClippableParent, getVisualClippedRectangle, getVisualMappableChildren, getVisualTopParent, getVOMSpecificProperty, hasSpecialFrameState, isClassIndexConsidered, isSameObject, isValidObject, ping, suppressKeyAction, updateTestData
 
Methods inherited from class com.rational.test.ft.sys.RegisteredObject
addProxyReference, dereference, getObject, getRegisteredId, getTransactionId, isReferenced, isReleaseRequired, register, registerTransiently, release, toString, unregister
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

DescribedObject

public DescribedObject()

DescribedObject

public DescribedObject(com.rational.test.ft.sys.HashtableEx propertyMap,                        java.lang.String testObjectClassName)
This constructor is used by the value manager to create an instance from a persisted DescribedObjectReference


DescribedObject

public DescribedObject(com.rational.test.ft.sys.SpyMap spyMap,                        java.lang.String testObjectClassName)
Method Detail

getTestObjectClassName

public java.lang.String getTestObjectClassName()
Description copied from class: ProxyTestObject
Returns a valid class name specification. The test script (which runs in a separate process) interacts with a class that supports a shared interface with a specific proxy. This class is called a TestObject class. The testObject performs a cross-process (and cross-JVM) call to the same method against an associated proxy, which is this proxy.

This method should never return null, even if shouldBeMapped() returns false. User may still access objects such as this through scripting method calls and can return references to them. If a null were returned, the marshalling code would be confused and would not be able to construct a test object.

This method may be called from any thread.

Specified by:
getTestObjectClassName in interface IProxyBase
Specified by:
getTestObjectClassName in class ProxyTestObject
Returns:
The associated testObject class full name.

getTestDomain

public TestDomainImplementation getTestDomain()
Returns the TestDomain that this proxy object is associated with.

Specified by:
getTestDomain in interface IProxyBase
Specified by:
getTestDomain in class ProxyTestObject
Returns:
The associated TestDomain class full name.
Since:
RFT1.0

getDescriptiveName

public java.lang.String getDescriptiveName()
Returns a name that can be used to describe the associated UI object in a script. This name can be further adjusted to be unique to the script. Only characters used in Java identifiers are returned (alphabetic, numeric, or underscore characters). Other kinds of characters cause script compilation failures. An example of what to return is "OKButton" for a java.awt.Button with the associated text "OK".

Specified by:
getDescriptiveName in class ProxyTestObject
Returns:
A descriptive object name.
Since:
RFT1.0

getUniqueId

public java.lang.String getUniqueId()
Returns a string for the associated object. This string must be unique and must be identical for each call to this method for the same instance of the UI object.

Specified by:
getUniqueId in class ProxyTestObject
Returns:
A unique and repeatable identifier for the object being evaluated.

shouldBeMapped

public boolean shouldBeMapped()
Determines whether the object is interesting from a persistent testability sense and should therefore be added to the object map. An object is considered interesting under one or more of the following conditions:

Examples of objects that are not interesting include:

Note that if the object is a container, the children are examined even if this method returns false.

Specified by:
shouldBeMapped in class ProxyTestObject
Returns:
true if the represented control is interesting other than for nested objects.
Since:
RFT1.0

getParent

public ProxyTestObject getParent()
Returns a proxy object for the parent of this object; returns null if this object has no parent.

Specified by:
getParent in class ProxyTestObject
Returns:
The proxy for the parent test object or null for a top-level object.
Since:
RFT1.0

getMappableParent

public ProxyTestObject getMappableParent()
Returns a proxy object for the mappable parent of this object; returns null if this object has no mappable parent. Note that only a proxy that shouldBeMapped should be returned from this method.

Specified by:
getMappableParent in class ProxyTestObject
Returns:
The proxy for the first mappable parent test object or null for a top-level mapped object.
Since:
RFT1.0

getTopParent

public ProxyTestObject getTopParent()
Returns a proxy object for the top parent of this object; returns a pointer to itself if this object has no parent.

Specified by:
getTopParent in class ProxyTestObject
Returns:
The proxy for the top parent test object or itself for a top-level object.
Since:
RFT1.0

getTopMappableParent

public ProxyTestObject getTopMappableParent()
Returns a proxy object for the top mappable parent of this object; returns a pointer to itself if this object has no mappable parent.

Specified by:
getTopMappableParent in class ProxyTestObject
Returns:
The proxy for the top parent test object or itself for a test object with no mappable parent.
Since:
RFT1.0

getChildren

public ProxyTestObject[] getChildren()
Returns an array of proxies, visible by using the TestObject interface from a script, for the children of this object.

Specified by:
getChildren in class ProxyTestObject
Returns:
An array of child proxies of this proxy.
Since:
RFT1.0

getMappableChildren

public ProxyTestObject[] getMappableChildren()
Returns an array of proxies, visible by using the TestObject interface from a script, for the children of this object. This method is always used when building up the test objects to be added to a map, because a side additional recognition properties may be added to the child objects.

Specified by:
getMappableChildren in class ProxyTestObject
Returns:
An array of child proxies of this proxy.
Since:
RFT1.0

getOwner

public ProxyTestObject getOwner()
Returns a proxy object for the owner of this object; returns null if this object has no owner.

Specified by:
getOwner in class ProxyTestObject
Returns:
The proxy for the owning object, or null for a top object without an owner.
Since:
RFT1.0

getOwnedObjects

public ProxyTestObject[] getOwnedObjects()
Returns an array of proxies for the objects owned by this object.

Specified by:
getOwnedObjects in class ProxyTestObject
Returns:
An array of proxies of objects owned by this proxy.
Since:
RFT1.0

processMouseEvent

public void processMouseEvent(IMouseActionInfo action)
Updates the supplied action with an appropriate MethodSpecification to play back the action. This method is the primary record interface for mouse events against a particular control. Only one MethodSpecification is maintained in the action state. If the active specification is valid, it is not updated.

Specified by:
processMouseEvent in class ProxyTestObject
Parameters:
action - The event cache and other mouse state information for this mouse action.
Since:
RFT1.0
See Also:
IMouseActionInfo, MethodSpecification

getMethodSpecForPoint

public com.rational.test.ft.sys.MethodSpecification getMethodSpecForPoint(java.awt.Point pt)
Returns a MethodSpecification for a method that returns a java.awt.Point for the specified coordinates. By default, a method specification for IGraphical.getScreenPoint is returned.

Specified by:
getMethodSpecForPoint in class ProxyTestObject
Parameters:
action - The event cache and other mouse state information for this mouse action.
Since:
RFT1.0
See Also:
MethodSpecification

getRecognitionProperties

public java.util.Hashtable getRecognitionProperties()
Returns an enumeration of properties used to identify the associated test object. Useful recognition properties are properties such as the programmatic name or a persistent description. Less interesting are the visible text on a button or label, or the tooltip text, or the foreground color. Uninteresting properties are the transient properties such as hasFocus or isShowing.

Specified by:
getRecognitionProperties in class ProxyTestObject
Returns:
An enumeration of recognition properties. The returned objects are of class TestObjectProperty.
Since:
RFT1.0
See Also:
getRecognitionPropertyWeight(String), getProperty(String), addRecognitionProperty(String,Object,int)

getRecognitionPropertyWeight

public int getRecognitionPropertyWeight(java.lang.String propertyName)
Returns an indication of how useful this property is for recognition. A value of 0 indicates not useful at all, and a value of 100 indicates that the property is extremely useful for recognition. This method must return a value greater than or equal to zero and less than or equal to 100.

Specified by:
getRecognitionPropertyWeight in class ProxyTestObject
Parameters:
propertyName - The name of the recognition property to return a weight value for.
Since:
RFT1.0
See Also:
getRecognitionProperties()

addRecognitionProperty

public void addRecognitionProperty(java.lang.String property,                                    java.lang.Object value,                                    int weight)
Defines an additional recognition property that this proxy can use. Properties defined outside a proxy have the side effect that they must always be attached to the proxy when created. This can be problematic in some domains. These properties must be ignored if appropriate proxy caching is not being performed. Properties added to a proxy are returned through getRecognitionProperties().

Specified by:
addRecognitionProperty in class ProxyTestObject
Parameters:
property - The recognition property name. Care should be taken to avoid conflicts with existing property names.
value - The value of the added recognition property.
weight - The weight associated with this recognition property. This value is returned when getRecognitionPropertyWeight() is called.
Since:
RFT1.0
See Also:
getRecognitionProperties(), getRecognitionPropertyWeight(String), getProperty(String)

hasAddedRecognitionProperties

public boolean hasAddedRecognitionProperties()
Returns true if recognition properties have been added to this proxy from an external source through addRecognitionProperty().

Specified by:
hasAddedRecognitionProperties in class ProxyTestObject
Returns:
true if recognition properties have been added to this proxy from an external source through addRecognitionProperty(String,Object,int).
Since:
RFT1.0
See Also:
addRecognitionProperty(String,Object,int)

getProperties

public java.util.Hashtable getProperties()
Returns a complete set of properties for the associated test object. The meaning of a property is specific to the test domain and the test object. Typically, this is a set of name/value pairs that describe the test object and its active state. Properties such as font, colors, and coordinate information are typically associated with a GUI test object. Associated data and state information can also be returned, depending on the test object.

This method does not return properties whose values are references to objects. The method getNonValueProperties() returns information about such properties.

Specified by:
getProperties in class ProxyTestObject
Returns:
The set of known properties associated with a test object.
Since:
RFT1.0
See Also:
getProperty(String), setProperty(String,Object), getStandardProperties(), getNonValueProperties()

getStandardProperties

public java.util.Hashtable getStandardProperties()
Returns a complete set of consistent properties for the associated test object. Consistent properties are those properties that exist regardless of the platform the test object is running on. Domains that do not support the notion of standard properties should implement this method identically to getProperties(). The HTML domain supports standard properties and returns properties that are consistent across browser versions. The Java domain does not support this notion of standard properties. In this domain, getStandardProperties, and getProperties do the same thing. For HTML, standard properties are a subset of the properties returned by getProperties(). The meaning of a property is specific to the test domain and the test object. Typically, this is a set of name/value pairs that describe the test object and its active state. Properties such as font, colors, and coordinate information are typically associated with a GUI test object. Associated data and state information can also be returned, depending on the test object.

Specified by:
getStandardProperties in class ProxyTestObject
Returns:
The set of standard properties associated with a test object.
Since:
RFT1.0
See Also:
getProperty(String), setProperty(String,Object), getProperties(), getNonValueProperties()

getProperty

public java.lang.Object getProperty(java.lang.String propertyName)
Gets the value for a specific property defined in getProperties() or getRecognitionProperties(). If the property is not defined by either of these methods, this method throws PropertyNotFoundException.

Specified by:
getProperty in class ProxyTestObject
Parameters:
propertyName - The name of the property to fetch.
Returns:
The active value of the specified property for the associated test object.
Since:
RFT1.0
See Also:
getProperties(), setProperty(String,Object), getRecognitionProperties(), addRecognitionProperty(String,Object,int)

setProperty

public void setProperty(java.lang.String propertyName,                         java.lang.Object value)
Sets the value for a specific property defined in getProperties() or getRecognitionProperties(). Properties not defined by either of these methods, and properties whose values cannot be modified throw an appropriately populated PropertyNotFoundException.

Specified by:
setProperty in class ProxyTestObject
Parameters:
propertyName - The name of the property to redefine. This name is the same as that returned by getProperties().
Since:
RFT1.0
See Also:
getProperties(), getProperty(String)

getNonValueProperties

public java.util.Hashtable getNonValueProperties()
Returns the properties that are not supported because the value is a reference to another object. These properties can still be accessed using getProperty(). If such a property is returned to the test script, it is manifested as a TestObject containing a reference to the object in the SUT. The test script should call the TestObject method unregister() to release the object.

When an object is unregistered, the release() method that all ProxyTestObjects inherit from RegisteredObject is called.

Specified by:
getNonValueProperties in class ProxyTestObject
Returns:
The set of properties that are not available.
Since:
RFT1.0
See Also:
getProperties(), getStandardProperties(), getProperty(String), setProperty(String,Object)

getIndexer

public java.lang.Object getIndexer(java.lang.String name,                                    java.lang.Object[] indexes)
Gets the value of an indexed property

Specified by:
getIndexer in class ProxyTestObject
Parameters:
name - the name of the indexer
indexes - the indexes to get the value of

getIndexers

public com.rational.test.ft.value.IndexerInfo[] getIndexers()
Gets information about a TestObject's indexed properties

Specified by:
getIndexers in class ProxyTestObject
See Also:
IndexerInfo

setIndexer

public void setIndexer(java.lang.String name,                        java.lang.Object[] indexes,                        java.lang.Object val)
Sets the value of an indexed property

Specified by:
setIndexer in class ProxyTestObject
Parameters:
name - the name of the indexer
indexes - the indexes to set the value of

getMethods

public com.rational.test.ft.value.MethodInfo[] getMethods()
Returns an array containing method signatures for all methodsaccessiblee against the associated test object. Methods that cannot be directly invoked are not returned. The set of accessible methods is domain and test-object specific.

Specified by:
getMethods in class ProxyTestObject
Returns:
An array containing method signatures for all methods accessible against the associated test object.
See Also:
getProperties(), getStandardProperties(), getNonValueProperties()

getTestDataTypes

public java.util.Hashtable getTestDataTypes()
Returns a hashtable of data type descriptions of the verification point data available with the associated object. The hashtable keys are String objects that are used as the VP type in the associated test data. The type is a simple value that is different from other type values associated with this object under test. The type keys map to a verbose description of the test data, reasonable for presentation to a user.

Specified by:
getTestDataTypes in class ProxyTestObject
Returns:
An hashtable of type/description pairs used to describe the verification data available from this proxy.
Since:
RFT1.0
See Also:
ProxyTestObject.getTestData(String), ITestData

getPropertyMap

public com.rational.test.ft.sys.HashtableEx getPropertyMap()