isSchemaValid method
Implementation
@override
Future<String?> isSchemaValid(DartBlockProgram neoTechCore) async {
if (sampleFunctionCalls.isEmpty) {
return 'At least 1 sample function call is required.';
}
final copy = neoTechCore.copy();
for (final sampleFunctionCall in sampleFunctionCalls) {
try {
copy.mainFunction.statements.clear();
copy.mainFunction.statements.add(sampleFunctionCall);
final solutionExecutor = DartBlockExecutor(copy);
await solutionExecutor.execute();
if (solutionExecutor.thrownException != null) {
return "The function call '${sampleFunctionCall.toString()}' is invalid: ${solutionExecutor.thrownException.toString()}";
}
// FunctionCallValue.init(sampleFunctionCall).getValue(solutionExecutor);
} on Exception catch (ex) {
return "The function call '${sampleFunctionCall.toString()}' is invalid: ${ex.toString()}";
}
}
return null;
}