A base ICommand implementation that executes other ICommands.
A MacroCommand maintains an list of
ICommand Class references called SubCommands.
When execute is called, the MacroCommand
instantiates and calls execute on each of its SubCommands turn.
Each SubCommand will be passed a reference to the original
INotification that was passed to the MacroCommand's
execute method.
Unlike SimpleCommand, your subclass
should not override execute, but instead, should
override the initializeMacroCommand method,
calling addSubCommand once for each SubCommand
to be executed.
Constructor.
You should not need to define a constructor,
instead, override the initializeMacroCommand
method.
If your subclass does define a constructor, be
sure to call super().