All Downloads are FREE. Search and download functionalities are using the official Maven repository.

au.id.tmm.fetch.aws.textract.parsing.Lines.scala Maven / Gradle / Ivy

package au.id.tmm.fetch.aws.textract.parsing

import au.id.tmm.fetch.aws.textract.model._
import au.id.tmm.utilities.errors.ExceptionOr
import software.amazon.awssdk.services.textract.{model => sdk}

private[parsing] object Lines {

  import Common._
  import Relationships._

  def parseLine(
    atomBlocksLookup: Map[BlockId, AtomicBlock],
    block: sdk.Block,
  ): ExceptionOr[Line] =
    for {
      _          <- requireBlockType(block, sdk.BlockType.LINE)
      id         <- BlockId.fromString(block.id)
      pageNumber <- PageNumber(block.page)
      geometry   <- parseGeometry(block.geometry)
      text       <- requireNonNull(block.text)
      children   <- lookupOrFail(atomBlocksLookup, block, sdk.RelationshipType.CHILD)
    } yield Line(
      id,
      pageNumber,
      geometry,
      text,
      children,
    )

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy