All Packages  Class Hierarchy  This Package  Previous  Next  Index

Class com.ibm.eNetwork.beans.HOD.Macro

java.lang.Object
   |
   +----com.ibm.eNetwork.beans.HOD.HODBean
           |
           +----com.ibm.eNetwork.beans.HOD.Macro

public class Macro
extends HODBean
implements SendKeyListener, CommListener, ECLConstants, HODConstants, ScreenMouseListener
Macro bean contains functionality for playing and recording host terminal user actions when it is wired to either a Terminal bean or a Session bean.

Think of the Macro bean as a state machine engine within the host screen domain. That is, a macro that is played by the Macro bean should be thought of as a series of screens and the actions for those screens. When the macro "sees" a screen in the host presentation space, the actions will be executed for that screen. If there are "next" screens specified with the current screen, the Macro bean checks any further screens from the host against the next screens for the current screen. If there is a match, the cycle continues. If there isn't a match, the macro ends in error. If there are no next screens specified, any screen is valid. This cycle continues until a screen is encountered that is specified as a stop screen. Note: if a start screen is specified (and there can be only one) the macro will not start playing unless the start screen matches.

It follows then that a macro is a series of screen statements. These screen statements each have 3 main elements: the description, the actions, and the next screens. The description is used to describe how the screen looks. Keywords, host screen attributes, field count, OIA state, and cursor position are the main ways to describe a screen. The actions are the steps the Macro bean should take when it "sees" a screen that matches the description. Actions can be keystrokes, data extraction, prompts, and user messages, among others. Note that the Macro bean ignores any screen changes while actions are being executed. The next screens are optional and are basically just pointers to valid next screens after the actions take place. Next screens must correspond to existing screens in the macro and are the way to enforce control flow from screen to screen.

The preferred language for Macro bean is XML. The Macro bean generates and parses macros as XML. All the developer needs to do is call the Macro.setMacro method with the XML string and the Macro bean will parse the macro if it is syntactically correct. Refer to the macro XML syntax document for details on how to write XML macros.

The Macro bean also supports the deprecated Host On-Demand Version 3.0 language but further use of this language is not encouraged. You may not save recorded macros from the Macro bean using the Version 3.0 syntax.

You are not limited to XML or the Version 3.0 language. If you want, you can implement your own parser in conjunction with the Macro bean. The parser you implement must keep the concept of screens and their actions. This is the only restriction. This is possible because the internal storage representation of a macro is contained in the MacroScreens class, which has its own method called Macro.setParsedMacro. Macro can be initialized with a macroScreens object using the setParsedMacro method.

The exposure of the MacroScreens class offers another benefit. You can skip the parsing step if you already have a working macro that you want to use again (for example, server side Java). MacroScreens is serializable, so all you need to do is call Macro.getParsedMacro and serialize and save the MacroScreens object returned. By skipping the parsing step, you remove all the overhead from parsing in your application. See the MacroScreens description for more information on the use of this class.

There are three basic ways to get a working macro: let the Macro bean record it, load in a previously written XML file, or assemble a MacroScreens object correctly yourself.

If you use the record feature of the Macro bean, any host interaction by the user will be recorded automatically. This is limited to rudimentary screen descriptions and keystrokes. You must design your application to take advantage of the other features of the Macro bean such as screen data extraction, detailed screen descriptions, prompting and so forth. There are methods on the Macro bean that your application can call while the bean is in record mode (insertPrompt, insertDataExtract, etc).

Also, you can set up the Macro bean with an XML file and it will parse the file for you. This requires a syntactically correct file, which you can check at runtime using the MacroParseListener/MacroParseEvent model. If there are any errors in the file, the Macro bean will report it in the parse event.

Finally, if you assemble the MacroScreens object yourself, the Macro bean has virtually unlimited extensibility. You can create any action derived from the MacroAction class to suit your needs. You can also do custom screen recognition beyond what the ECLScreenDesc can do by using the ECLSDCustom class contained in the IBM Host Access Class Library.

The following describes a way you would use the Macro bean:

  1. Instantiate a Macro bean and a Terminal or Session bean.
  2. Wire CommEvents and SendKeys events from Terminal or Session to Macro.
  3. Set up the Terminal or Session bean (host name or IP address, etc.).
  4. Call startCommunication on Terminal or Session.
  5. A CommEvent is fired to the Macro bean when startCommunication is successful. You can assume that the Macro bean is ready to use when communications start successfully. To verify the state of the Macro bean, you can implement MacroRuntimeListener and monitor MacroStateEvents. When the Macro.STATE_EMPTY state is received, the macro is ready to start recording.
  6. Populate the Macro bean with a macro using one of the three methods explained above.
  7. After you have recorded or set a macro you will be free to play it.
  8. If you are having difficulties playing the macro (timing out, for example), it is likely that the screens you have described in the macro are not matching. Implement the MacroDebugListener interface to analyze the screen comparison results.

Macro States

The following illustrates which function calls are allowed in each state:

Disconnected Stopped Empty Playing Play Paused Play Error Recording Record Paused Record Error
clearXXX  X  X
setMacroXXX  X  X
getMacroXX   X  X
play X  XX  X
record XX  X XX
pause   X  X  
stop   XX XX 

Properties

The following table lists the properties of the Macro Bean:

* - Properties with type "enum" are String types that accept a specific set of string values. The valid values for an enum property can be obtained by calling the list <property name> method. The set method for enum properties validates the value before any changes are accepted, and a PropertyVetoException is thrown if an value is given that is not valid.

Note: All properties are bound and vetoable. A PropertyChangeEvent is fired to all PropertyChangeListeners after a property is changed. A vetoable PropertyChangeEvent is fired to all VetoableChangeListeners before a property is changed. Vetoable PropertyChangeListeners can veto a property change by throwing a PropertyVetoException.

Property Name Type Default Access
macroName String zero length string read/write
macroDescription String zero length string read/write
macroAuthor String zero length string read/write
macroDate String zero length string read/write
standardTimeout int 60000 (mSec) read/write
pauseTime int 300 (mSec) read/write
initialPrompt boolean true read/write
skipNullPrompts boolean false read/write
recordUI boolean false read/write
empty boolean true read
state int STATE_DISCONNECTED read

Events Fired

Event Type Fired To Event Handler Method
MacroPromptEvent - Fired when a macro contains prompt commands. Any MacroRuntimeListener macroPromptEvent(MacroPromptEvent)
MacroExtractEvent - Fired when a macro contains extract commands. Any MacroRuntimeListener macroExtractEvent(MacroExtractEvent)
MacroStateEvent - Fired when a macro changes state. Any MacroRuntimeListener macroStateEvent(MacroStateEvent)
MacroErrorEvent - Fired when a macro error occurs. Any MacroRuntimeListener macroErrorEvent(MacroErrorEvent)
MacroTraceEvent - Fired when Macro encounters a trace action during play. Any MacroRuntimeListener macroTraceEvent(String)
MacroMessageEvent - Fired when Macro encounters a message action during play. Any MacroRuntimeListener macroMessageEvent(String)
MacroCustomActionEvent - Fired when Macro encounters a custom action during play. Any MacroCustomActionListener execute(MacroCustomActionEvent)
MacroDebugActionEvent - Fired when Macro is about to execute an action during play. Any MacroDebugListener executeAction(MacroDebugActionEvent)
MacroDebugActionEvent - Fired when Macro has compared a screen during play. Any MacroDebugListener screensCompared(MacroDebugActionEvent)
MacroParseEvent - Fired when Macro encounters a parse syntax error when setMacro is called. Any MacroParseListener parseFailed(MacroParseEvent)
PropertyChangeEvent - Fired when a property of the Bean is changed. Any PropertyChangeListener propertyChange(PropertyChangeEvent)
Vetoable PropertyChangeEvent - Fired when a vetoable property of the Bean is changed. Any VetoableChangeListener vetoableChange(PropertyChangeEvent)
MacroExtractCoordEvent - Fired when Macro encounters an extract action during play. Any MacroExtractCoordListener macroExtractCoordEvent(MacroExtractCoordEvent)
MacroLoopEvent - Fired once for each screen if the screen has a positive recognition limit value. Any MacroLoopListener macroLoopEvent(MacroLoopEvent)
MacroTickTockEvent - Fired every second until a screen is recongized or the macro times out. Any MacroTickTockListener macroTickTockEvent(MacroTickTockEvent)

Events Accepted

Event Type Fired From Event Handler Method
CommEvent Terminal, Session commEvent(commEvent)
SendKeyEvent Terminal, Session sendKeyEvent(SendKeyEvent)


Variable Index

 o AUTHOR
Author property keyword.
 o CAPTURE_BOTTOM
Use with the insertScreenDesc method to capture the bottom row(s) of the current screen.
 o CAPTURE_TOP
Use with the insertScreenDesc method to capture the top row(s) of the current screen.
 o DATE
Date property keyword.
 o DESCRIPTION
Description property keyword.
 o EID_INVALID_PARM
User supplied an invalid parameter
 o EID_M_INTERNAL_ERR
Macro has encountered an internal error
 o EID_M_INVALID_NS
Invalid next screen
 o EID_M_MISSING_SD
Missing screen descriptor
 o EID_M_RECO_LIMIT_GOTO_NOTFOUND
reco limit reached and the goto screen not found
 o EID_M_RECO_LIMIT_NOGOTO
reco limit reached without a next screen specified
 o EID_M_TIMED_OUT
Macro timed out
 o EID_MACRO_COMMWAIT_FALSE
macro COMMWAIT was false
 o EID_MACRO_PROMPT_ERR
Macro has encountered an prompt error
 o EMPTY
Empty property keyword.
 o FINAL_SCREEN_BOUNDARY
FinalScreenBoundary property keyword.
 o INITIAL_PROMPT
InitialPrompt property keyword.
 o INITIAL_SCREEN_BOUNDARY
InitialScreenBoundary property keyword.
 o NAME
Name property keyword.
 o PAUSE_TIME
PauseTime property keyword.
 o RECORD_UI
RecordUI property keyword.
 o STANDARD_TIMEOUT
StandardTimeout property keyword.
 o STATE
State property keyword.
 o STATE_DISCONNECTED
State property value.
 o STATE_EMPTY
State property value.
 o STATE_INTERNAL_ERROR
State property value.
 o STATE_PLAY_ERROR
State property value.
 o STATE_PLAY_PAUSED
State property value.
 o STATE_PLAYING
State property value.
 o STATE_RECORD_ERROR
State property value.
 o STATE_RECORD_PAUSED
State property value.
 o STATE_RECORDING
State property value.
 o STATE_STOPPED
State property value.
 o STATE_USER_ERROR
State property value.

Constructor Index

 o Macro()
Macro Bean null constructor.
 o Macro(Properties)
Constructor which takes a Properties object containing the initial property settings.

Method Index

 o addMacroCustomActionListener(MacroCustomActionListener)
Adds the given MacroCustomActionListener to the macro.
 o addMacroDebugListener(MacroDebugListener)
Adds the given MacroDebugListener to the macro.
 o addMacroExtractCoordListener(MacroExtractCoordListener)
Adds the given MacroExtractCoordListener to the macro.
 o addMacroLoopListener(MacroLoopListener)
Adds the given MacroLoopListener to the macro.
 o addMacroParseListener(MacroParseListener)
Adds the given MacroParseListener to the macro.
 o addMacroRuntimeListener(MacroRuntimeListener)
Adds the given MacroRuntimeListener to the macro.
 o addMacroTickTockListener(MacroTickTockListener)
Adds the given MacroTickTockListener to the macro.
 o beginScreen(String, int, boolean, boolean)
Starts a new screen element in the currently recording macro.
 o clear()
Clears the current macro from the Macro bean.
 o clone()
Returns a new instance of Macro with the same properties as the current Macro.
 o dispose()
Cleans up Macro's base environment and working storage.
 o endScreen()
Wraps up and saves the current macro screen in recording.
 o getMacro()
Returns the current macro to a String.
 o getMacro(OutputStream)
Returns the current macro to an output stream.
 o getMacro(PrintWriter)
Returns the current macro to a PrintWriter.
 o getMacroArray()
Returns the current macro to a string array.
 o getMacroAuthor()
Returns the author of the macro.
 o getMacroDate()
Returns the date of the macro.
 o getMacroDescription()
Returns the description of the macro.
 o getMacroName()
Returns the name of the macro.
 o getParsedMacro()
Returns the current macro as a MacroScreens object.
 o getPauseTime()
Returns the pause value for the macro.
 o getPSEventType()
Returns the type of Presentation Space (PS) event that the Macro bean monitors for screen matching.
 o getStandardTimeout()
Returns the standard timeout value for the macro.
 o getState()
Returns the current state of the Macro Bean.
 o insertConnectionWait(int, int)
Inserts a waitForConnection statement into the current macro. Deprecated.
 o insertCustomAction(String, String)
Inserts a custom action into the current macro screen during recording.
 o insertDataExtract(String, int, int, int, int)
Method that inserts a data extract sequence into the macro string.
 o insertInput(String, boolean, boolean)
Inserts an input action into the current macro screen during recording.
 o insertInput(String, int, int, boolean, boolean)
Inserts an input action into the current macro screen during recording.
 o insertMessage(String, String)
Inserts a message action into the current macro screen during recording.
 o insertOIAWait()
Inserts a standard OIA wait into the current macro. Deprecated.
 o insertPause(long)
Inserts a pause action into the current macro screen during recording.
 o insertPrompt(int, int, int, String, String, boolean)
Inserts a user prompt sequence into the current macro.
 o insertPrompt(int, int, int, String, String, boolean, boolean, boolean)
Inserts a password user prompt sequence into the current macro.
 o insertPrompt(String, String, String, String, String, boolean)
Inserts a user prompt sequence into the current macro. Deprecated.
 o insertPrompt(String, String, String, String, String, boolean, String)
Inserts a password user prompt sequence into the current macro. Deprecated.
 o insertScreenDesc(boolean, boolean, boolean, boolean)
Inserts new screen description elements into the current macro screen.
 o insertScreenDesc(boolean, boolean, String, String)
Inserts a new Smart Wait sequence into the current macro. Deprecated.
 o insertScreenDesc(int, int)
Inserts a new screen string description element into the current macro screen.
 o insertScreenDesc(int, int, int, int)
Inserts a screen string description element into the current macro screen.
 o insertSDAttrib(char, int, int, int, boolean, boolean)
Inserts an attribute description element into the current screen based on the given parameters.
 o insertSDBlock(String[], int, int, boolean, boolean, boolean)
Inserts a block description element into the current screen based on the given parameters.
 o insertSDBlock(String[], int, int, int, int, boolean, boolean, boolean)
Inserts a block description element into the current screen based on the given parameters.
 o insertSDCursor(int, int, boolean, boolean)
Inserts a cursor position description element into the current screen based on the given parameters.
 o insertSDCustom(ECLCustomRecoListener, String, boolean)
Inserts a custom description element into the current screen based on the given parameters.
 o insertSDFields(int, boolean, boolean)
Inserts a field count description element into the current screen based on the given parameters.
 o insertSDInputFields(int, boolean, boolean)
Inserts an input field count description element into the current screen based on the given parameters.
 o insertSDOIA(int, boolean, boolean)
Inserts an OIA status description element into the current screen based on the given parameters.
 o insertSDString(String, int, int, boolean, boolean, boolean)
Inserts a string description element into the current screen based on the given parameters.
 o insertSDString(String, int, int, int, int, boolean, boolean, boolean)
Inserts a string description element into the current screen based on the given parameters.
 o insertTrace(String, int)
Inserts a trace action into the current macro screen during recording.
 o insertXfer(int, String, String, String, boolean, int, String, String, String, String, String, String)
Inserts a file transfer action into the current macro screen during recording.
 o isEmpty()
Returns a flag that indicates if a macro is currently loaded.
 o isFinalScreenBoundary()
Returns whether a screen boundary is inserted at the end of the macro source code. Deprecated.
 o isInitialPrompt()
Returns the flag that controls whether Macro prescans for prompts.
 o isInitialScreenBoundary()
Returns whether a screen boundary is inserted at the start of the macro source code. Deprecated.
 o isRecordUI()
Returns whether the Macro will record user interface events on the Terminal bean.
 o isSkipNullPrompts()
Returns whether the Macro will skip prompt action that don't have values instead of stopping and firing and error event.
 o linkScreens(String, String)
Links valid MacroNextScreens to a given Screen in the macro.
 o linkScreens(String, String, int)
Links valid MacroNextScreens to a given Screen in the macro.
 o pause()
Pauses recording or playing the macro.
 o play()
Plays the current macro.
 o play(String)
Plays the current macro starting with the given screen.
 o play(String, int)
Plays the current macro starting with the given screen and action.
 o record()
Starts recording a macro, or resumes recording if the Macro is in STATE_RECORD_PAUSED.
 o record(boolean)
Starts recording a macro, or resumes recording if the Macro is in STATE_RECORD_PAUSED.
 o removeMacroCustomActionListener(MacroCustomActionListener)
Removes the given MacroCustomActionListener from the macro.
 o removeMacroDebugListener(MacroDebugListener)
Removes the given MacroDebugListener from the macro.
 o removeMacroExtractCoordListener(MacroExtractCoordListener)
Removes the given MacroExtractCoordListener from the macro.
 o removeMacroLoopListener(MacroLoopListener)
Removes the given MacroLoopListener from the macro.
 o removeMacroParseListener(MacroParseListener)
Removes the given MacroParseListener from the macro.
 o removeMacroRuntimeListener(MacroRuntimeListener)
Removes the given MacroRuntimeListener from the macro.
 o removeMacroTickTockListener(MacroTickTockListener)
Removes the given MacroTickTockListener from the macro.
 o setCurrentScreenName(String)
Sets the name of the current screen during recording.
 o setCurrentScreenTransient(boolean)
Sets the current screen in recording to transient.
 o setCurrentStartScreen(boolean)
Sets the startscreen attribute of the currently recording screen to the given value.
 o setCurrentStopScreen(boolean)
Sets the stopscreen attribute of the currently recording screen to the given value.
 o setCustomRecoListener(ECLCustomRecoListener, String)
Registers a custom recognition listener with a given ID.
 o setFinalScreenBoundary(boolean)
Sets whether a screen boundary is inserted at the end of the macro source code. Deprecated.
 o setInitialPrompt(boolean)
Sets the flag that controls whether Macro prescans for prompts.
 o setInitialScreenBoundary(boolean)
Sets whether a screen boundary is inserted at the start of the macro source code. Deprecated.
 o setMacro(BufferedReader)
Sets the current macro from a buffered reader.
 o setMacro(InputStream)
Sets the current macro from an input stream.
 o setMacro(String)
Sets the current macro from a string.
 o setMacroArray(String[])
Sets the current macro from a string array.
 o setMacroAuthor(String)
Sets the author of the macro.
 o setMacroDate(String)
Sets the creation date of the macro.
 o setMacroDescription(String)
Sets the description of the macro.
 o setMacroName(String)
Sets the name of the macro.
 o setParsedMacro(MacroScreens)
Sets the current macro from a MacroScreens object.
 o setPauseTime(int)
Sets the pause value for the macro.
 o setPrompts(MacroPrompts)
Sets the prompts after a MacroPromptEvent has been handled.
 o setPSEventType(int)
Sets the type of Presentation Space (PS) event that the Macro bean monitors for screen matching.
 o setRecordUI(boolean)
Sets whether the Macro will record user interface events on the Terminal bean.
 o setScreenTimeout(int)
Sets the timeout value for any next screens specified in the current screen.
 o setScreenTimeout(String, int)
Sets the timeout value for any next screens specified in the screen with the given name.
 o setSkipNullPrompts(boolean)
Sets whether the Macro will skip prompt action that don't have values instead of stopping and firing and error event.
 o setStandardTimeout(int)
Sets the standard timeout value for the macro.
 o setUnrecordedText(String)
Puts text into the presentation space during recording without recording the keystrokes.
 o setUnrecordedText(String, int, int)
Puts text into the presentation space during recording without recording the keystrokes.
 o stop()
Stops recording or playing the macro.
 o toString()
Returns the current macro as a string.

Variables

 o NAME
 public static final String NAME
Name property keyword.

 o DESCRIPTION
 public static final String DESCRIPTION
Description property keyword.

 o AUTHOR
 public static final String AUTHOR
Author property keyword.

 o DATE
 public static final String DATE
Date property keyword.

 o STANDARD_TIMEOUT
 public static final String STANDARD_TIMEOUT
StandardTimeout property keyword.

 o PAUSE_TIME
 public static final String PAUSE_TIME
PauseTime property keyword.

 o INITIAL_PROMPT
 public static final String INITIAL_PROMPT
InitialPrompt property keyword.

 o RECORD_UI
 public static final String RECORD_UI
RecordUI property keyword.

 o STATE
 public static final String STATE
State property keyword.

 o INITIAL_SCREEN_BOUNDARY
 public static final String INITIAL_SCREEN_BOUNDARY
InitialScreenBoundary property keyword.

 o FINAL_SCREEN_BOUNDARY
 public static final String FINAL_SCREEN_BOUNDARY
FinalScreenBoundary property keyword.

 o EMPTY
 public static final String EMPTY
Empty property keyword.

 o STATE_STOPPED
 public static final int STATE_STOPPED
State property value. Macro is stopped. A macro is loaded and ready but is not playing or recording.

 o STATE_PLAYING
 public static final int STATE_PLAYING
State property value. Macro is playing.

 o STATE_RECORDING
 public static final int STATE_RECORDING
State property value. Macro is recording.

 o STATE_PLAY_PAUSED
 public static final int STATE_PLAY_PAUSED
State property value. Macro is playing, but is currently paused.

 o STATE_RECORD_PAUSED
 public static final int STATE_RECORD_PAUSED
State property value. Macro is recording, but currently paused. In this state keystrokes entered on the screen are not recorded or added to the macro.

 o STATE_EMPTY
 public static final int STATE_EMPTY
State property value. Macro bean is initialized and connected to a session, but there is no macro source code loaded.

 o STATE_DISCONNECTED
 public static final int STATE_DISCONNECTED
State property value. Macro is not currently connected to a session. Recording and playing cannot be done in this state.

 o STATE_PLAY_ERROR
 public static final int STATE_PLAY_ERROR
State property value. Macro is stopped due to an error during playback. This is the same as STATE_STOPPED with the added information that the most recent play command failed to complete.

 o STATE_RECORD_ERROR
 public static final int STATE_RECORD_ERROR
State property value. Macro is stopped due to an error during recording. This is the same as STATE_STOPPED with the added information that the most recent record command failed to complete.

 o STATE_INTERNAL_ERROR
 public static final int STATE_INTERNAL_ERROR
State property value. Macro is stopped due to an internal error. This state is treated the same as STATE_STOPPED.

 o STATE_USER_ERROR
 public static final int STATE_USER_ERROR
State property value. Macro has encountered a user error. Errors occur when invalid data is passed on a Macro method invocation. This state is treated the same as STATE_STOPPED.

 o CAPTURE_TOP
 public static final int CAPTURE_TOP
Use with the insertScreenDesc method to capture the top row(s) of the current screen.

See Also:
insertScreenDesc
 o CAPTURE_BOTTOM
 public static final int CAPTURE_BOTTOM
Use with the insertScreenDesc method to capture the bottom row(s) of the current screen.

See Also:
insertScreenDesc
 o EID_M_INTERNAL_ERR
 public static final int EID_M_INTERNAL_ERR
Macro has encountered an internal error

 o EID_INVALID_PARM
 public static final int EID_INVALID_PARM
User supplied an invalid parameter

 o EID_M_MISSING_SD
 public static final int EID_M_MISSING_SD
Missing screen descriptor

 o EID_M_INVALID_NS
 public static final int EID_M_INVALID_NS
Invalid next screen

 o EID_M_TIMED_OUT
 public static final int EID_M_TIMED_OUT
Macro timed out

 o EID_M_RECO_LIMIT_NOGOTO
 public static final int EID_M_RECO_LIMIT_NOGOTO
reco limit reached without a next screen specified

 o EID_M_RECO_LIMIT_GOTO_NOTFOUND
 public static final int EID_M_RECO_LIMIT_GOTO_NOTFOUND
reco limit reached and the goto screen not found

 o EID_MACRO_COMMWAIT_FALSE
 public static final int EID_MACRO_COMMWAIT_FALSE
macro COMMWAIT was false

 o EID_MACRO_PROMPT_ERR
 public static final int EID_MACRO_PROMPT_ERR
Macro has encountered an prompt error

Constructors

 o Macro
 public Macro()
Macro Bean null constructor. This constructor uses the default values for all properties.

 o Macro
 public Macro(Properties p) throws PropertyVetoException
Constructor which takes a Properties object containing the initial property settings. Any properties which are not specified in the Properties object are initialized to their default values.

Parameters:
p - the new Properties for the Macro Bean.
Throws: PropertyVetoException
Fired if an invalid property value is given.

Methods

 o dispose
 public void dispose()
Cleans up Macro's base environment and working storage.

Overrides:
dispose in class HODBean
 o setUnrecordedText
 public synchronized void setUnrecordedText(String text,
                                            int row,
                                            int col) throws MacroException
Puts text into the presentation space during recording without recording the keystrokes. Host action keys ([enter], [clear], and so forth) are translated.

Virtual row/column positioning is legal with this method. That is, it is allowable to pass negative numbers in the row and col parameters. If values are negative, the text will be placed appropriately from the bottom of the screen (example, row = -2, places the text on the 2nd to the last row on the screen). Negative numbers greater than the screen size will wrap back to the bottom.

Parameters:
text - Text to be written to the PS
row - Row where text is to be written. Passing 0 will cause an exception.
col - Column where text is to be written. Passing 0 will cause an exception.
Throws: MacroException
thrown if a parameter is passed that is not valid or if Macro experiences an internal error.
 o setUnrecordedText
 public synchronized void setUnrecordedText(String text) throws MacroException
Puts text into the presentation space during recording without recording the keystrokes. Text is placed at the current cursor position. Host action keys ([enter], [clear], and so forth.) are translated.

Parameters:
text - Text to be written to the PS
Throws: MacroException
thrown if a parameter is passed that is not valid or if Macro experiences an internal error.
 o setCustomRecoListener
 public void setCustomRecoListener(ECLCustomRecoListener listener,
                                   String id) throws MacroException
Registers a custom recognition listener with a given ID. Custom recognition listeners can extend the basic ECLScreenDesc recognition functionality. This is different from the AddCustom methods because it doesn't add a descriptor to the ECLScreenDesc object, it registers a listener.

Parameters:
listener - listener that is called for recognition
id - unique identifier for recognition
Throws: MacroException
thrown if a parameter is passed that is not valid or if Macro experiences an internal error.
See Also:
ECLCustomRecoListener, ECLCustomRecoEvent
 o addMacroRuntimeListener
 public synchronized void addMacroRuntimeListener(MacroRuntimeListener listener) throws MacroException
Adds the given MacroRuntimeListener to the macro.

Parameters:
listener - The MacroRuntimeListener to be added
Throws: MacroException
thrown if a parameter is passed that is not valid or if Macro experiences an internal error.
See Also:
removeMacroRuntimeListener
 o removeMacroRuntimeListener
 public synchronized void removeMacroRuntimeListener(MacroRuntimeListener listener) throws MacroException
Removes the given MacroRuntimeListener from the macro.

Parameters:
listener - The MacroRuntimeListener to be removed
Throws: MacroException
thrown if a parameter is passed that is not valid or if Macro experiences an internal error.
See Also:
addMacroRuntimeListener
 o addMacroTickTockListener
 public synchronized void addMacroTickTockListener(MacroTickTockListener listener) throws MacroException
Adds the given MacroTickTockListener to the macro.

Parameters:
listener - The MacroTickTockListener to be added
Throws: MacroException
thrown if a parameter is passed that is not valid or if Macro experiences an internal error.
See Also:
removeMacroTickTockListener
 o removeMacroTickTockListener
 public synchronized void removeMacroTickTockListener(MacroTickTockListener listener) throws MacroException
Removes the given MacroTickTockListener from the macro.

Parameters:
listener - The MacroTickTockListener to be removed
Throws: MacroException
thrown if a parameter is passed that is not valid or if Macro experiences an internal error.
See Also:
addMacroTickTockListener
 o addMacroExtractCoordListener
 public synchronized void addMacroExtractCoordListener(MacroExtractCoordListener listener) throws MacroException
Adds the given MacroExtractCoordListener to the macro.

Parameters:
listener - The MacroExtractCoordListener to be added
Throws: MacroException
thrown if a parameter is passed that is not valid or if Macro experiences an internal error.
See Also:
removeMacroExtractCoordListener
 o removeMacroExtractCoordListener
 public synchronized void removeMacroExtractCoordListener(MacroExtractCoordListener listener) throws MacroException
Removes the given MacroExtractCoordListener from the macro.

Parameters:
listener - The MacroExtractCoordListener to be removed
Throws: MacroException
thrown if a parameter is passed that is not valid or if Macro experiences an internal error.
See Also:
addMacroExtractCoordListener
 o addMacroLoopListener
 public synchronized void addMacroLoopListener(MacroLoopListener listener) throws MacroException
Adds the given MacroLoopListener to the macro.

Parameters:
listener - The MacroLoopListener to be added
Throws: MacroException
thrown if a parameter is passed that is not valid or if Macro experiences an internal error.
See Also:
removeMacroLoopListener
 o removeMacroLoopListener
 public synchronized void removeMacroLoopListener(MacroLoopListener listener) throws MacroException
Removes the given MacroLoopListener from the macro.

Parameters:
listener - The MacroLoopListener to be removed
Throws: MacroException
thrown if a parameter is passed that is not valid or if Macro experiences an internal error.
See Also:
addMacroLoopListener
 o addMacroParseListener
 public synchronized void addMacroParseListener(MacroParseListener listener) throws MacroException
Adds the given MacroParseListener to the macro.

Parameters:
listener - The MacroParseListener to be added
Throws: MacroException
thrown if a parameter is passed that is not valid or if Macro experiences an internal error.
See Also:
removeMacroParseListener
 o removeMacroParseListener
 public synchronized void removeMacroParseListener(MacroParseListener listener) throws MacroException
Removes the given MacroParseListener from the macro.

Parameters:
listener - The MacroParseListener to be removed
Throws: MacroException
thrown if a parameter is passed that is not valid or if Macro experiences an internal error.
See Also:
addMacroParseListener
 o addMacroCustomActionListener
 public synchronized void addMacroCustomActionListener(MacroCustomActionListener listener) throws MacroException
Adds the given MacroCustomActionListener to the macro.

Parameters:
listener - The MacroCustomActionListener to be added
Throws: MacroException
thrown if a parameter is passed that is not valid or if Macro experiences an internal error.
See Also:
removeMacroCustomActionListener
 o removeMacroCustomActionListener
 public synchronized void removeMacroCustomActionListener(MacroCustomActionListener listener) throws MacroException
Removes the given MacroCustomActionListener from the macro.

Parameters:
listener - The MacroCustomActionListener to be removed
Throws: MacroException
thrown if a parameter is passed that is not valid or if Macro experiences an internal error.
See Also:
addMacroCustomActionListener
 o addMacroDebugListener
 public synchronized void addMacroDebugListener(MacroDebugListener listener) throws MacroException
Adds the given MacroDebugListener to the macro.

Parameters:
listener - The MacroDebugListener to be added
Throws: MacroException
thrown if a parameter is passed that is not valid or if Macro experiences an internal error.
See Also:
removeMacroDebugListener
 o removeMacroDebugListener
 public synchronized void removeMacroDebugListener(MacroDebugListener listener) throws MacroException
Removes the given MacroDebugListener from the macro.

Parameters:
listener - The MacroDebugListener to be removed
Throws: MacroException
thrown if a parameter is passed that is not valid or if Macro experiences an internal error.
See Also:
addMacroDebugListener
 o setMacroName
 public void setMacroName(String name) throws PropertyVetoException
Sets the name of the macro.

Parameters:
Name - String containing the new name for the macro.
Throws: PropertyVetoException
Thrown if an invalid property value is given.
 o getMacroName
 public String getMacroName()
Returns the name of the macro.

 o setMacroDescription
 public void setMacroDescription(String desc) throws PropertyVetoException
Sets the description of the macro.

Parameters:
desc - String containing the new description of the macro.
Throws: PropertyVetoException
Thrown if an invalid property value is given.
 o getMacroDescription
 public String getMacroDescription()
Returns the description of the macro.

 o setMacroAuthor
 public void setMacroAuthor(String author) throws PropertyVetoException
Sets the author of the macro.

Parameters:
author - String containing the new author of the macro.
Throws: PropertyVetoException
Thrown if an invalid property value is given.
 o getMacroAuthor
 public String getMacroAuthor()
Returns the author of the macro.

 o setMacroDate
 public void setMacroDate(String date) throws PropertyVetoException
Sets the creation date of the macro.

Parameters:
date - String containing the new date of the macro.
Throws: PropertyVetoException
Thrown if an invalid property value is given.
 o getMacroDate
 public String getMacroDate()
Returns the date of the macro.

 o setInitialPrompt
 public void setInitialPrompt(boolean flag) throws PropertyVetoException
Sets the flag that controls whether Macro prescans for prompts. When set to true, a single prompt event is generated when the macro starts and obtains the value for all prompts in the macro. When set to false, prompt events are generated for each prompt as they are encountered during macro playback.

Parameters:
Prompt - If true, generates one prompt event during prescan. If false, generates prompt events for each prompt in the macro.
Throws: PropertyVetoException
Thrown if an invalid property value is given.
See Also:
isInitialPrompt
 o isInitialPrompt
 public boolean isInitialPrompt()
Returns the flag that controls whether Macro prescans for prompts.

See Also:
setInitialPrompt
 o setSkipNullPrompts
 public void setSkipNullPrompts(boolean argSkip)
Sets whether the Macro will skip prompt action that don't have values instead of stopping and firing and error event.

Parameters:
argSkip - if true, the null prompt values will be ignored
 o isSkipNullPrompts
 public boolean isSkipNullPrompts()
Returns whether the Macro will skip prompt action that don't have values instead of stopping and firing and error event.

Returns:
if true, the null prompt values will be ignored
 o setPSEventType
 public void setPSEventType(int val)
Sets the type of Presentation Space (PS) event that the Macro bean monitors for screen matching. The valid values come from the ECLPS object and are ECLPS.USER_EVENTS, ECLPS.HOST_EVENTS, and ECLPS.ALL_EVENTS.

User events are generated by user actions like typing or moving the mouse. Host events are generated by the host system sending data to the Terminal or Session bean.

The default is ECLPS.HOST_EVENTS

See Also:
getPSEventType
 o getPSEventType
 public int getPSEventType()
Returns the type of Presentation Space (PS) event that the Macro bean monitors for screen matching.

See Also:
setPSEventType
 o setRecordUI
 public void setRecordUI(boolean newVal) throws PropertyVetoException
Sets whether the Macro will record user interface events on the Terminal bean. These are events like mouse clicks and box selection. The default is for Macro to not record UI events.

Note: if this property is set to true, cursor position will not be automatically recorded in the screen descriptions. This happens because the Macro bean is unable to reliably determine the place of the cursor when mouse clicks move the cursor.

Parameters:
newVal - if true, UI events will be recorded.
 o isRecordUI
 public boolean isRecordUI()
Returns whether the Macro will record user interface events on the Terminal bean. These are events like mouse clicks and box selection. The default is for Macro to not record UI events.

Returns:
if true, UI events will be recorded.
 o isEmpty
 public boolean isEmpty()
Returns a flag that indicates if a macro is currently loaded. This can usually be derived from the state, but some states can occur with or without a macro loaded (for example, STATE_DISCONNECTED).

See Also:
getState
 o setStandardTimeout
 public void setStandardTimeout(int wt) throws PropertyVetoException
Sets the standard timeout value for the macro. Given in milliseconds.

Parameters:
Timeout - Timeout value in milliseconds.
Throws: PropertyVetoException
Thrown if an invalid property value is given.
See Also:
getStandardTimeout
 o getStandardTimeout
 public int getStandardTimeout()
Returns the standard timeout value for the macro. Return time is in milliseconds.

See Also:
setStandardTimeout
 o setPauseTime
 public void setPauseTime(int wt) throws PropertyVetoException
Sets the pause value for the macro. This value can be used to adjust the time it takes for a new screen to appear in the Presentation Space.

Parameters:
Time - Delay time in milliseconds.
Throws: PropertyVetoException
Thrown if an invalid property value is given.
See Also:
getPauseTime
 o getPauseTime
 public int getPauseTime()
Returns the pause value for the macro. This value can be used to adjust the time it takes for a new screen to appear in the Presentation Space.

See Also:
setPauseTime
 o getState
 public int getState()
Returns the current state of the Macro Bean.

 o isInitialScreenBoundary
 public boolean isInitialScreenBoundary()
Note: isInitialScreenBoundary() is deprecated.

Returns whether a screen boundary is inserted at the start of the macro source code. In HOD Version 4.0 and later, this property is ignored because of the screen state model that Version 4.0 has adopted.

See Also:
setInitialScreenBoundary
 o setInitialScreenBoundary
 public void setInitialScreenBoundary(boolean flag) throws PropertyVetoException
Note: setInitialScreenBoundary() is deprecated.

Sets whether a screen boundary is inserted at the start of the macro source code. In HOD Version 4.0 and later, this property is ignored because of the screen state model that Version 4.0 has adopted.

Throws: PropertyVetoException
Thrown if an invalid property value is given.
See Also:
isInitialScreenBoundary
 o isFinalScreenBoundary
 public boolean isFinalScreenBoundary()
Note: isFinalScreenBoundary() is deprecated.

Returns whether a screen boundary is inserted at the end of the macro source code. In HOD Version 4.0 and later, this property is ignored because of the screen state model that Version 4.0 has adopted.

See Also:
setFinalScreenBoundary
 o setFinalScreenBoundary
 public void setFinalScreenBoundary(boolean flag) throws PropertyVetoException
Note: setFinalScreenBoundary() is deprecated.

Sets whether a screen boundary is inserted at the end of the macro source code. In HOD Version 4.0 and later, this property is ignored because of the screen state model that Version 4.0 has adopted.

Throws: PropertyVetoException
Thrown if an invalid property value is given.
See Also:
isFinalScreenBoundary
 o toString
 public String toString()
Returns the current macro as a string.

Returns:
XML string representation of the macro contained in the Macro bean
Overrides:
toString in class HODBean
 o clone
 public Object clone()
Returns a new instance of Macro with the same properties as the current Macro.

Returns:
copy of the current Macro bean object
Overrides:
clone in class HODBean
 o clear
 public void clear()
Clears the current macro from the Macro bean. If successful, a STATE_EMPTY event will be generated.

 o stop
 public void stop()
Stops recording or playing the macro. If not playing or recording, the method does nothing.

 o record
 public void record()
Starts recording a macro, or resumes recording if the Macro is in STATE_RECORD_PAUSED. This method will always append a new screen to the macro. If not stopped or record paused, the method does nothing.

Note: when record is called, a new screen will be created automatically. The name for this screen will be generated automatically also. If you wish to change the name of the screen, just call beginScreen with the new name and the automatically generated screen will be discarded.

See Also:
record
 o record
 public void record(boolean append)
Starts recording a macro, or resumes recording if the Macro is in STATE_RECORD_PAUSED. If not stopped or record paused, the method does nothing.

Note: when record is called, a new screen will be created automatically. The name for this screen will be generated automatically also. If you wish to change the name of the screen, just call beginScreen with the new name and the automatically generated screen will be discarded.

Parameters:
append - if true, macro will not be cleared
See Also:
record
 o pause
 public void pause()
Pauses recording or playing the macro. If not playing or recording, this method does nothing.

 o play
 public void play(String screenName) throws MacroException
Plays the current macro starting with the given screen. If the screen is not in the macro a MacroException will be thrown.

Parameters:
java.lang.String - screenName name of MacroScreen object to start playing with
 o play
 public void play(String screenName,
                  int actionIndex) throws MacroException
Plays the current macro starting with the given screen and action. If the screen is not in the macro or the action is not in the screen a MacroException will be thrown.

Parameters:
java.lang.String - screenName name of MacroScreen object to start playing with
MacroAction - actionIndex index of MacroAction object to start playing with
 o play
 public void play()
Plays the current macro. If not stopped or play paused, this method does nothing.

 o insertScreenDesc
 public synchronized void insertScreenDesc(boolean useNumFields,
                                           boolean useNumInputFields,
                                           String keyword,
                                           String timeOut) throws MacroException
Note: insertScreenDesc() is deprecated.

Inserts a new Smart Wait sequence into the current macro. Must be in STATE_RECORDING to perform this. When this method is called, the Macro bean will retrieve the necessary data from the Presentation Space.

Warning: this will clear all the descriptors in the current screen added by any Macro.insertSD* calls.

Parameters:
useNumFields - Use the number of fields in the PS to describe the screen.
useNumInputFields - Use the number of input fields in the PS to describe the screen.
keyword - Use a keyword to describe the screen. Pass null if you don't want to use a keyword.
timeOut - Time out value for wait. Pass 0 for indefinite wait.
Throws: MacroException
thrown if a parameter is passed that is not valid or if Macro experiences an internal error.
See Also:
insertScreenDesc, insertScreenDesc, insertScreenDesc
 o insertOIAWait
 public synchronized void insertOIAWait()
Note: insertOIAWait() is deprecated.

Inserts a standard OIA wait into the current macro. The macro will wait for the OIA to be "input not inhibited" when it encounters the line during runtime. In HOD Version 4.0 and later, this function is non-operational. OIA waits are no longer an individual action. OIA is observed as part of the screen description.

 o insertConnectionWait
 public synchronized void insertConnectionWait(int waitType,
                                               int timeOut)
Note: insertConnectionWait() is deprecated.

Inserts a waitForConnection statement into the current macro. In HOD version 4.0 and later, this function is non-operational. Connection waiting is not needed in the screen state model that Version 4.0 has adopted.

Parameters:
waitType - type of connection event to wait for. These types are defined in ECLConnection (example, ECLConnection.CONNECTION_INIT), and are mutually exclusive for the method. That is, you may not OR values together.
timeOut - Time out value for wait. Pass 0 for indefinite wait.
See Also:
ECLConnection
 o beginScreen
 public synchronized void beginScreen(String name,
                                      int recoLimit,
                                      boolean startScreen,
                                      boolean stopScreen) throws MacroException
Starts a new screen element in the currently recording macro. Note: you must call endScreen if there is a screen pending. If you don't, the current screen will be lost.

Parameters:
name - name for the screen to add
recolimit - recognition limit for the screen (0 if no limit). See macro syntax guide for details.
startScreen - if true, this screen is the initial screen for the macro.
stopScreen - if true, this screen is one of the final screens for the macro.
Throws: MacroException
thrown if a parameter is passed that is not valid or if Macro experiences an internal error.
See Also:
endScreen
 o setCurrentScreenTransient
 public synchronized void setCurrentScreenTransient(boolean val) throws MacroException
Sets the current screen in recording to transient. Transient screens exist outside the normal macro flow and are registered at all times. Use transient screens for unexpected, "throw away" screens.

Parameters:
val - if true, screen will be set to transient
Throws: MacroException
thrown if a parameter is passed that is not valid or if Macro experiences an internal error.
 o setCurrentStartScreen
 public synchronized void setCurrentStartScreen(boolean val) throws MacroException
Sets the startscreen attribute of the currently recording screen to the given value. See Macro syntax document for description of the start screen attribute.

Parameters:
val - if true, screen will be a start screen.
Throws: MacroException
thrown if a parameter is passed that is not valid or if Macro experiences an internal error.
 o setCurrentStopScreen
 public synchronized void setCurrentStopScreen(boolean val) throws MacroException
Sets the stopscreen attribute of the currently recording screen to the given value. See Macro syntax document for description of the stop screen attribute.

Parameters:
val - if true, screen will be a stop screen.
Throws: MacroException
thrown if a parameter is passed that is not valid or if Macro experiences an internal error.
 o setCurrentScreenName
 public synchronized void setCurrentScreenName(String name) throws MacroException
Sets the name of the current screen during recording.

Parameters:
name - new name for the screen within the macro.
Throws: MacroException
thrown if a parameter is passed that is not valid or if Macro experiences an internal error.
 o endScreen
 public synchronized void endScreen()
Wraps up and saves the current macro screen in recording. Call this after you have called beginScreen and added all the actions, descriptions, and next screens to the screen that you want.

See Also:
beginScreen
 o insertScreenDesc
 public synchronized void insertScreenDesc(boolean useOIA,
                                           boolean useCursor,
                                           boolean useFields,
                                           boolean useInputFields)
Inserts new screen description elements into the current macro screen. Must be in STATE_RECORDING to perform this. When this method is called, the Macro bean will retrieve the necessary data from the Presentation Space.

Warning: this will clear all the descriptors in the current screen added by any Macro.insertSD* calls.

Parameters:
useOIA - If true, OIA state must be uninhibited for screen to match
useCursor - If true, current cursor position will be captured
useNumFields - If true, current total field count will be captured
useNumInputFields - If true, current input field count will be captured
 o insertScreenDesc
 public synchronized void insertScreenDesc(int textOrient,
                                           int inset)
Inserts a new screen string description element into the current macro screen. Must be in STATE_RECORDING to perform this. When this method is called, the Macro bean will retrieve the necessary data from the Presentation Space.

Warning: this will clear all the descriptors in the current screen added by any Macro.insertSD* calls.

Parameters:
textOrient - orientation to capture the screen text
inset - number of rows from top or bottom to capture
See Also:
CAPTURE_TOP, CAPTURE_BOTTOM
 o insertScreenDesc
 public synchronized void insertScreenDesc(int srow,
                                           int scol,
                                           int erow,
                                           int ecol) throws MacroException
Inserts a screen string description element into the current macro screen. Must be in STATE_RECORDING to perform this. When this method is called, the Macro bean will retrieve the necessary data from the Presentation Space. Macro will retrieve the text from a rectangular area as specified by the input parameters.

Parameters:
srow - upper left row
scol - upper left column
erow - lower right row
ecol - lower right column
Throws: MacroException
thrown if a parameter is passed that is not valid or if Macro experiences an internal error.
 o insertSDString
 public synchronized void insertSDString(String text,
                                         int row,
                                         int col,
                                         boolean caseSense,
                                         boolean opt,
                                         boolean invertReco) throws MacroException
Inserts a string description element into the current screen based on the given parameters. The description element must appear on the host screen for the macro screen to match.

This version of insertSDString inserts a string description element that must appear at the exact row/column position given.

Note: if macro is not recording, this method will not insert a description element.

Parameters:
text - string that must appear on the screen
row - starting row position
col - ending column position
caseSense - if true, string comparison is case sensitive
opt - if true, element is optional. Optional elements introduce a pseudo-boolean OR capability. The recognition system will first compare all non-optional elements, which must all match. If the non-optional matches are successful, optional elements don't need to be considered. If there are no non-optional elements in a screen, at least one optional element must match.
invertReco - if true, recognition of the element will be inverted. This introduced a pseudo-boolean NOT capability. The match will be successful if the description element is not on the host screen.
Throws: MacroException
thrown if a parameter is passed that is not valid or if Macro experiences an internal error.
See Also:
insertSDString
 o insertSDString
 public synchronized void insertSDString(String text,
                                         int srow,
                                         int scol,
                                         int erow,
                                         int ecol,
                                         boolean caseSense,
                                         boolean opt,
                                         boolean invertReco) throws MacroException
Inserts a string description element into the current screen based on the given parameters. The description element must appear on the host screen for the macro screen to match and its actions execute during playing.

This version of insertSDString inserts a string description element that must appear in the rectangle specified by the given parameters. Wrapping is not allowed.

Note: if macro is not recording, this method will not insert a description element.

Parameters:
text - string that must appear on the screen
srow - upper left row
scol - upper left column
erow - lower right row
ecol - lower right column
caseSense - if true, string comparison is case sensitive
opt - if true, element is optional. Optional elements introduce a pseudo-boolean OR capability. The recognition system will first compare all non-optional elements, which must all match. If the non-optional matches are successful, optional elements don't need to be considered. If there are no non-optional elements in a screen, at least one optional element must match.
invertReco - if true, recognition of the element will be inverted. This introduced a pseudo-boolean NOT capability. The match will be successful if the description element is not on the host screen.
Throws: MacroException
thrown if a parameter is passed that is not valid or if Macro experiences an internal error.
See Also:
insertSDString
 o insertSDBlock
 public synchronized void insertSDBlock(String text[],
                                        int row,
                                        int col,
                                        boolean caseSense,
                                        boolean opt,
                                        boolean invertReco) throws MacroException
Inserts a block description element into the current screen based on the given parameters. The description element must appear on the host screen for the macro screen to match.

This version of insertSDBlock inserts a string description element that must appear at the exact row/column position given.

Note: if macro is not recording, this method will not insert a description element.

Parameters:
text - strings that must appear on the screen
row - starting row position
col - ending column position
caseSense - if true, string comparison is case sensitive
opt - if true, element is optional. Optional elements introduce a pseudo-boolean OR capability. The recognition system will first compare all non-optional elements, which must all match. If the non-optional matches are successful, optional elements don't need to be considered. If there are no non-optional elements in a screen, at least one optional element must match.
invertReco - if true, recognition of the element will be inverted. This introduced a pseudo-boolean NOT capability. The match will be successful if the description element is not on the host screen.
Throws: MacroException
thrown if a parameter is passed that is not valid or if Macro experiences an internal error.
See Also:
insertSDBlock
 o insertSDBlock
 public synchronized void insertSDBlock(String text[],
                                        int srow,
                                        int scol,
                                        int erow,
                                        int ecol,
                                        boolean caseSense,
                                        boolean opt,
                                        boolean invertReco) throws MacroException
Inserts a block description element into the current screen based on the given parameters. The description element must appear on the host screen for the macro screen to match and its actions execute during playing.

This version of insertSDBlock inserts a string description element that must appear in the rectangle specified by the given parameters. Wrapping is not allowed.

Note: if macro is not recording, this method will not insert a description element.

Parameters:
text - string that must appear on the screen
srow - upper left row
scol - upper left column
erow - lower right row
ecol - lower right column
caseSesnse - if true, string comparison is case sensitive
opt - if true, element is optional. Optional elements introduce a pseudo-boolean OR capability. The recognition system will first compare all non-optional elements, which must all match. If the non-optional matches are successful, optional elements don't need to be considered. If there are no non-optional elements in a screen, at least one optional element must match.
invertReco - if true, recognition of the element will be inverted. This introduced a pseudo-boolean NOT capability. The match will be successful if the description element is not on the host screen.
Throws: MacroException
thrown if a parameter is passed that is not valid or if Macro experiences an internal error.
See Also:
insertSDBlock
 o insertSDOIA
 public synchronized void insertSDOIA(int oiatype,
                                      boolean opt,
                                      boolean invertReco) throws MacroException
Inserts an OIA status description element into the current screen based on the given parameters. The description element must appear on the host screen for the macro screen to match and its actions execute during playing.

Using this method will cause the screen recognition system to monitor the host Operator Information Area (OIA) for the given status. Currently, the only two valid options are ECLSDOIA.OIA_INPUTINHIBITED, which will match only if it is possible to type on the host screen, and ECLSDOIA.OIA_DONTCARE, which ignores the OIA altogether. The default is to monitor for input not inhibited. To turn OIA monitoring off, call this method with the don't care setting.

Note: if macro is not recording, this method will not insert a description element.

Parameters:
oiatype - type of OIA status to wait for, must be ECLSDOIA.OIA_INPUTINHIBITED or ECLSDOIA.OIA_DONTCARE.
opt - if true, element is optional. Optional elements introduce a pseudo-boolean OR capability. The recognition system will first compare all non-optional elements, which must all match. If the non-optional matches are successful, optional elements don't need to be considered. If there are no non-optional elements in a screen, at least one optional element must match.
invertReco - if true, recognition of the element will be inverted. This introduced a pseudo-boolean NOT capability. The match will be successful if the description element is not on the host screen.
Throws: MacroException
thrown if a parameter is passed that is not valid or if Macro experiences an internal error.
 o insertSDCursor
 public synchronized void insertSDCursor(int row,
                                         int col,
                                         boolean opt,
                                         boolean invertReco)
Inserts a cursor position description element into the current screen based on the given parameters. The description element must appear on the host screen for the macro screen to match and its actions execute during playing.

Using this method will cause the screen recognition system to match the cursor position on the host screen to the given parameters.

Note: if macro is not recording, this method will not insert a description element.

Parameters:
row - cursor row position
col - cursor column position
opt - if true, element is optional. Optional elements introduce a pseudo-boolean OR capability. The recognition system will first compare all non-optional elements, which must all match. If the non-optional matches are successful, optional elements don't need to be considered. If there are no non-optional elements in a screen, at least one optional element must match.
invertReco - if true, recognition of the element will be inverted. This introduced a pseudo-boolean NOT capability. The match will be successful if the description element is not on the host screen.
 o insertSDAttrib
 public synchronized void insertSDAttrib(char attrib,
                                         int row,
                                         int col,
                                         int plane,
                                         boolean opt,
                                         boolean invertReco) throws MacroException
Inserts an attribute description element into the current screen based on the given parameters. The description element must appear on the host screen for the macro screen to match and its actions execute during playing.

Using this method will cause the screen recognition system to match the given attribute value against the attribute on the host screen. This is an advanced feature and should only be used if you are having trouble making a screen description truly unique. The attribute value must be one of the values specified in the IBM WebSphere Host Access Class Library (HACL) field attribute table in the reference appendix.

Note: if macro is not recording, this method will not insert a description element.

Parameters:
attrib - attribute value that must appear on the screen
row - starting row position
col - ending column position
plane - plane to search in, must be ECLConstants.FIELD_PLANE, ECLConstants.EXFIELD_PLANE, or ECLConstants.COLOR_PLANE
opt - if true, element is optional. Optional elements introduce a pseudo-boolean OR capability. The recognition system will first compare all non-optional elements, which must all match. If the non-optional matches are successful, optional elements don't need to be considered. If there are no non-optional elements in a screen, at least one optional element must match.
invertReco - if true, recognition of the element will be inverted. This introduced a pseudo-boolean NOT capability. The match will be successful if the description element is not on the host screen.
 o insertSDFields
 public synchronized void insertSDFields(int num,
                                         boolean opt,
                                         boolean invertReco)
Inserts a field count description element into the current screen based on the given parameters. The description element must appear on the host screen for the macro screen to match and its actions execute during playing.

Using this method will cause the screen recognition system to match the total number of host screen fields to the value given.

Note: if macro is not recording, this method will not insert a description element.

Parameters:
num - field count to match
opt - if true, element is optional. Optional elements introduce a pseudo-boolean OR capability. The recognition system will first compare all non-optional elements, which must all match. If the non-optional matches are successful, optional elements don't need to be considered. If there are no non-optional elements in a screen, at least one optional element must match.
invertReco - if true, recognition of the element will be inverted. This introduced a pseudo-boolean NOT capability. The match will be successful if the description element is not on the host screen.
 o insertSDInputFields
 public synchronized void insertSDInputFields(int num,
                                              boolean opt,
                                              boolean invertReco)
Inserts an input field count description element into the current screen based on the given parameters. The description element must appear on the host screen for the macro screen to match and its actions execute during playing.

Using this method will cause the screen recognition system to match the number of host screen input fields to the value given.

Note: if macro is not recording, this method will not insert a description element.

Parameters:
num - field count to match
opt - if true, element is optional. Optional elements introduce a pseudo-boolean OR capability. The recognition system will first compare all non-optional elements, which must all match. If the non-optional matches are successful, optional elements don't need to be considered. If there are no non-optional elements in a screen, at least one optional element must match.
invertReco - if true, recognition of the element will be inverted. This introduced a pseudo-boolean NOT capability. The match will be successful if the description element is not on the host screen.
 o insertSDCustom
 public synchronized void insertSDCustom(ECLCustomRecoListener listener,
                                         String id,
                                         boolean opt) throws MacroException
Inserts a custom description element into the current screen based on the given parameters. This is a special element where user code is called. It is up to the user code to examine the host screen and determine if it is a match. This gives the screen recognition system extensibility beyond its normal behavior. This is intended for advanced users only.

Note: if macro is not recording, this method will not insert a description element.

Parameters:
listener - object that implements the ECLCustomRecoListener interface. this object will be called with the ID parameter, whereby it should look at the host screen and determine a match by its own criteria. If there is a match, the object should return true.
id - identifier string used to differentiate between multiple custom recognition elements in a screen(s).
opt - if true, element is optional. Optional elements introduce a pseudo-boolean OR capability. The recognition system will first compare all non-optional elements, which must all match. If the non-optional matches are successful, optional elements don't need to be considered. If there are no non-optional elements in a screen, at least one optional element must match.
Throws: MacroException
thrown if a parameter is passed that is not valid or if Macro experiences an internal error.
See Also:
ECLCustomRecoListener,
 o insertInput
 public synchronized void insertInput(String text,
                                      boolean xlateAid,
                                      boolean moveCursor) throws MacroException
Inserts an input action into the current macro screen during recording. Input actions just place text on the screen and send host action keys like Enter or PF1. Refer to the HACL ECLConstants class for all the possible host action keys.

This version of insertInput places the text at the current cursor position.

Note: if macro is not recording, this method will not insert an action.

Parameters:
text - text to place on the host screen.
xlateAid - if true, host action keys embedded in the text parameter will be translated. See ECLConstants class for host action key values. For example, if xlateAid is False, the string "logon[enter]", is sent directly to the host session without being translated.
moveCursor - if true, cursor will move past the last character of the text placed on the screen.
Throws: MacroException
thrown if a parameter is passed that is not valid or if Macro experiences an internal error.
 o insertInput
 public synchronized void insertInput(String text,
                                      int row,
                                      int col,
                                      boolean xlateAid,
                                      boolean moveCursor) throws MacroException
Inserts an input action into the current macro screen during recording. Input actions just place text on the screen and send host action keys like enter or pf1. Refer to the HACL ECLConstants class for all the possible host action keys.

This version of insertInput places the text at the given cursor position.

Note: if macro is not recording, this method will not insert an action.

Parameters:
text - text to place on the host screen.
row - row position to place the text
col - column position to place the text
xlateAid - if true, host action keys embedded in the text parameter will be translated. See ECLConstants class for host action key values. Example, "logon[enter]", where [enter] is the host action key.
moveCursor - if true, cursor will move past the last character of the text placed on the screen.
Throws: MacroException
thrown if a parameter is passed that is not valid or if Macro experiences an internal error.
 o insertMessage
 public synchronized void insertMessage(String msg,
                                        String title) throws MacroException
Inserts a message action into the current macro screen during recording. Message actions cause the Macro bean to fire the message data to any MacroRuntimeListeners in a MacroMessageEvent. The listeners should then display this message to their users as they see fit. For example, the MacroManager bean will put up a message box. At runtime, the message events are handled synchronously.

Note: if macro is not recording, this method will not insert an action.

Parameters:
msg - actual text of the message to send to the user
title - title of the message
Throws: MacroException
thrown if a parameter is passed that is not valid or if Macro experiences an internal error.
 o insertTrace
 public synchronized void insertTrace(String data,
                                      int type) throws MacroException
Inserts a trace action into the current macro screen during recording. Trace actions cause the trace data to go to one of three places: the trace facility of the bean, a user trace facility via the MacroRuntimeListener interface, or the command line.

Note: if macro is not recording, this method will not insert an action.

Parameters:
data - text of the trace
type - sets where the trace data will go. Must be MacroActionTrace.TRACE_BEANS, MacroActionTrace.TRACE_USER, or MacroActionTrace.TRACE_SYSOUT.
Throws: MacroException
thrown if a parameter is passed that is not valid or if Macro experiences an internal error.
 o insertCustomAction
 public synchronized void insertCustomAction(String argID,
                                             String argsArgs) throws MacroException
Inserts a custom action into the current macro screen during recording. Custom actions extend the action functionality of the Macro bean. When the Macro bean encounters a custom action during playback, it calls the MacroCustomActionListeners with the data for the actions. It is up to the custom listener to parse the arguments, if any, and run whatever the action may be.

Note: if macro is not recording, this method will not insert an action.

Parameters:
argID - identifier string used to differentiate between multiple custom action elements in a screen(s).
argArgs - arguments to pass to the custom action listener.
Throws: MacroException
thrown if a parameter is passed that is not valid or if Macro experiences an internal error.
 o insertPrompt
 public synchronized void insertPrompt(String row,
                                       String col,
                                       String len,
                                       String name,
                                       String value,
                                       boolean clearField) throws MacroException
Note: insertPrompt() is deprecated.

Inserts a user prompt sequence into the current macro. When the macro runs it will be scanned for all prompt lines. Each new prompt identifier will be loaded into an object of the MacroPrompts class. This object will then be fired in a MacroPromptEvent, whereby a listener should set all values in the MacroPrompts object. After the object is set, the listener should call setPrompts on Macro to play the macro after prescan. If a value was not set, and there is a value specified on the prompt line, that value will be used. If there is no value on the prompt line, another event will be fired to try to retrieve the prompt data. If still no data is returned, the macro will end in an error.

Note: if macro is not recording, this method will not insert an action.

Parameters:
row - Row in Presentation Space to place prompt
col - Column in Presentation Space to place prompt
len - Length of prompt. Use this to guard against skip fields.
name - Identifier of prompt. Multiple instances of the same identifier may appear in a macro.
value - Default value to use for this prompt line only. This value will be overridden by the value returned in the setPrompts call.
clearField - Clears the field that the prompt is placed in if true.
Throws: MacroException
thrown if a parameter is passed that is not valid or if Macro experiences an internal error.
See Also:
MacroPrompts MacroPromptEvent
See Also:
insertPrompt, setPrompts
 o insertPrompt
 public synchronized void insertPrompt(String row,
                                       String col,
                                       String len,
                                       String name,
                                       String value,
                                       boolean clearField,
                                       String echoChar) throws MacroException
Note: insertPrompt() is deprecated.

Inserts a password user prompt sequence into the current macro. When the macro runs it will be scanned for all prompt lines. Each new prompt identifier will be loaded into an object of the MacroPrompts class. This object will then be fired in a MacroPromptEvent, whereby a listener should set all values in the MacroPrompts object. After the object is set, the listener should call setPrompts on Macro to play the macro after prescan. If a value was not set, and there is a value specified on the prompt line, that value will be used. If there is no value on the prompt line, another event will be fired to try to retrieve the prompt data. If still no data is returned, the macro will end in an error.

Note: if macro is not recording, this method will not insert an action.

Parameters:
row - Row in Presentation Space to place prompt
col - Column in Presentation Space to place prompt
len - Length of prompt. Use this to guard against skip fields.
name - Identifier of prompt. Multiple instances of the same identifier may appear in a macro.
value - Default value to use for this prompt line only. This value will be overridden by the value returned in the setPrompts call.
clearField - Clears the field that the prompt is placed in if true.
echoChar - Echo character for password. Currently, only '*' is used.
Throws: MacroException
thrown if a parameter is passed that is not valid or if Macro experiences an internal error.
See Also:
MacroPrompts MacroPromptEvent
See Also:
insertPrompt, setPrompts
 o insertPrompt
 public synchronized void insertPrompt(int row,
                                       int col,
                                       int len,
                                       String name,
                                       String value,
                                       boolean clearField) throws MacroException
Inserts a user prompt sequence into the current macro. When the macro runs it will be scanned for all prompt lines. Each new prompt identifier will be loaded into an object of the MacroPrompts class. This object will then be fired in a MacroPromptEvent, whereby a listener should set all values in the MacroPrompts object. After the object is set, the listener should call setPrompts on Macro to play the macro after prescan. If a value was not set, and there is a value specified on the prompt line, that value will be used. If there is no value on the prompt line, another event will be fired to try to retrieve the prompt data. If still no data is returned, the macro will end in an error.

Note: if macro is not recording, this method will not insert an action.

Parameters:
row - Row in Presentation Space to place prompt
col - Column in Presentation Space to place prompt
len - Length of prompt. Use this to guard against skip fields.
name - Identifier of prompt. Multiple instances of the same identifier may appear in a macro.
value - Default value to use for this prompt line only. This value will be overridden by the value returned in the setPrompts call.
clearField - Clears the field that the prompt is placed in if true.
See Also:
MacroPrompts MacroPromptEvent
Throws: MacroException
thrown if a parameter is passed that is not valid or if Macro experiences an internal error.
See Also:
insertPrompt, setPrompts
 o insertPrompt
 public synchronized void insertPrompt(int row,
                                       int col,
                                       int len,
                                       String name,
                                       String value,
                                       boolean clearField,
                                       boolean encrypted,
                                       boolean placeValue) throws MacroException
Inserts a password user prompt sequence into the current macro. When the macro runs it will be scanned for all prompt lines. Each new prompt identifier will be loaded into an object of the MacroPrompts class. This object will then be fired in a MacroPromptEvent, whereby a listener should set all values in the MacroPrompts object. After the object is set, the listener should call setPrompts on Macro to play the macro after prescan. If a value was not set, and there is a value specified on the prompt line, that value will be used. If there is no value on the prompt line, another event will be fired to try to retrieve the prompt data. If still no data is returned, the macro will end in an error.

Note: if macro is not recording, this method will not insert an action.

Parameters:
row - Row in Presentation Space to place prompt
col - Column in Presentation Space to place prompt
len - Length of prompt. Use this to guard against skip fields.
name - Identifier of prompt. Multiple instances of the same identifier may appear in a macro.
value - Default value to use for this prompt line only. This value will be overridden by the value returned in the setPrompts call.
clearField - Clears the field that the prompt is placed in if true.
encrypted - Indicates that text for the prompt should be non-displayable.
placeValue - If true, the text in the value parameter will be placed in the Screen without the text being recorded.
See Also:
MacroPrompts MacroPromptEvent
Throws: MacroException
thrown if a parameter is passed that is not valid or if Macro experiences an internal error.
See Also:
insertPrompt, setPrompts
 o setPrompts
 public synchronized void setPrompts(MacroPrompts p) throws MacroException
Sets the prompts after a MacroPromptEvent has been handled. Use this method to return the prompt data to the Macro bean and continue playing the macro. See insertPrompt for a full discussion of Macro prompting.
See Also:
MacroPrompts MacroPromptEvent

Throws: MacroException
thrown if a parameter is passed that is not valid or if Macro experiences an internal error.
See Also:
insertPrompt
 o insertPause
 public void insertPause(long argTimeout)
Inserts a pause action into the current macro screen during recording. Pause actions simply specify that the Macro bean should pause, or sleep, for the given milliseconds.

Note: if macro is not recording, this method will not insert an action.

Parameters:
argTimeout - time to pause in milliseconds, if less than or equal to 0, no pause will take place.
 o insertXfer
 public void insertXfer(int argDirection,
                        String argHostFile,
                        String argPCFile,
                        String argOptions,
                        boolean argClear,
                        int argTimeout,
                        String argPCCodePage,
                        String argHostOrient,
                        String argPCOrient,
                        String argPCFType,
                        String argLamAlefExpan,
                        String argLamAlefComp) throws MacroException
Inserts a file transfer action into the current macro screen during recording. You must adhere to your host system's file transfer options for this action to be performed correctly.

Note: if macro is not recording, this method will not insert an action.

Parameters:
argDirection - direction to transfer, must be either MacroActionXfer.DIRECTION_SEND or MacroActionXfer.DIRECTION_RECEIVE
argHostFile - name of the host file to transfer
argPCFile - name of the PC file to transfer
argOptions - host transfer options (contact your host system administrator for valid file transfer options).
argClear - if true, clears the host screen before the transfer
argTimeout - timeout value for the file transfer to go into error.
argPCCodePage - PC code page to use in the transfer, the default is "037" (English).
argHostOrient - host system orientation used for BiDi systems only. It is OK for this parameter to be null.
argPCOrient - PC system orientation used for BiDi systems only. It is OK for this parameter to be null.
argPCFType - PC file type used for BiDi systems only. It is OK for this parameter to be null.
argLamAlefExpan - Lam Alef expansion option used for Arabic systems only. It is OK for this parameter to be null.
argLamAlefComp - Lam Alef compression option used for Arabic systems only. It is OK for this parameter to be null.
Throws: MacroException
thrown if a parameter is passed that is not valid or if Macro experiences an internal error.
 o insertDataExtract
 public synchronized void insertDataExtract(String name,
                                            int srow,
                                            int scol,
                                            int erow,
                                            int ecol) throws MacroException
Method that inserts a data extract sequence into the macro string. When the macro runs, any extract lines will retrieve the text in the bounding rectangle. This text will be loaded into an array of strings (String []), where each row will be a string element in the array. This array will be fired in a MacroExtractEvent to the MacroRuntimeListeners. This event is synchronous and will not return until the listener handles it.

Note: if macro is not recording, this method will not insert an action.

Parameters:
name - Name of the data extract.
srow - Upper left row of text rectangle to extract from PS.
scol - Upper right column of text rectangle to extract from PS.
erow - Lower left row of text rectangle to extract from PS.
ecol - Lower right column of text rectangle to extract from PS.
Throws: MacroException
thrown if a parameter is passed that is not valid or if Macro experiences an internal error.
See Also:
MacroExtractEvent
 o linkScreens
 public synchronized void linkScreens(String screenName,
                                      String nextScreenName) throws MacroException
Links valid MacroNextScreens to a given Screen in the macro. The screen names in each parameter must be in the macro or an exception will be thrown. The first parameter is the screen that will contain the link to the next screen in the second parameter.

During playback, if a screen is recognized and its actions are executed, any MacroNextScreens specified must appear after the actions of the current screen are executed. If another screen in the macro appears, and it is not linked to the current screen, an error will occur.

Parameters:
screenName - name of the screen that contains the link
nextScreenName - name of the screen to link to
Throws: MacroException
thrown if a parameter is passed that is not valid or if Macro experiences an internal error.
 o linkScreens
 public synchronized void linkScreens(String screenName,
                                      String nextScreenName,
                                      int timeout) throws MacroException
Links valid MacroNextScreens to a given Screen in the macro. The screen names in each parameter must be in the macro or an exception will be thrown. The first parameter is the screen that contains the link to the next screen in the second parameter.

During playback, if a screen is recognized and its actions are executed, any next screens specified must appear after the current screens actions are executed. If another screen in the macro appears, and it is not linked to the current screen, an error will occur.

Parameters:
screenName - name of the screen that contains the link
nextScreenName - name of the screen to link to
timeout - timeout value for the Macro bean to wait for any next screens. If time expires, an error will occur.
Throws: MacroException
thrown if a parameter is passed that is not valid or if Macro experiences an internal error.
 o setScreenTimeout
 public synchronized void setScreenTimeout(String name,
                                           int timeout) throws MacroException
Sets the timeout value for any next screens specified in the screen with the given name. If the name is not in the macro, an exception will be thrown.

Parameters:
name - name of screen to set the next screens timeout
timeout - timeout value for the Macro bean to wait for any next screens. If time expires, an error will occur.
Throws: MacroException
thrown if a parameter is passed that is not valid or if Macro experiences an internal error.
 o setScreenTimeout
 public synchronized void setScreenTimeout(int timeout)
Sets the timeout value for any next screens specified in the current screen.

Parameters:
timeout - timeout value for the Macro bean to wait for any next screens. If time expires, an error will occur.
 o getParsedMacro
 public MacroScreens getParsedMacro()
Returns the current macro as a MacroScreens object. By using a MacroScreens object, which is serializable, you can save an already parsed macro.

Returns:
MacroScreens object that represents a valid macro
See Also:
setMacro, setMacro, setMacro
 o setParsedMacro
 public void setParsedMacro(MacroScreens argMS) throws MacroException
Sets the current macro from a MacroScreens object. By using a MacroScreens object, which is serializable, the parsing step is skipped. You can not set the macro if you are recording or playing. The method returns without setting the macro if this is the case.

Parameters:
argMS - MacroScreens object that represents a valid macro.
Throws: MacroException
thrown if a parameter is passed that is not valid or if Macro experiences an internal error.
See Also:
setMacro, setMacro, setMacro
 o getMacro
 public String getMacro()
Returns the current macro to a String. The macro string is newline delimited.

Returns:
String that represents a valid macro.
See Also:
getMacro, getMacro
 o getMacro
 public void getMacro(OutputStream strm) throws MacroException
Returns the current macro to an output stream.

Parameters:
strm - OutputStream that the Macro should be written to.
Throws: MacroException
thrown if a parameter is passed that is not valid or if Macro experiences an internal error
See Also:
getMacro, getMacro
 o getMacroArray
 public String[] getMacroArray()
Returns the current macro to a string array. Each element in the array is a line in the macro.

See Also:
setMacro, setMacro
 o getMacro
 public void getMacro(PrintWriter wrtr) throws MacroException
Returns the current macro to a PrintWriter. A PrintWriter is used because a macro is line-delimited and the PrintWriter class has functionality for easily writing lines.

Parameters:
wrtr - PrintWriter where the Macro is to be written.
Throws: MacroException
thrown if a parameter is passed that is not valid or if Macro experiences an internal error.
See Also:
getMacro, getMacro
 o setMacro
 public void setMacro(String str) throws MacroException
Sets the current macro from a string. This string must be in XML format.

Parameters:
str - String that represents a valid macro.
Throws: MacroException
thrown if a parameter is passed that is not valid or if Macro experiences an internal error.
See Also:
setMacro, setMacro, setMacroArray, setParsedMacro
 o setMacroArray
 public void setMacroArray(String strArray[]) throws MacroException
Sets the current macro from a string array. This string array must contain the correct XML format. Each element in the string array will be treated as a separate line in the macro. This method still accepts macros which use the old macro syntax, however, XML is the preferred format.

Parameters:
strArray - String array that represents a valid macro.
Throws: MacroException
thrown if a parameter is passed that is not valid or if Macro experiences an internal error.
See Also:
setMacro, setMacro, setMacro, setParsedMacro
 o setMacro
 public void setMacro(InputStream strm) throws MacroException
Sets the current macro from an input stream. This stream must contain a string in the correct XML format. This method still accepts macros which use the old macro syntax, however, XML is the preferred format.

Parameters:
strm - InputStream where the Macro resides.
Throws: MacroException
thrown if a parameter is passed that is not valid or if Macro experiences an internal error.
See Also:
setMacro, setMacro, setMacroArray, setParsedMacro
 o setMacro
 public void setMacro(BufferedReader macReader) throws MacroException
Sets the current macro from a buffered reader. This reader must contain a string the in the correct XML format.This method still accepts macros which use the old macro syntax, however, XML is the preferred format.

Parameters:
macReader - BufferedReader where the Macro resides.
Throws: MacroException
thrown if a parameter is passed that is not valid or if Macro experiences an internal error.
See Also:
setMacro, setMacro, setMacroArray, setParsedMacro

All Packages  Class Hierarchy  This Package  Previous  Next  Index