Github user mbeckerle commented on a diff in the pull request:

    https://github.com/apache/incubator-daffodil/pull/12#discussion_r153951013
  
    --- Diff: 
daffodil-io/src/main/scala/edu/illinois/ncsa/daffodil/io/FormatInfo.scala ---
    @@ -0,0 +1,49 @@
    +package edu.illinois.ncsa.daffodil.io
    +
    +import java.nio.charset.CharsetDecoder
    +import java.nio.charset.CharsetEncoder
    +import edu.illinois.ncsa.daffodil.schema.annotation.props.gen.BitOrder
    +import edu.illinois.ncsa.daffodil.schema.annotation.props.gen.ByteOrder
    +import 
edu.illinois.ncsa.daffodil.schema.annotation.props.gen.BinaryFloatRep
    +import edu.illinois.ncsa.daffodil.util.MaybeInt
    +import java.nio.charset.Charset
    +import java.nio.charset.CodingErrorAction
    +import 
edu.illinois.ncsa.daffodil.schema.annotation.props.gen.EncodingErrorPolicy
    +import edu.illinois.ncsa.daffodil.util.Maybe
    +import edu.illinois.ncsa.daffodil.schema.annotation.props.gen.UTF16Width
    +
    +/**
    + * Abstract interface to obtain format properties.
    + *
    + * By passing in an object that provides quick access to these, we avoid 
the
    + * need to have setters/getters that change state in the I/O layer.
    + */
    +trait FormatInfo {
    +  def encoder: CharsetEncoder
    +  def decoder: CharsetDecoder
    +  def reportingDecoder: CharsetDecoder
    +  def replacingDecoder: CharsetDecoder
    +  def codingErrorAction: CodingErrorAction
    +  def isFixedWidthEncoding: Boolean
    +  def byteOrder: ByteOrder
    +  final def jByteOrder = byteOrder match {
    +    case ByteOrder.BigEndian => java.nio.ByteOrder.BIG_ENDIAN
    +    case _ => java.nio.ByteOrder.LITTLE_ENDIAN
    +  }
    +  def bitOrder: BitOrder
    +  def fillByte: Byte
    --- End diff --
    
    bug: below fillLong can't be lazy val. Must be def.


---

Reply via email to