parse method
Attempts to parse the raw Result's contents as a particular type of information (email, URL, etc.) and return a ParsedResult encapsulating the result of parsing.
@param theResult the raw Result to parse @return ParsedResult encapsulating the parsing result
Implementation
@override
ProductParsedResult? parse(Result result) {
  final format = result.barcodeFormat;
  if (!(format == BarcodeFormat.upcA ||
      format == BarcodeFormat.upcE ||
      format == BarcodeFormat.ean8 ||
      format == BarcodeFormat.ean13)) {
    return null;
  }
  final rawText = ResultParser.getMassagedText(result);
  if (!isStringOfDigits(rawText, rawText.length)) {
    return null;
  }
  // Not actually checking the checksum again here
  String normalizedProductID;
  // Expand UPC-E for purposes of searching
  if (format == BarcodeFormat.upcE && rawText.length == 8) {
    normalizedProductID = UPCEReader.convertUPCEtoUPCA(rawText);
  } else {
    normalizedProductID = rawText;
  }
  return ProductParsedResult(rawText, normalizedProductID);
}