Class MacroCommand
public class MacroCommand extends Notifier implements ICommand
A base ICommand
implementation that executes other ICommand
s.
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.
- See Also:
Controller
,Notification
,SimpleCommand
-
Field Summary
-
Constructor Summary
Constructors Constructor Description MacroCommand()
Constructor. -
Method Summary
Modifier and Type Method Description protected void
addSubCommand(java.util.function.Supplier<ICommand> factory)
Add a SubCommand.void
execute(INotification notification)
Execute thisMacroCommand
's SubCommands.protected void
initializeMacroCommand()
Initialize theMacroCommand
.Methods inherited from class org.puremvc.java.patterns.observer.Notifier
sendNotification, sendNotification, sendNotification
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface org.puremvc.java.interfaces.INotifier
sendNotification, sendNotification, sendNotification
-
Constructor Details
-
MacroCommand
public MacroCommand()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()
.
-
-
Method Details
-
initializeMacroCommand
protected void initializeMacroCommand()Initialize the
MacroCommand
.In your subclass, override this method to initialize the
MacroCommand
's SubCommand list withICommand
class references like this:// Initialize MyMacroCommand protected void initializeMacroCommand( ) { addSubCommand( () -> new com.me.myapp.controller.FirstCommand() ); addSubCommand( () -> new com.me.myapp.controller.SecondCommand() ); addSubCommand( () -> new com.me.myapp.controller.ThirdCommand() ); }
Note that SubCommands may be any
ICommand
implementor,MacroCommand
s orSimpleCommands
are both acceptable. -
addSubCommand
Add a SubCommand.
The SubCommands will be called in First In/First Out (FIFO) order.
- Parameters:
factory
- a reference to the factory of theICommand
.
-
execute
Execute this
MacroCommand
's SubCommands.The SubCommands will be called in First In/First Out (FIFO) order.
-