fetchBlockIO method
Implementation
Result<List<List<dynamic>>, bool> fetchBlockIO(ComponentData blockData) {
List<Map<String, dynamic>> inputs = [];
List<String> outputs = [];
bool asEmptyMandatory = false;
for (var portId in blockData.childrenIds) {
var port = canvasReader.model.getComponent(portId);
PortData portData = port.data;
var portConnections = port.connections;
if (portData.isMandatory && portConnections.isEmpty) {
asEmptyMandatory = true;
break;
} else {
portConnections.forEach(
(connection) {
var name = connection.otherComponentId;
var linkedPort = canvasReader.model.getComponent(name);
PortData linkedPortData = linkedPort.data;
var linkedPortParent =
canvasReader.model.getComponent(linkedPort.parentId!);
if (portData.isInput) {
inputs.add({
"input_name": portData.name,
"depend_block_name": linkedPortParent.type,
"depend_block_id": linkedPortParent.id,
"depend_on_block_output_name": linkedPortData.name,
});
} else {
outputs.add(
portData.name,
);
}
},
);
}
}
return asEmptyMandatory ? Failure(false) : Success([inputs, outputs]);
}