A base ICommand implementation that executes other
ICommands asynchronously.
An AsyncMacroCommand maintains a list of
ICommand Class references called SubCommands.
When execute is called, the AsyncMacroCommand
caches a reference to the INotification and calls
nextCommand.
If there are still SubCommands's to be executed,
the nextCommand method instantiates and calls execute
on each of its SubCommands in turn. Each SubCommand will be passed
a reference to the original INotification that was passed to the
AsyncMacroCommand's execute method. If the
SubCommand to execute is an IAsyncCommand, the
next SubCommand will not be executed until the previous
IAsyncCommand has called its commandComplete method.
Unlike AsyncCommand and SimpleCommand, your subclass
should not override execute, but instead, should
override the initializeAsyncMacroCommand method,
calling addSubCommand once for each SubCommand
to be executed.
Constructor.
You should not need to define a constructor,
instead, override the initializeAsyncMacroCommand
method.
If your subclass does define a constructor, be
sure to call super().
Starts execution of this AsyncMacroCommand's SubCommands.
The SubCommands will be called in First In/First Out (FIFO) order.
AsyncMacroCommand.