The Command class allows calling a method or a function.
Implements: ICommand
Description
The Command class allows you to call a method or a function.
Constructors
Creates a new command object and assigns it’s parameters.
Command(String name, Schema? schema, IExecutable func)
- name: String - command name.
- schema: Schema? - schema to validate command arguments.
- func: IExecutable - function to be executed by this command.
Instance methods
Execute
Executes the command. Before execution it validates args using the defined schema.
Raise ApplicationException when execution fails for whatever reason.
See Parameters
Future<dynamic> execute(IContext? context, Parameters args)
- context: IContext - (optional) a context to trace execution through a call chain.
- args: Parameters - parameters (arguments) to pass to this command for execution.
- returns: Future<dynamic> - execution result
getName
Gets the command name.
@override
String getName()
- returns: String - name of this command.
validate
Validates the command args before execution using the defined schema.
@override
List<ValidationResult> validate(Parameters args)
- args: Parameters - parameters (arguments) to validate using this command’s schema.
- returns: List<ValidationResult> - array of ValidationResults or an empty array (if no schema is set).
Examples
var command = Command('add', null, (context, args) {
var param1 = args.getAsFloat('param1');
var param2 = args.getAsFloat('param2');
var result = param1 + param2;
return result;
});
result = await command.execute(
'123',
Parameters.fromTuples(
['param1', 2,
'param2', 2]
)).catch(err) {
if (err!= null) print(err);
else print('2 + 2 = ' + result);
}
);