leseSignaturKopf function

SignaturKopf? leseSignaturKopf(
  1. String kopf
)

Zerlegt den Signaturkopf. null, wenn kein brauchbarer Zeitstempel oder gar kein v1=-Anteil darin steht.

Implementation

SignaturKopf? leseSignaturKopf(String kopf) {
  final teile = kopf.split(',').map((x) => x.trim()).toList(growable: false);
  final tTeile = teile.where((x) => x.startsWith('t=')).toList(growable: false);
  final v1 = teile.where((x) => x.startsWith('v1=')).map((x) => x.substring(3)).toList(growable: false);
  if (tTeile.isEmpty || v1.isEmpty) return null;
  final tTeil = tTeile.first;
  final roh = tTeil.substring(2);
  // Nur ganze Zahlen: `int.tryParse` liesse ' 12 ' und '+12' durch, und ein
  // Zeitstempel ist keins von beidem.
  if (!RegExp(r'^\d{1,15}$').hasMatch(roh)) return null;
  final t = int.tryParse(roh);
  return t == null ? null : SignaturKopf(t, v1);
}