validateDiagram method
- RegulatoryStandard? standard,
Triggers calculation and validation
Implementation
Future<void> validateDiagram({RegulatoryStandard? standard}) async {
final root = state.root;
if (root == null) {
emit(state.copyWith(
status: DiagramStatus.error, errorMessage: "No root defined"));
return;
}
emit(state.copyWith(status: DiagramStatus.calculating));
try {
// 1. Calculate Engine
final calcResult = await _calculateDiagramUseCase(
params: CalculateDiagramParams(root),
);
final calculatedRoot = calcResult.root;
// 2. Standard Validation
if (standard != null) {
await _validateDiagramUseCase(
params: ValidateDiagramParams(calculatedRoot, standard),
);
// Map ValidationResult to Error/Warning in state if needed
}
emit(state.copyWith(
status: DiagramStatus.validated,
root: calculatedRoot,
validationErrors: calcResult.errors,
));
} catch (e) {
emit(state.copyWith(
status: DiagramStatus.error, errorMessage: "Calculation Failed: $e"));
}
}