run method
Runs a formula command
with parameters
.
Implementation
Future<ASTValue?> run(String command, List parameters,
{Map<String, dynamic>? fields}) async {
var vm = (await getVM())!;
var runner = _createRunner(vm);
var className = await getFormulaClassName();
if (className.isEmpty) {
throw StateError("A formula needs a class ending with 'Formula'.");
}
var classInstanceFields = _toClassInstanceFields(fields);
FutureOr<ASTValue>? result;
if ((await runner.getClassMethod('', className, command, parameters)) !=
null) {
result = runner.executeClassMethod('', className, command,
positionalParameters: parameters,
classInstanceFields: classInstanceFields);
} else if ((await runner.getClassMethod('', className, command)) != null) {
result = runner.executeClassMethod('', className, command,
classInstanceFields: classInstanceFields);
}
if (result == null) return null;
var resultValue = await result;
return resultValue;
}