org.safs
Class EngineCommandProcessor

java.lang.Object
  extended by org.safs.Processor
      extended by org.safs.EngineCommandProcessor
Direct Known Subclasses:
DEngineCommandProcessor, REngineCommandProcessor

public class EngineCommandProcessor
extends Processor

EngineCommandProcessor for Record Type: 'E' Instantiated by ProcessRequest.

Engines utilizing the GUI processing functions of this class must provide an engine-specific version of their GuiObjectVector for this generic processor to function properly. Once set the processor will gain access to engine-specific implementations of functionality.

Since:
JUL 10, 2007
See Also:
setGuiObjectVector(GuiObjectVector)

Field Summary
protected  java.lang.String command
          Convenient storage of testRecordData.getCommand() value
static java.lang.String COMMAND_ENABLE_DOMAINS
          'enableDomains'
static java.lang.String COMMAND_GET_ACCESSIBLENAME
          'getAccessibleName'
static java.lang.String COMMAND_GET_CAPTION
          'getCaption'
static java.lang.String COMMAND_GET_CHILD_COUNT
          'getChildCount'
static java.lang.String COMMAND_GET_CHILDREN
          'getChildren'
static java.lang.String COMMAND_GET_CLASSINDEX
          'getClassIndex'
static java.lang.String COMMAND_GET_CLASSNAME
          'getClassName'
static java.lang.String COMMAND_GET_DOMAINNAME
          'getDomainName'
static java.lang.String COMMAND_GET_ID
          'getID'
static java.lang.String COMMAND_GET_LEVEL
          'getLevel'
static java.lang.String COMMAND_GET_MATCHING_CHILD_OBJECTS
          'getMatchingChildObjects'
static java.lang.String COMMAND_GET_MATCHING_PARENT_OBJECT
          'getMatchingParentObject'
static java.lang.String COMMAND_GET_MATCHING_PATH_OBJECT
          'getMatchingPathObject'
static java.lang.String COMMAND_GET_NAME
          'getName'
static java.lang.String COMMAND_GET_NONACCESSIBLENAME
          'getNonAccessibleName'
static java.lang.String COMMAND_GET_OBJECTRECOGNITION_ATSCREENCOORDS
          'getObjectRecognitionAtScreenCoords'
static java.lang.String COMMAND_GET_PROPERTY
          'getProperty'
static java.lang.String COMMAND_GET_PROPERTY_NAMES
          'getPropertyNames'
static java.lang.String COMMAND_GET_STRING_DATA
          'getStringData'
static java.lang.String COMMAND_GET_SUPER_CLASSNAMES
          'getSuperClassNames'
static java.lang.String COMMAND_GET_TEXT
          'getText'
static java.lang.String COMMAND_GET_TOPLEVEL_COUNT
          'getTopLevelCount'
static java.lang.String COMMAND_GET_TOPLEVEL_WINDOWS
          'getTopLevelWindows'
static java.lang.String COMMAND_IS_MATCHING_PATH
          'isMatchingPath'
static java.lang.String COMMAND_IS_SHOWING
          'isShowing'
static java.lang.String COMMAND_IS_TOPLEVEL_POPUP_CONTAINER
          'isTopLevelPopupContainer'
static java.lang.String COMMAND_IS_VALID
          'isValid'
static java.lang.String COMMAND_SET_ACTIVE_WINDOW
          'setActiveWindow'
 
Fields inherited from class org.safs.Processor
breakpointsOn, CASE_INSENSITIVE_FLAG, CASEINSENSITIVE_FLAG, clearProxiesAlways, commandLineBreakpoint, customStr, customText, DEBUG_MESSAGE, debugStr, debugText, DEFAULT_CUSTOM_PROCESSOR_PACKAGE, DEFAULT_CUSTOM_PROCESSOR_SUBPACKAGE, DEFAULT_PROCESSOR_PACKAGE, FAILED_MESSAGE, FAILED_OK_MESSAGE, failedStr, failedText, FAILURE_DETAIL, GENERIC_MESSAGE, genericStr, genericText, LINE_FAILURE_4, log, myBreakpointsOn, otherStr, otherText, PARAM_SIZE_1, PARAM_SIZE_2, PARAM_SIZE_3, PARAM_SIZE_4, params, PASSED_MESSAGE, passedStr, passedText, PRE_TXT_SUCCESS_4, PRE_TXT_SUCCESS_5, processorConfigSet, processorMap, recordProcessed, RECTYPE_DRIVER_COMMAND, RECTYPE_DRIVER_COMMAND_F, RECTYPE_DRIVER_COMMAND_W, RECTYPE_TEST_STEP, RECTYPE_TEST_STEP_F, RECTYPE_TEST_STEP_W, RFSMCache, RFSMOnly, RFT_FIND_SEARCH_MODE_ALGORITHM, RFT_FIND_SEARCH_MODE_CACHE, SAFS_CLEARPROXIESALWAYS_ITEM, SAFS_COMMANDLINEBREAKPOINT_ITEM, SAFS_COMMANDLINEBREAKPOINT_VARIABLE, SAFS_PARAMS_FILE, SAFS_RESBUN_NAME, SAFS_SECSWAITFORCOMPONENT_ITEM, SAFS_SECSWAITFORCOMPONENT_VARIABLE, SAFS_SECSWAITFORWINDOW_ITEM, SAFS_SECSWAITFORWINDOW_VARIABLE, SAFS_TESTDOMAINS_ITEM, SAFS_TESTDOMAINS_VARIABLE, secsWaitForComponent, secsWaitForWindow, SENT_MSG_3, testDomains, testRecordData, TXT_FAILURE_1, TXT_FAILURE_2, TXT_FAILURE_3, TXT_FAILURE_4, TXT_FAILURE_5, TXT_SUCCESS_1, TXT_SUCCESS_2, TXT_SUCCESS_2a, TXT_SUCCESS_3, TXT_SUCCESS_3a, TXT_SUCCESS_4, TXT_SUCCESS_5, WARNING_MESSAGE, WARNING_OK_MESSAGE, warningStr, warningText
 
Constructor Summary
EngineCommandProcessor()
           
 
Method Summary
protected  void _getObjectRecognitionAtScreenCoords()
          get recognition string of a GUI object at screen coordinates.
protected  java.lang.String convertToDelimitedString(java.lang.String[] items)
          find a unique separator using STAFLocalServer.getUniqueSeparator and convert the array to a single string of separated values.
 java.lang.String getEngineCommand()
           
 GuiObjectVector getGuiObjectVector()
           
protected  java.util.Collection interpretFields()
          Interprets the fields of the test record and puts the appropriate values into the fields of testRecordData.
 boolean isSupportedRecordType(java.lang.String recordType)
          Supports 'E'
 void process()
           By default executes setRecordProcessed(false) if no chainedProcessor is present.
protected  java.lang.String recognitionOfObjectAtPoint(int x, int y)
           
 void setGuiObjectVector(GuiObjectVector gov)
           
 
Methods inherited from class org.safs.Processor
activateBreakpoint, checkBreakpoints, checkMyBreakpoints, delay, distributeConfigInformation, getAlternateParams, getAppMapItem, getChainedProcessor, getClassInstance, getClearProxiesAlways, getCustomProcClassNames, getCustomProcInstancePath, getLogUtilities, getParams, getProcClassNames, getProcInstance, getProcInstancePath, getRequiredField, getSecsWaitForComponent, getSecsWaitForWindow, getStandardErrorMessage, getTestRecordData, getVariable, hasChainedProcessor, initProcessorAndProcess, instanceProcessorAndProcess, isBreakpointsOn, isComponentFunctionRecord, isDriverCommandRecord, isEngineCommandRecord, isMyBreakpointsOn, isRecordProcessed, isRFSMCache, isRFSMOnly, paramsFailedMsg, paramsFailedMsg, processCustomProcessor, processSubclassProcessor, setBreakpointsOn, setChainedProcessor, setClearProxiesAlways, setCommandLineBreakpoint, setCustomProcInstancePath, setLogUtilities, setMyBreakpointsOn, setParams, setProcInstance, setProcInstancePath, setRecordProcessed, setRFSMCache, setRFSMOnly, setSecsWaitForComponent, setSecsWaitForWindow, setTestDomains, setTestRecordData, setVariable, standardFailureMessage, substituteVariable, validateParamSize, validProcessorClassName
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

COMMAND_GET_DOMAINNAME

public static final java.lang.String COMMAND_GET_DOMAINNAME
'getDomainName'

See Also:
Constant Field Values

COMMAND_GET_CAPTION

public static final java.lang.String COMMAND_GET_CAPTION
'getCaption'

See Also:
Constant Field Values

COMMAND_GET_CHILD_COUNT

public static final java.lang.String COMMAND_GET_CHILD_COUNT
'getChildCount'

See Also:
Constant Field Values

COMMAND_GET_CHILDREN

public static final java.lang.String COMMAND_GET_CHILDREN
'getChildren'

See Also:
Constant Field Values

COMMAND_GET_CLASSNAME

public static final java.lang.String COMMAND_GET_CLASSNAME
'getClassName'

See Also:
Constant Field Values

COMMAND_GET_CLASSINDEX

public static final java.lang.String COMMAND_GET_CLASSINDEX
'getClassIndex'

See Also:
Constant Field Values

COMMAND_GET_ID

public static final java.lang.String COMMAND_GET_ID
'getID'

See Also:
Constant Field Values

COMMAND_GET_LEVEL

public static final java.lang.String COMMAND_GET_LEVEL
'getLevel'

See Also:
Constant Field Values

COMMAND_GET_MATCHING_CHILD_OBJECTS

public static final java.lang.String COMMAND_GET_MATCHING_CHILD_OBJECTS
'getMatchingChildObjects'

See Also:
Constant Field Values

COMMAND_GET_MATCHING_PARENT_OBJECT

public static final java.lang.String COMMAND_GET_MATCHING_PARENT_OBJECT
'getMatchingParentObject'

See Also:
Constant Field Values

COMMAND_GET_MATCHING_PATH_OBJECT

public static final java.lang.String COMMAND_GET_MATCHING_PATH_OBJECT
'getMatchingPathObject'

See Also:
Constant Field Values

COMMAND_GET_NAME

public static final java.lang.String COMMAND_GET_NAME
'getName'

See Also:
Constant Field Values

COMMAND_GET_ACCESSIBLENAME

public static final java.lang.String COMMAND_GET_ACCESSIBLENAME
'getAccessibleName'

See Also:
Constant Field Values

COMMAND_GET_NONACCESSIBLENAME

public static final java.lang.String COMMAND_GET_NONACCESSIBLENAME
'getNonAccessibleName'

See Also:
Constant Field Values

COMMAND_GET_PROPERTY

public static final java.lang.String COMMAND_GET_PROPERTY
'getProperty'

See Also:
Constant Field Values

COMMAND_GET_PROPERTY_NAMES

public static final java.lang.String COMMAND_GET_PROPERTY_NAMES
'getPropertyNames'

See Also:
Constant Field Values

COMMAND_GET_STRING_DATA

public static final java.lang.String COMMAND_GET_STRING_DATA
'getStringData'

See Also:
Constant Field Values

COMMAND_GET_SUPER_CLASSNAMES

public static final java.lang.String COMMAND_GET_SUPER_CLASSNAMES
'getSuperClassNames'

See Also:
Constant Field Values

COMMAND_GET_TEXT

public static final java.lang.String COMMAND_GET_TEXT
'getText'

See Also:
Constant Field Values

COMMAND_GET_TOPLEVEL_COUNT

public static final java.lang.String COMMAND_GET_TOPLEVEL_COUNT
'getTopLevelCount'

See Also:
Constant Field Values

COMMAND_GET_TOPLEVEL_WINDOWS

public static final java.lang.String COMMAND_GET_TOPLEVEL_WINDOWS
'getTopLevelWindows'

See Also:
Constant Field Values

COMMAND_IS_MATCHING_PATH

public static final java.lang.String COMMAND_IS_MATCHING_PATH
'isMatchingPath'

See Also:
Constant Field Values

COMMAND_IS_SHOWING

public static final java.lang.String COMMAND_IS_SHOWING
'isShowing'

See Also:
Constant Field Values

COMMAND_IS_VALID

public static final java.lang.String COMMAND_IS_VALID
'isValid'

See Also:
Constant Field Values

COMMAND_SET_ACTIVE_WINDOW

public static final java.lang.String COMMAND_SET_ACTIVE_WINDOW
'setActiveWindow'

See Also:
Constant Field Values

COMMAND_ENABLE_DOMAINS

public static final java.lang.String COMMAND_ENABLE_DOMAINS
'enableDomains'

See Also:
Constant Field Values

COMMAND_IS_TOPLEVEL_POPUP_CONTAINER

public static final java.lang.String COMMAND_IS_TOPLEVEL_POPUP_CONTAINER
'isTopLevelPopupContainer'

See Also:
Constant Field Values

COMMAND_GET_OBJECTRECOGNITION_ATSCREENCOORDS

public static final java.lang.String COMMAND_GET_OBJECTRECOGNITION_ATSCREENCOORDS
'getObjectRecognitionAtScreenCoords'

See Also:
Constant Field Values

command

protected java.lang.String command
Convenient storage of testRecordData.getCommand() value

Constructor Detail

EngineCommandProcessor

public EngineCommandProcessor()
Method Detail

isSupportedRecordType

public boolean isSupportedRecordType(java.lang.String recordType)
Supports 'E'

Specified by:
isSupportedRecordType in class Processor
Parameters:
recordType - -- String text of record type to match (ignoring case).
Returns:
'true' if the provided recordType is one this Processor can execute. Note, that SAFS record types are normally not case-sensitive. So the comparison to match the provided recordType should ignore case.

See Also:
Processor.isSupportedRecordType(java.lang.String), Processor.isEngineCommandRecord(java.lang.String)

process

public void process()

By default executes setRecordProcessed(false) if no chainedProcessor is present.

Overrides:
process in class Processor
Since:
JUL 10, 2007 CANAGL

getGuiObjectVector

public GuiObjectVector getGuiObjectVector()
Returns:
Returns the engine-specific GuiObjectVector.

setGuiObjectVector

public void setGuiObjectVector(GuiObjectVector gov)
Parameters:
gov - The engine-specific GuiObjectVector to set.

getEngineCommand

public java.lang.String getEngineCommand()
Returns:
Returns the engine command.

interpretFields

protected java.util.Collection interpretFields()
                                        throws SAFSException
Interprets the fields of the test record and puts the appropriate values into the fields of testRecordData. Also sets the 'command' convenience field.
Side Effects: Processor.testRecordData fields are set from the inputRecord.
State Read: Processor.testRecordData, the inputRecord field
Assumptions: The following order:

Field #1: The TEST record type (E).

Subsequent fields would be as follows (with a separator between each field):
Field: #2 #3-N
============== ==============
ENGINECOMMAND, [PARAMETER(S),]

Returns:
Collection of the parameter(s)
Throws:
SAFSException

convertToDelimitedString

protected java.lang.String convertToDelimitedString(java.lang.String[] items)
find a unique separator using STAFLocalServer.getUniqueSeparator and convert the array to a single string of separated values. The first character in the returned string defines the delimiter used to separate the items. If there are no items in the provided array (length==0) then we return a 0-length (empty) String.

Parameters:
items -
Returns:
character delimited String of fields
See Also:
STAFLocalServer.getUniqueSeparator(String)

_getObjectRecognitionAtScreenCoords

protected void _getObjectRecognitionAtScreenCoords()
get recognition string of a GUI object at screen coordinates. the recognition string depends on specific engine. params[0] = x coords on screen params[1] = y coords on screen

See Also:
recognitionOfObjectAtPoint(int, int)

recognitionOfObjectAtPoint

protected java.lang.String recognitionOfObjectAtPoint(int x,
                                                      int y)