Message.parse constructor
Message.parse(
- String messageString
Implementation
factory Message.parse(String messageString) {
final _mti =
MessageTypeIndicator.fromMtiString(messageString.substring(0, 4));
final bitmap = messageString.substring(4, 20);
var message = Message()..mti = _mti;
var binary = "";
for (int i = 0; i < bitmap.length; i++) {
binary += int.parse(bitmap[i]).toRadixString(2).padLeft(4, '0');
}
var offsset = 20;
for (var i = 0; i < binary.length; i++) {
if (binary[i] == '1') {
final field = fieldFromCode(i + 1);
final fieldData = field.data!;
if (fieldData.isFixed) {
message.addFieldValue(
field, messageString.substring(offsset, offsset + fieldData.len));
offsset += fieldData.len;
} else {
var formatLength = fieldData.format!.length;
var fieldLenght = int.parse(
messageString.substring(offsset, offsset + formatLength),
);
offsset += formatLength;
message.addFieldValue(
field, messageString.substring(offsset, offsset + fieldLenght));
offsset += fieldLenght;
}
}
}
print(binary);
return message;
}