extract method
Extracts an UIC number from input and splits it up into its
UICDetails Returns null if input is null or if the resulting UIC
number is invalid. Extracts details for 12-digit UIC numbers, otherwise
UICDetails.descriptions is empty.
Implementation
@override
UICDetails? extract(String? input) {
if (input == null) return null;
final uic = _extractUICFromString(input);
if (uic == null || uic.isEmpty) return null;
final uicCategory = _uicDetailsService.determineCategory(uic);
final uicType = _uicDetailsService.determineType(uic);
final List<UICDescription> values =
uicCategory != null ? _uicDetailsService.extractUICValues(uic, uicCategory) : [];
return UICDetails(
uicNumber: _uicDetailsService.formatUIC(
uic,
category: uicCategory,
type: uicType,
),
uicType: uicType,
descriptions: values,
uicCategory: uicCategory,
);
}