Packages

c

za.co.absa.cobrix.cobol.reader.extractors.raw

TextRecordExtractor

class TextRecordExtractor extends Serializable with RawRecordExtractor

This implementation of a record extractor for ASCII test files.

Record extractors are used for in situations where the size of records in a file is not fixed and cannot be determined neither from the copybook nor from record headers.

Empty lines (ones that contain only LF / CRLF) are skipped.

The implementation is optimized for performance, so might be not obviously readable. Hopefully, comments will help anyone reading this.

Linear Supertypes
RawRecordExtractor, Iterator[Array[Byte]], TraversableOnce[Array[Byte]], GenTraversableOnce[Array[Byte]], Serializable, Serializable, AnyRef, Any
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. TextRecordExtractor
  2. RawRecordExtractor
  3. Iterator
  4. TraversableOnce
  5. GenTraversableOnce
  6. Serializable
  7. Serializable
  8. AnyRef
  9. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Instance Constructors

  1. new TextRecordExtractor(ctx: RawRecordContext)

Type Members

  1. class GroupedIterator[B >: A] extends AbstractIterator[Seq[B]] with Iterator[Seq[B]]
    Definition Classes
    Iterator

Value Members

  1. final def !=(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  2. final def ##(): Int
    Definition Classes
    AnyRef → Any
  3. def ++[B >: Array[Byte]](that: ⇒ GenTraversableOnce[B]): Iterator[B]
    Definition Classes
    Iterator
  4. final def ==(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  5. def addString(b: StringBuilder): StringBuilder
    Definition Classes
    TraversableOnce
  6. def addString(b: StringBuilder, sep: String): StringBuilder
    Definition Classes
    TraversableOnce
  7. def addString(b: StringBuilder, start: String, sep: String, end: String): StringBuilder
    Definition Classes
    TraversableOnce
  8. def aggregate[B](z: ⇒ B)(seqop: (B, Array[Byte]) ⇒ B, combop: (B, B) ⇒ B): B
    Definition Classes
    TraversableOnce → GenTraversableOnce
  9. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  10. def buffered: BufferedIterator[Array[Byte]]
    Definition Classes
    Iterator
  11. def canSplitHere: Boolean

    Returns true if the input stream can be split at the given location.

    Returns true if the input stream can be split at the given location.

    Usually every file can be split by the location at the beginning of each record. However, block variable length files (record_format = VB) can only be split by blocks

    Definition Classes
    RawRecordExtractor
  12. def clone(): AnyRef
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... ) @native()
  13. def collect[B](pf: PartialFunction[Array[Byte], B]): Iterator[B]
    Definition Classes
    Iterator
    Annotations
    @migration
    Migration

    (Changed in version 2.8.0) collect has changed. The previous behavior can be reproduced with toSeq.

  14. def collectFirst[B](pf: PartialFunction[Array[Byte], B]): Option[B]
    Definition Classes
    TraversableOnce
  15. def contains(elem: Any): Boolean
    Definition Classes
    Iterator
  16. def copyToArray[B >: Array[Byte]](xs: Array[B], start: Int, len: Int): Unit
    Definition Classes
    Iterator → TraversableOnce → GenTraversableOnce
  17. def copyToArray[B >: Array[Byte]](xs: Array[B]): Unit
    Definition Classes
    TraversableOnce → GenTraversableOnce
  18. def copyToArray[B >: Array[Byte]](xs: Array[B], start: Int): Unit
    Definition Classes
    TraversableOnce → GenTraversableOnce
  19. def copyToBuffer[B >: Array[Byte]](dest: Buffer[B]): Unit
    Definition Classes
    TraversableOnce
  20. def corresponds[B](that: GenTraversableOnce[B])(p: (Array[Byte], B) ⇒ Boolean): Boolean
    Definition Classes
    Iterator
  21. def count(p: (Array[Byte]) ⇒ Boolean): Int
    Definition Classes
    TraversableOnce → GenTraversableOnce
  22. def drop(n: Int): Iterator[Array[Byte]]
    Definition Classes
    Iterator
  23. def dropWhile(p: (Array[Byte]) ⇒ Boolean): Iterator[Array[Byte]]
    Definition Classes
    Iterator
  24. def duplicate: (Iterator[Array[Byte]], Iterator[Array[Byte]])
    Definition Classes
    Iterator
  25. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  26. def equals(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  27. def exists(p: (Array[Byte]) ⇒ Boolean): Boolean
    Definition Classes
    Iterator → TraversableOnce → GenTraversableOnce
  28. def filter(p: (Array[Byte]) ⇒ Boolean): Iterator[Array[Byte]]
    Definition Classes
    Iterator
  29. def filterNot(p: (Array[Byte]) ⇒ Boolean): Iterator[Array[Byte]]
    Definition Classes
    Iterator
  30. def finalize(): Unit
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  31. def find(p: (Array[Byte]) ⇒ Boolean): Option[Array[Byte]]
    Definition Classes
    Iterator → TraversableOnce → GenTraversableOnce
  32. def flatMap[B](f: (Array[Byte]) ⇒ GenTraversableOnce[B]): Iterator[B]
    Definition Classes
    Iterator
  33. def fold[A1 >: Array[Byte]](z: A1)(op: (A1, A1) ⇒ A1): A1
    Definition Classes
    TraversableOnce → GenTraversableOnce
  34. def foldLeft[B](z: B)(op: (B, Array[Byte]) ⇒ B): B
    Definition Classes
    TraversableOnce → GenTraversableOnce
  35. def foldRight[B](z: B)(op: (Array[Byte], B) ⇒ B): B
    Definition Classes
    TraversableOnce → GenTraversableOnce
  36. def forall(p: (Array[Byte]) ⇒ Boolean): Boolean
    Definition Classes
    Iterator → TraversableOnce → GenTraversableOnce
  37. def foreach[U](f: (Array[Byte]) ⇒ U): Unit
    Definition Classes
    Iterator → TraversableOnce → GenTraversableOnce
  38. final def getClass(): Class[_]
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  39. def grouped[B >: Array[Byte]](size: Int): GroupedIterator[B]
    Definition Classes
    Iterator
  40. def hasDefiniteSize: Boolean
    Definition Classes
    Iterator → TraversableOnce → GenTraversableOnce
  41. def hasNext: Boolean
    Definition Classes
    TextRecordExtractor → Iterator
  42. def hashCode(): Int
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  43. def indexOf[B >: Array[Byte]](elem: B, from: Int): Int
    Definition Classes
    Iterator
  44. def indexOf[B >: Array[Byte]](elem: B): Int
    Definition Classes
    Iterator
  45. def indexWhere(p: (Array[Byte]) ⇒ Boolean, from: Int): Int
    Definition Classes
    Iterator
  46. def indexWhere(p: (Array[Byte]) ⇒ Boolean): Int
    Definition Classes
    Iterator
  47. def isEmpty: Boolean
    Definition Classes
    Iterator → TraversableOnce → GenTraversableOnce
  48. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  49. def isTraversableAgain: Boolean
    Definition Classes
    Iterator → GenTraversableOnce
  50. def length: Int
    Definition Classes
    Iterator
  51. def map[B](f: (Array[Byte]) ⇒ B): Iterator[B]
    Definition Classes
    Iterator
  52. def max[B >: Array[Byte]](implicit cmp: Ordering[B]): Array[Byte]
    Definition Classes
    TraversableOnce → GenTraversableOnce
  53. def maxBy[B](f: (Array[Byte]) ⇒ B)(implicit cmp: Ordering[B]): Array[Byte]
    Definition Classes
    TraversableOnce → GenTraversableOnce
  54. def min[B >: Array[Byte]](implicit cmp: Ordering[B]): Array[Byte]
    Definition Classes
    TraversableOnce → GenTraversableOnce
  55. def minBy[B](f: (Array[Byte]) ⇒ B)(implicit cmp: Ordering[B]): Array[Byte]
    Definition Classes
    TraversableOnce → GenTraversableOnce
  56. def mkString: String
    Definition Classes
    TraversableOnce → GenTraversableOnce
  57. def mkString(sep: String): String
    Definition Classes
    TraversableOnce → GenTraversableOnce
  58. def mkString(start: String, sep: String, end: String): String
    Definition Classes
    TraversableOnce → GenTraversableOnce
  59. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  60. def next(): Array[Byte]
    Definition Classes
    TextRecordExtractor → Iterator
  61. def nonEmpty: Boolean
    Definition Classes
    TraversableOnce → GenTraversableOnce
  62. final def notify(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  63. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  64. def offset: Long

    Returns the byte offset of the next record.

    Returns the byte offset of the next record.

    The offset should point to the absolute beginning of the record, e.g. including headers, so that if a record extractor is started from this offset it would be able to extract the record by invoking .next().

    IMPORTANT. The offset points to the next record to be fetched by .next(). If this invariant is not held, the reader might get inconsistent record ids, or can fail in certain circumstances.

    If you want to prefetch a record, use this pattern:

    class ExampleRecordExtractor(ctx: RawRecordContext) extends Serializable with RawRecordExtractor {
    
      private var currentOffset = ctx.inputStream.offset
    
      var record: Option[Array[Byte]] = fetchRecord()
    
      override def offset: Long = currentOffset
    
      override def hasNext: Boolean = record.isDefined
    
      override def next(): Array[Byte] = {
        if (record.isEmpty)
            throw new NoSuchElementException("next on empty iterator")
    
        currentOffset = ctx.inputStream.offset
        val result = record.get
        record = fetchRecord()
        result
      }
    
      def fetchRecord(): Option[Array[Byte]] = {
        // fetch the record from the stream if any
      }
    }
    Definition Classes
    TextRecordExtractorRawRecordExtractor
  65. def onReceiveAdditionalInfo(additionalInfo: String): Unit

    Clients of 'spark-cobol' can pass additional information to custom record header parsers using

    Clients of 'spark-cobol' can pass additional information to custom record header parsers using

    .option("re_additional_info", "...anything as a string...")

    If a client provides any additional info the method will be executed just after constructing the record header parser.

    Built-in record header parsers ignore the additional info. This info string is intended for custom record header parsers.

    additionalInfo

    A string provided by a client for the record header parser.

    Definition Classes
    RawRecordExtractor
  66. def padTo[A1 >: Array[Byte]](len: Int, elem: A1): Iterator[A1]
    Definition Classes
    Iterator
  67. def partition(p: (Array[Byte]) ⇒ Boolean): (Iterator[Array[Byte]], Iterator[Array[Byte]])
    Definition Classes
    Iterator
  68. def patch[B >: Array[Byte]](from: Int, patchElems: Iterator[B], replaced: Int): Iterator[B]
    Definition Classes
    Iterator
  69. def product[B >: Array[Byte]](implicit num: Numeric[B]): B
    Definition Classes
    TraversableOnce → GenTraversableOnce
  70. def reduce[A1 >: Array[Byte]](op: (A1, A1) ⇒ A1): A1
    Definition Classes
    TraversableOnce → GenTraversableOnce
  71. def reduceLeft[B >: Array[Byte]](op: (B, Array[Byte]) ⇒ B): B
    Definition Classes
    TraversableOnce
  72. def reduceLeftOption[B >: Array[Byte]](op: (B, Array[Byte]) ⇒ B): Option[B]
    Definition Classes
    TraversableOnce → GenTraversableOnce
  73. def reduceOption[A1 >: Array[Byte]](op: (A1, A1) ⇒ A1): Option[A1]
    Definition Classes
    TraversableOnce → GenTraversableOnce
  74. def reduceRight[B >: Array[Byte]](op: (Array[Byte], B) ⇒ B): B
    Definition Classes
    TraversableOnce → GenTraversableOnce
  75. def reduceRightOption[B >: Array[Byte]](op: (Array[Byte], B) ⇒ B): Option[B]
    Definition Classes
    TraversableOnce → GenTraversableOnce
  76. def reversed: List[Array[Byte]]
    Attributes
    protected[this]
    Definition Classes
    TraversableOnce
  77. def sameElements(that: Iterator[_]): Boolean
    Definition Classes
    Iterator
  78. def scanLeft[B](z: B)(op: (B, Array[Byte]) ⇒ B): Iterator[B]
    Definition Classes
    Iterator
  79. def scanRight[B](z: B)(op: (Array[Byte], B) ⇒ B): Iterator[B]
    Definition Classes
    Iterator
  80. def seq: Iterator[Array[Byte]]
    Definition Classes
    Iterator → TraversableOnce → GenTraversableOnce
  81. def size: Int
    Definition Classes
    TraversableOnce → GenTraversableOnce
  82. def sizeHintIfCheap: Int
    Attributes
    protected[collection]
    Definition Classes
    GenTraversableOnce
  83. def slice(from: Int, until: Int): Iterator[Array[Byte]]
    Definition Classes
    Iterator
  84. def sliceIterator(from: Int, until: Int): Iterator[Array[Byte]]
    Attributes
    protected
    Definition Classes
    Iterator
  85. def sliding[B >: Array[Byte]](size: Int, step: Int): GroupedIterator[B]
    Definition Classes
    Iterator
  86. def span(p: (Array[Byte]) ⇒ Boolean): (Iterator[Array[Byte]], Iterator[Array[Byte]])
    Definition Classes
    Iterator
  87. def sum[B >: Array[Byte]](implicit num: Numeric[B]): B
    Definition Classes
    TraversableOnce → GenTraversableOnce
  88. final def synchronized[T0](arg0: ⇒ T0): T0
    Definition Classes
    AnyRef
  89. def take(n: Int): Iterator[Array[Byte]]
    Definition Classes
    Iterator
  90. def takeWhile(p: (Array[Byte]) ⇒ Boolean): Iterator[Array[Byte]]
    Definition Classes
    Iterator
  91. def to[Col[_]](implicit cbf: CanBuildFrom[Nothing, Array[Byte], Col[Array[Byte]]]): Col[Array[Byte]]
    Definition Classes
    TraversableOnce → GenTraversableOnce
  92. def toArray[B >: Array[Byte]](implicit arg0: ClassTag[B]): Array[B]
    Definition Classes
    TraversableOnce → GenTraversableOnce
  93. def toBuffer[B >: Array[Byte]]: Buffer[B]
    Definition Classes
    TraversableOnce → GenTraversableOnce
  94. def toIndexedSeq: IndexedSeq[Array[Byte]]
    Definition Classes
    TraversableOnce → GenTraversableOnce
  95. def toIterable: Iterable[Array[Byte]]
    Definition Classes
    TraversableOnce → GenTraversableOnce
  96. def toIterator: Iterator[Array[Byte]]
    Definition Classes
    Iterator → GenTraversableOnce
  97. def toList: List[Array[Byte]]
    Definition Classes
    TraversableOnce → GenTraversableOnce
  98. def toMap[T, U](implicit ev: <:<[Array[Byte], (T, U)]): Map[T, U]
    Definition Classes
    TraversableOnce → GenTraversableOnce
  99. def toSeq: Seq[Array[Byte]]
    Definition Classes
    TraversableOnce → GenTraversableOnce
  100. def toSet[B >: Array[Byte]]: Set[B]
    Definition Classes
    TraversableOnce → GenTraversableOnce
  101. def toStream: Stream[Array[Byte]]
    Definition Classes
    Iterator → GenTraversableOnce
  102. def toString(): String
    Definition Classes
    Iterator → AnyRef → Any
  103. def toTraversable: Traversable[Array[Byte]]
    Definition Classes
    Iterator → TraversableOnce → GenTraversableOnce
  104. def toVector: Vector[Array[Byte]]
    Definition Classes
    TraversableOnce → GenTraversableOnce
  105. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  106. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  107. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... ) @native()
  108. def withFilter(p: (Array[Byte]) ⇒ Boolean): Iterator[Array[Byte]]
    Definition Classes
    Iterator
  109. def zip[B](that: Iterator[B]): Iterator[(Array[Byte], B)]
    Definition Classes
    Iterator
  110. def zipAll[B, A1 >: Array[Byte], B1 >: B](that: Iterator[B], thisElem: A1, thatElem: B1): Iterator[(A1, B1)]
    Definition Classes
    Iterator
  111. def zipWithIndex: Iterator[(Array[Byte], Int)]
    Definition Classes
    Iterator

Deprecated Value Members

  1. def /:[B](z: B)(op: (B, Array[Byte]) ⇒ B): B
    Definition Classes
    TraversableOnce → GenTraversableOnce
    Annotations
    @deprecated
    Deprecated

    (Since version 2.12.10) Use foldLeft instead of /:

  2. def :\[B](z: B)(op: (Array[Byte], B) ⇒ B): B
    Definition Classes
    TraversableOnce → GenTraversableOnce
    Annotations
    @deprecated
    Deprecated

    (Since version 2.12.10) Use foldRight instead of :\

Inherited from RawRecordExtractor

Inherited from Iterator[Array[Byte]]

Inherited from TraversableOnce[Array[Byte]]

Inherited from GenTraversableOnce[Array[Byte]]

Inherited from Serializable

Inherited from Serializable

Inherited from AnyRef

Inherited from Any

Ungrouped