A base Command implementation that executes other Commands.

A MacroCommand maintains a list of Command 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 Notification 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.

Hierarchy (view full)

Constructors

Properties

multitonKey: string

The Multiton Key for this app

MULTITON_MSG: string = "multitonKey for this Notifier not yet initialized!"

Message Constants

Accessors

Methods

  • Add a SubCommand.

    The SubCommands will be called in First In/First Out (FIFO) order.

    Parameters

    • factory: (() => ICommand)

      A factory function that creates an instance of ICommand. This function will be used to generate the sub-command.

    Returns void

  • Initialize the MacroCommand.

    In your subclass, override this method to initialize the MacroCommand's SubCommand list with Command class references like this:

    // Initialize MyMacroCommand
    initializeMacroCommand() {
    this.addSubCommand(() => new app.FirstCommand());
    this.addSubCommand(() => new app.SecondCommand());
    this.addSubCommand(() => new app.ThirdCommand());
    }

    Note that SubCommands may be any Command implementor, MacroCommands or SimpleCommands are both acceptable.

    Returns void

  • Initialize this Notifier instance.

    This is how a Notifier gets its multitonKey. Calls to sendNotification or to access the facade will fail until after this method has been called.

    Mediators, Commands or Proxies may override this method in order to send notifications or access the Multiton Facade instance as soon as possible. They CANNOT access the facade in their constructors, since this method will not yet have been called.

    Parameters

    • key: string

      the multitonKey for this Notifier to use

    Returns void

  • Create and send an Notification.

    Keeps us from having to construct new Notification instances in our implementation code.

    Parameters

    • notificationName: string

      The name of the notification to be sent.

    • Optionalbody: any

      Optional data to be included with the notification.

    • Optionaltype: string

      Optional type of the notification.

    Returns void