This is an automated email from the ASF dual-hosted git repository.

olabusayo pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/daffodil.git


The following commit(s) were added to refs/heads/main by this push:
     new f4877903b Fix Deprecated Early Initializers
f4877903b is described below

commit f4877903bdb0400ad21b4a68d0b6d7e523f76e3d
Author: olabusayoT <[email protected]>
AuthorDate: Thu Feb 6 23:03:05 2025 -0500

    Fix Deprecated Early Initializers
    
    - use companion objects and pass the values into classes instead
    
    DAFFODIL-2152
---
 .../apache/daffodil/core/dpath/Expression.scala    |  46 +++++--
 .../daffodil/io/processors/charset/Base4.scala     |  32 +++--
 .../daffodil/io/processors/charset/Binary.scala    |  32 +++--
 .../daffodil/io/processors/charset/Hex.scala       |  32 +++--
 .../daffodil/io/processors/charset/IBM037.scala    |   8 +-
 .../daffodil/io/processors/charset/ISO88591.scala  |   8 +-
 .../io/processors/charset/ISO885918BitPacked.scala |  32 +++--
 .../daffodil/io/processors/charset/Octal.scala     |  32 +++--
 .../daffodil/io/processors/charset/USASCII.scala   |   7 +-
 .../io/processors/charset/USASCII5BitPacked.scala  |  16 ++-
 .../io/processors/charset/USASCII6BitPacked.scala  |  36 +++---
 .../io/processors/charset/USASCII7BitPacked.scala  |  16 ++-
 .../daffodil/io/processors/charset/UTF16BE.scala   |   7 +-
 .../daffodil/io/processors/charset/UTF16LE.scala   |   7 +-
 .../daffodil/io/processors/charset/UTF32BE.scala   |   7 +-
 .../daffodil/io/processors/charset/UTF32LE.scala   |   7 +-
 .../daffodil/io/processors/charset/UTF8.scala      |   7 +-
 .../io/processors/charset/X_DFDL_MIL_STD.scala     | 138 +++++++++------------
 .../runtime1/debugger/InteractiveDebugger.scala    |  16 +--
 .../processor/tdml/DaffodilTDMLDFDLProcessor.scala |   4 +-
 .../processor/tdml/TDMLInfosetOutputter.scala      |  72 +++++++----
 .../daffodil/charsets/ISO_8859_1_Reverse.scala     |  16 ++-
 .../apache/daffodil/charsets/TestISO_8859_13.scala |   7 +-
 .../runtime1/layers/AISPayloadArmoringLayer.scala  |  18 ++-
 24 files changed, 284 insertions(+), 319 deletions(-)

diff --git 
a/daffodil-core/src/main/scala/org/apache/daffodil/core/dpath/Expression.scala 
b/daffodil-core/src/main/scala/org/apache/daffodil/core/dpath/Expression.scala
index 567f96aa9..d4a1decf9 100644
--- 
a/daffodil-core/src/main/scala/org/apache/daffodil/core/dpath/Expression.scala
+++ 
b/daffodil-core/src/main/scala/org/apache/daffodil/core/dpath/Expression.scala
@@ -2686,26 +2686,48 @@ case class FNTwoArgsExprInferedArgType(
   resultType: NodeInfo.Kind,
   arg1Type: NodeInfo.Kind,
   arg2Type: NodeInfo.Kind,
-  constructor: List[(CompiledDPath, NodeInfo.Kind)] => RecipeOp
-) extends {
-    private val constructor_ : List[CompiledDPath] => RecipeOp =
-      (subExprs: List[CompiledDPath]) => {
-        Assert.invariant(subExprs.length == args.length)
-        val types = args.map(_.targetType)
-        val typedSubExprs = subExprs.zip(types)
-        constructor(typedSubExprs)
-      }
-  }
-  with FNTwoArgsExprBase(
+  constructor: List[(CompiledDPath, NodeInfo.Kind)] => RecipeOp,
+  constructorForTypedSubExprs: List[CompiledDPath] => RecipeOp
+) extends FNTwoArgsExprBase(
     nameAsParsed,
     fnQName,
     args,
     resultType,
     arg1Type,
     arg2Type,
-    constructor_
+    constructorForTypedSubExprs
   )
 
+object FNTwoArgsExprInferedArgType {
+  def apply(
+    nameAsParsed: String,
+    fnQName: RefQName,
+    args: List[Expression],
+    resultType: NodeInfo.Kind,
+    arg1Type: NodeInfo.Kind,
+    arg2Type: NodeInfo.Kind,
+    constructor: List[(CompiledDPath, NodeInfo.Kind)] => RecipeOp
+  ): FNTwoArgsExprInferedArgType = {
+    val constructorForTypedSubExprs: List[CompiledDPath] => RecipeOp =
+      (subExprs: List[CompiledDPath]) => {
+        Assert.invariant(subExprs.length == args.length)
+        val types = args.map(_.targetType)
+        val typedSubExprs = subExprs.zip(types)
+        constructor(typedSubExprs)
+      }
+    FNTwoArgsExprInferedArgType(
+      nameAsParsed,
+      fnQName,
+      args,
+      resultType,
+      arg1Type,
+      arg2Type,
+      constructor,
+      constructorForTypedSubExprs
+    )
+  }
+}
+
 sealed abstract class LengthExprBase(
   nameAsParsed: String,
   fnQName: RefQName,
diff --git 
a/daffodil-io/src/main/scala/org/apache/daffodil/io/processors/charset/Base4.scala
 
b/daffodil-io/src/main/scala/org/apache/daffodil/io/processors/charset/Base4.scala
index f54cb5729..dfe8cf0cd 100644
--- 
a/daffodil-io/src/main/scala/org/apache/daffodil/io/processors/charset/Base4.scala
+++ 
b/daffodil-io/src/main/scala/org/apache/daffodil/io/processors/charset/Base4.scala
@@ -23,26 +23,22 @@ import 
org.apache.daffodil.lib.schema.annotation.props.gen.BitOrder
  * Base 4 aka Quarternary
  */
 
-object BitsCharsetBase4LSBF
-  extends {
-    override val name = "X-DFDL-BASE4-LSBF"
-    override val bitWidthOfACodeUnit = 2
-    override val decodeString = "0123"
-    override val replacementCharCode = 0x0
-    override val requiredBitOrder = BitOrder.LeastSignificantBitFirst
-  }
-  with BitsCharsetNonByteSize
+object BitsCharsetBase4LSBF extends BitsCharsetNonByteSize {
+  override lazy val name = "X-DFDL-BASE4-LSBF"
+  override lazy val bitWidthOfACodeUnit = 2
+  override lazy val decodeString = "0123"
+  override lazy val replacementCharCode = 0x0
+  override lazy val requiredBitOrder = BitOrder.LeastSignificantBitFirst
+}
 
 final class BitsCharsetBase4LSBFDefinition extends 
BitsCharsetDefinition(BitsCharsetBase4LSBF)
 
-object BitsCharsetBase4MSBF
-  extends {
-    override val name = "X-DFDL-BASE4-MSBF"
-    override val bitWidthOfACodeUnit = 2
-    override val decodeString = "0123"
-    override val replacementCharCode = 0x0
-    override val requiredBitOrder = BitOrder.MostSignificantBitFirst
-  }
-  with BitsCharsetNonByteSize
+object BitsCharsetBase4MSBF extends BitsCharsetNonByteSize {
+  override lazy val name = "X-DFDL-BASE4-MSBF"
+  override lazy val bitWidthOfACodeUnit = 2
+  override lazy val decodeString = "0123"
+  override lazy val replacementCharCode = 0x0
+  override lazy val requiredBitOrder = BitOrder.MostSignificantBitFirst
+}
 
 final class BitsCharsetBase4MSBFDefinition extends 
BitsCharsetDefinition(BitsCharsetBase4MSBF)
diff --git 
a/daffodil-io/src/main/scala/org/apache/daffodil/io/processors/charset/Binary.scala
 
b/daffodil-io/src/main/scala/org/apache/daffodil/io/processors/charset/Binary.scala
index 506b201db..71e1578a3 100644
--- 
a/daffodil-io/src/main/scala/org/apache/daffodil/io/processors/charset/Binary.scala
+++ 
b/daffodil-io/src/main/scala/org/apache/daffodil/io/processors/charset/Binary.scala
@@ -23,15 +23,13 @@ import 
org.apache.daffodil.lib.schema.annotation.props.gen.BitOrder
  * X-DFDL-BITS-LSBF occupies only 1 bit with each
  * code unit.
  */
-object BitsCharsetBinaryLSBF
-  extends {
-    override val name = "X-DFDL-BITS-LSBF"
-    override val bitWidthOfACodeUnit = 1
-    override val decodeString = "01"
-    override val replacementCharCode = 0x0
-    override val requiredBitOrder = BitOrder.LeastSignificantBitFirst
-  }
-  with BitsCharsetNonByteSize
+object BitsCharsetBinaryLSBF extends BitsCharsetNonByteSize {
+  override lazy val name = "X-DFDL-BITS-LSBF"
+  override lazy val bitWidthOfACodeUnit = 1
+  override lazy val decodeString = "01"
+  override lazy val replacementCharCode = 0x0
+  override lazy val requiredBitOrder = BitOrder.LeastSignificantBitFirst
+}
 
 final class BitsCharsetBinaryLSBFDefinition extends 
BitsCharsetDefinition(BitsCharsetBinaryLSBF)
 
@@ -39,14 +37,12 @@ final class BitsCharsetBinaryLSBFDefinition extends 
BitsCharsetDefinition(BitsCh
  * X-DFDL-BITS-MSBF occupies only 1 bit with each
  * code unit.
  */
-object BitsCharsetBinaryMSBF
-  extends {
-    override val name = "X-DFDL-BITS-MSBF"
-    override val bitWidthOfACodeUnit = 1
-    override val decodeString = "01"
-    override val replacementCharCode = 0x0
-    override val requiredBitOrder = BitOrder.MostSignificantBitFirst
-  }
-  with BitsCharsetNonByteSize
+object BitsCharsetBinaryMSBF extends BitsCharsetNonByteSize {
+  override lazy val name = "X-DFDL-BITS-MSBF"
+  override lazy val bitWidthOfACodeUnit = 1
+  override lazy val decodeString = "01"
+  override lazy val replacementCharCode = 0x0
+  override lazy val requiredBitOrder = BitOrder.MostSignificantBitFirst
+}
 
 final class BitsCharsetBinaryMSBFDefinition extends 
BitsCharsetDefinition(BitsCharsetBinaryMSBF)
diff --git 
a/daffodil-io/src/main/scala/org/apache/daffodil/io/processors/charset/Hex.scala
 
b/daffodil-io/src/main/scala/org/apache/daffodil/io/processors/charset/Hex.scala
index 8666504d3..130663119 100644
--- 
a/daffodil-io/src/main/scala/org/apache/daffodil/io/processors/charset/Hex.scala
+++ 
b/daffodil-io/src/main/scala/org/apache/daffodil/io/processors/charset/Hex.scala
@@ -23,15 +23,13 @@ import 
org.apache.daffodil.lib.schema.annotation.props.gen.BitOrder
  * X-DFDL-HEX-LSBF occupies only 4 bits with each
  * code unit.
  */
-object BitsCharsetHexLSBF
-  extends {
-    override val name = "X-DFDL-HEX-LSBF"
-    override val bitWidthOfACodeUnit = 4
-    override val decodeString = """0123456789ABCDEF"""
-    override val replacementCharCode = 0x00
-    override val requiredBitOrder = BitOrder.LeastSignificantBitFirst
-  }
-  with BitsCharsetNonByteSize
+object BitsCharsetHexLSBF extends BitsCharsetNonByteSize {
+  override lazy val name = "X-DFDL-HEX-LSBF"
+  override lazy val bitWidthOfACodeUnit = 4
+  override lazy val decodeString = """0123456789ABCDEF"""
+  override lazy val replacementCharCode = 0x00
+  override lazy val requiredBitOrder = BitOrder.LeastSignificantBitFirst
+}
 
 final class BitsCharsetHexLSBFDefinition extends 
BitsCharsetDefinition(BitsCharsetHexLSBF)
 
@@ -39,14 +37,12 @@ final class BitsCharsetHexLSBFDefinition extends 
BitsCharsetDefinition(BitsChars
  * X-DFDL-HEX-MSBF occupies only 4 bits with each
  * code unit.
  */
-object BitsCharsetHexMSBF
-  extends {
-    override val name = "X-DFDL-HEX-MSBF"
-    override val bitWidthOfACodeUnit = 4
-    override val decodeString = """0123456789ABCDEF"""
-    override val replacementCharCode = 0x00
-    override val requiredBitOrder = BitOrder.MostSignificantBitFirst
-  }
-  with BitsCharsetNonByteSize
+object BitsCharsetHexMSBF extends BitsCharsetNonByteSize {
+  override lazy val name = "X-DFDL-HEX-MSBF"
+  override lazy val bitWidthOfACodeUnit = 4
+  override lazy val decodeString = """0123456789ABCDEF"""
+  override lazy val replacementCharCode = 0x00
+  override lazy val requiredBitOrder = BitOrder.MostSignificantBitFirst
+}
 
 final class BitsCharsetHexMSBFDefinition extends 
BitsCharsetDefinition(BitsCharsetHexMSBF)
diff --git 
a/daffodil-io/src/main/scala/org/apache/daffodil/io/processors/charset/IBM037.scala
 
b/daffodil-io/src/main/scala/org/apache/daffodil/io/processors/charset/IBM037.scala
index b3fd146ab..ea79cce7e 100644
--- 
a/daffodil-io/src/main/scala/org/apache/daffodil/io/processors/charset/IBM037.scala
+++ 
b/daffodil-io/src/main/scala/org/apache/daffodil/io/processors/charset/IBM037.scala
@@ -20,11 +20,9 @@ package org.apache.daffodil.io.processors.charset
 import org.apache.daffodil.io.FormatInfo
 import org.apache.daffodil.io.InputSourceDataInputStream
 
-object BitsCharsetIBM037
-  extends {
-    override val name = "IBM037"
-  }
-  with BitsCharsetJava {
+object BitsCharsetIBM037 extends BitsCharsetJava {
+
+  lazy val name = "IBM037"
 
   val decodeStringTable =
     
"\u0000\u0001\u0002\u0003\u009C\u0009\u0086\u007F\u0097\u008D\u008E\u000B\u000C\u000D\u000E\u000F"
 +
diff --git 
a/daffodil-io/src/main/scala/org/apache/daffodil/io/processors/charset/ISO88591.scala
 
b/daffodil-io/src/main/scala/org/apache/daffodil/io/processors/charset/ISO88591.scala
index 3398704cc..26dd6a31a 100644
--- 
a/daffodil-io/src/main/scala/org/apache/daffodil/io/processors/charset/ISO88591.scala
+++ 
b/daffodil-io/src/main/scala/org/apache/daffodil/io/processors/charset/ISO88591.scala
@@ -20,11 +20,9 @@ package org.apache.daffodil.io.processors.charset
 import org.apache.daffodil.io.FormatInfo
 import org.apache.daffodil.io.InputSourceDataInputStream
 
-object BitsCharsetISO88591
-  extends {
-    override val name = "ISO-8859-1"
-  }
-  with BitsCharsetJava {
+object BitsCharsetISO88591 extends BitsCharsetJava {
+
+  override lazy val name = "ISO-8859-1"
 
   override def newDecoder() = new BitsCharsetDecoderISO88591()
 }
diff --git 
a/daffodil-io/src/main/scala/org/apache/daffodil/io/processors/charset/ISO885918BitPacked.scala
 
b/daffodil-io/src/main/scala/org/apache/daffodil/io/processors/charset/ISO885918BitPacked.scala
index 591eb4765..30c3c6522 100644
--- 
a/daffodil-io/src/main/scala/org/apache/daffodil/io/processors/charset/ISO885918BitPacked.scala
+++ 
b/daffodil-io/src/main/scala/org/apache/daffodil/io/processors/charset/ISO885918BitPacked.scala
@@ -23,15 +23,13 @@ import 
org.apache.daffodil.lib.schema.annotation.props.gen.BitOrder
  * X-DFDL-ISO-88591-8-BIT-PACKED-LSB-FIRST occupies only 8 bits with each
  * code unit.
  */
-object BitsCharsetISO885918BitPackedLSBF
-  extends {
-    override val name = "X-DFDL-ISO-88591-8-BIT-PACKED-LSB-FIRST"
-    override val bitWidthOfACodeUnit = 8
-    override val decodeString = (0 to 255).map { _.toChar }.mkString
-    override val replacementCharCode = 0x3f
-    override val requiredBitOrder = BitOrder.LeastSignificantBitFirst
-  }
-  with BitsCharsetNonByteSize
+object BitsCharsetISO885918BitPackedLSBF extends BitsCharsetNonByteSize {
+  override lazy val name = "X-DFDL-ISO-88591-8-BIT-PACKED-LSB-FIRST"
+  override lazy val bitWidthOfACodeUnit = 8
+  override lazy val decodeString = (0 to 255).map { _.toChar }.mkString
+  override lazy val replacementCharCode = 0x3f
+  override lazy val requiredBitOrder = BitOrder.LeastSignificantBitFirst
+}
 
 final class BitsCharsetISO885918BitPackedLSBFDefinition
   extends BitsCharsetDefinition(BitsCharsetISO885918BitPackedLSBF)
@@ -40,15 +38,13 @@ final class BitsCharsetISO885918BitPackedLSBFDefinition
  * X-DFDL-ISO-88591-8-BIT-PACKED-MSB-FIRST occupies only 8 bits with each
  * code unit.
  */
-object BitsCharsetISO885918BitPackedMSBF
-  extends {
-    override val name = "X-DFDL-ISO-88591-8-BIT-PACKED-MSB-FIRST"
-    override val bitWidthOfACodeUnit = 8
-    override val decodeString = (0 to 255).map { _.toChar }.mkString
-    override val replacementCharCode = 0x3f
-    override val requiredBitOrder = BitOrder.MostSignificantBitFirst
-  }
-  with BitsCharsetNonByteSize
+object BitsCharsetISO885918BitPackedMSBF extends BitsCharsetNonByteSize {
+  override lazy val name = "X-DFDL-ISO-88591-8-BIT-PACKED-MSB-FIRST"
+  override lazy val bitWidthOfACodeUnit = 8
+  override lazy val decodeString = (0 to 255).map { _.toChar }.mkString
+  override lazy val replacementCharCode = 0x3f
+  override lazy val requiredBitOrder = BitOrder.MostSignificantBitFirst
+}
 
 final class BitsCharsetISO885918BitPackedMSBFDefinition
   extends BitsCharsetDefinition(BitsCharsetISO885918BitPackedMSBF)
diff --git 
a/daffodil-io/src/main/scala/org/apache/daffodil/io/processors/charset/Octal.scala
 
b/daffodil-io/src/main/scala/org/apache/daffodil/io/processors/charset/Octal.scala
index 0cda0bff1..cb2098e32 100644
--- 
a/daffodil-io/src/main/scala/org/apache/daffodil/io/processors/charset/Octal.scala
+++ 
b/daffodil-io/src/main/scala/org/apache/daffodil/io/processors/charset/Octal.scala
@@ -23,15 +23,13 @@ import 
org.apache.daffodil.lib.schema.annotation.props.gen.BitOrder
  * X-DFDL-OCTAL-LSBF occupies only 3 bits with each
  * code unit.
  */
-object BitsCharsetOctalLSBF
-  extends {
-    override val name = "X-DFDL-OCTAL-LSBF"
-    override val bitWidthOfACodeUnit = 3
-    override val decodeString = "01234567"
-    override val replacementCharCode = 0x0
-    override val requiredBitOrder = BitOrder.LeastSignificantBitFirst
-  }
-  with BitsCharsetNonByteSize
+object BitsCharsetOctalLSBF extends BitsCharsetNonByteSize {
+  override lazy val name = "X-DFDL-OCTAL-LSBF"
+  override lazy val bitWidthOfACodeUnit = 3
+  override lazy val decodeString = "01234567"
+  override lazy val replacementCharCode = 0x0
+  override lazy val requiredBitOrder = BitOrder.LeastSignificantBitFirst
+}
 
 final class BitsCharsetOctalLSBFDefinition extends 
BitsCharsetDefinition(BitsCharsetOctalLSBF)
 
@@ -39,14 +37,12 @@ final class BitsCharsetOctalLSBFDefinition extends 
BitsCharsetDefinition(BitsCha
  * X-DFDL-OCTAL-MSBF occupies only 3 bits with each
  * code unit.
  */
-object BitsCharsetOctalMSBF
-  extends {
-    override val name = "X-DFDL-OCTAL-MSBF"
-    override val bitWidthOfACodeUnit = 3
-    override val decodeString = "01234567"
-    override val replacementCharCode = 0x0
-    override val requiredBitOrder = BitOrder.MostSignificantBitFirst
-  }
-  with BitsCharsetNonByteSize
+object BitsCharsetOctalMSBF extends BitsCharsetNonByteSize {
+  override lazy val name = "X-DFDL-OCTAL-MSBF"
+  override lazy val bitWidthOfACodeUnit = 3
+  override lazy val decodeString = "01234567"
+  override lazy val replacementCharCode = 0x0
+  override lazy val requiredBitOrder = BitOrder.MostSignificantBitFirst
+}
 
 final class BitsCharsetOctalMSBFDefinition extends 
BitsCharsetDefinition(BitsCharsetOctalMSBF)
diff --git 
a/daffodil-io/src/main/scala/org/apache/daffodil/io/processors/charset/USASCII.scala
 
b/daffodil-io/src/main/scala/org/apache/daffodil/io/processors/charset/USASCII.scala
index 062b22b6a..786e0aeb2 100644
--- 
a/daffodil-io/src/main/scala/org/apache/daffodil/io/processors/charset/USASCII.scala
+++ 
b/daffodil-io/src/main/scala/org/apache/daffodil/io/processors/charset/USASCII.scala
@@ -20,11 +20,8 @@ package org.apache.daffodil.io.processors.charset
 import org.apache.daffodil.io.FormatInfo
 import org.apache.daffodil.io.InputSourceDataInputStream
 
-object BitsCharsetUSASCII
-  extends {
-    override val name = "US-ASCII"
-  }
-  with BitsCharsetJava {
+object BitsCharsetUSASCII extends BitsCharsetJava {
+  override lazy val name = "US-ASCII"
 
   override def newDecoder() = new BitsCharsetDecoderUSASCII()
 }
diff --git 
a/daffodil-io/src/main/scala/org/apache/daffodil/io/processors/charset/USASCII5BitPacked.scala
 
b/daffodil-io/src/main/scala/org/apache/daffodil/io/processors/charset/USASCII5BitPacked.scala
index b1e65dffb..60d85a6da 100644
--- 
a/daffodil-io/src/main/scala/org/apache/daffodil/io/processors/charset/USASCII5BitPacked.scala
+++ 
b/daffodil-io/src/main/scala/org/apache/daffodil/io/processors/charset/USASCII5BitPacked.scala
@@ -24,15 +24,13 @@ import org.apache.daffodil.lib.util.MaybeInt
  * X-DFDL-5-BIT-PACKED-LSBF occupies only 5 bits with each
  * code unit.
  */
-object BitsCharset5BitPackedLSBF
-  extends {
-    override val name = "X-DFDL-5-BIT-PACKED-LSBF"
-    override val bitWidthOfACodeUnit = 5
-    override val decodeString = """01234567ABCDEFGHJKLMNPQRSTUVWXYZ"""
-    override val replacementCharCode = 0x1d
-    override val requiredBitOrder = BitOrder.LeastSignificantBitFirst
-  }
-  with BitsCharsetNonByteSize {
+object BitsCharset5BitPackedLSBF extends BitsCharsetNonByteSize {
+
+  override lazy val name = "X-DFDL-5-BIT-PACKED-LSBF"
+  override lazy val bitWidthOfACodeUnit = 5
+  override lazy val decodeString = """01234567ABCDEFGHJKLMNPQRSTUVWXYZ"""
+  override lazy val replacementCharCode = 0x1d
+  override lazy val requiredBitOrder = BitOrder.LeastSignificantBitFirst
 
   override def charToCode(char: Char) = {
     if (char == 'I') MaybeInt(1)
diff --git 
a/daffodil-io/src/main/scala/org/apache/daffodil/io/processors/charset/USASCII6BitPacked.scala
 
b/daffodil-io/src/main/scala/org/apache/daffodil/io/processors/charset/USASCII6BitPacked.scala
index 8dab19d94..ad4c0730d 100644
--- 
a/daffodil-io/src/main/scala/org/apache/daffodil/io/processors/charset/USASCII6BitPacked.scala
+++ 
b/daffodil-io/src/main/scala/org/apache/daffodil/io/processors/charset/USASCII6BitPacked.scala
@@ -23,16 +23,14 @@ import 
org.apache.daffodil.lib.schema.annotation.props.gen.BitOrder
  * X-DFDL-US-ASCII-6-BIT-PACKED occupies only 6 bits with each
  * code unit.
  */
-object BitsCharsetUSASCII6BitPackedLSBF
-  extends {
-    override val name = "X-DFDL-US-ASCII-6-BIT-PACKED-LSB-FIRST"
-    override val bitWidthOfACodeUnit = 6
-    override val decodeString =
-      """@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_ !"#$%&'()*+,-./0123456789:;<=>?"""
-    override val replacementCharCode = 0x1f
-    override val requiredBitOrder = BitOrder.LeastSignificantBitFirst
-  }
-  with BitsCharsetNonByteSize
+object BitsCharsetUSASCII6BitPackedLSBF extends BitsCharsetNonByteSize {
+  override lazy val name = "X-DFDL-US-ASCII-6-BIT-PACKED-LSB-FIRST"
+  override lazy val bitWidthOfACodeUnit = 6
+  override lazy val decodeString =
+    """@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_ !"#$%&'()*+,-./0123456789:;<=>?"""
+  override lazy val replacementCharCode = 0x1f
+  override lazy val requiredBitOrder = BitOrder.LeastSignificantBitFirst
+}
 
 final class BitsCharsetUSASCII6BitPackedLSBFDefinition
   extends BitsCharsetDefinition(BitsCharsetUSASCII6BitPackedLSBF)
@@ -43,16 +41,14 @@ final class BitsCharsetUSASCII6BitPackedDefinition
     Some("X-DFDL-US-ASCII-6-BIT-PACKED")
   )
 
-object BitsCharsetUSASCII6BitPackedMSBF
-  extends {
-    override val name = "X-DFDL-US-ASCII-6-BIT-PACKED-MSB-FIRST"
-    override val bitWidthOfACodeUnit = 6
-    override val decodeString =
-      """@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_ !"#$%&'()*+,-./0123456789:;<=>?"""
-    override val replacementCharCode = 0x1f
-    override val requiredBitOrder = BitOrder.MostSignificantBitFirst
-  }
-  with BitsCharsetNonByteSize
+object BitsCharsetUSASCII6BitPackedMSBF extends BitsCharsetNonByteSize {
+  override lazy val name = "X-DFDL-US-ASCII-6-BIT-PACKED-MSB-FIRST"
+  override lazy val bitWidthOfACodeUnit = 6
+  override lazy val decodeString =
+    """@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_ !"#$%&'()*+,-./0123456789:;<=>?"""
+  override lazy val replacementCharCode = 0x1f
+  override lazy val requiredBitOrder = BitOrder.MostSignificantBitFirst
+}
 
 final class BitsCharsetUSASCII6BitPackedMSBFDefinition
   extends BitsCharsetDefinition(BitsCharsetUSASCII6BitPackedMSBF)
diff --git 
a/daffodil-io/src/main/scala/org/apache/daffodil/io/processors/charset/USASCII7BitPacked.scala
 
b/daffodil-io/src/main/scala/org/apache/daffodil/io/processors/charset/USASCII7BitPacked.scala
index 65e025cd1..50ea7a337 100644
--- 
a/daffodil-io/src/main/scala/org/apache/daffodil/io/processors/charset/USASCII7BitPacked.scala
+++ 
b/daffodil-io/src/main/scala/org/apache/daffodil/io/processors/charset/USASCII7BitPacked.scala
@@ -23,15 +23,13 @@ import 
org.apache.daffodil.lib.schema.annotation.props.gen.BitOrder
  * X-DFDL-US-ASCII-7-BIT-PACKED occupies only 7 bits with each
  * code unit.
  */
-object BitsCharsetUSASCII7BitPacked
-  extends {
-    override val name = "X-DFDL-US-ASCII-7-BIT-PACKED"
-    override val bitWidthOfACodeUnit = 7
-    override val decodeString = (0 to 127).map { _.toChar }.mkString
-    override val replacementCharCode = 0x3f
-    override val requiredBitOrder = BitOrder.LeastSignificantBitFirst
-  }
-  with BitsCharsetNonByteSize
+object BitsCharsetUSASCII7BitPacked extends BitsCharsetNonByteSize {
+  override lazy val name = "X-DFDL-US-ASCII-7-BIT-PACKED"
+  override lazy val bitWidthOfACodeUnit = 7
+  override lazy val decodeString = (0 to 127).map { _.toChar }.mkString
+  override lazy val replacementCharCode = 0x3f
+  override lazy val requiredBitOrder = BitOrder.LeastSignificantBitFirst
+}
 
 final class BitsCharsetUSASCII7BitPackedDefinition
   extends BitsCharsetDefinition(BitsCharsetUSASCII7BitPacked)
diff --git 
a/daffodil-io/src/main/scala/org/apache/daffodil/io/processors/charset/UTF16BE.scala
 
b/daffodil-io/src/main/scala/org/apache/daffodil/io/processors/charset/UTF16BE.scala
index ac31d90a4..f4ccd81d8 100644
--- 
a/daffodil-io/src/main/scala/org/apache/daffodil/io/processors/charset/UTF16BE.scala
+++ 
b/daffodil-io/src/main/scala/org/apache/daffodil/io/processors/charset/UTF16BE.scala
@@ -20,11 +20,8 @@ package org.apache.daffodil.io.processors.charset
 import org.apache.daffodil.io.FormatInfo
 import org.apache.daffodil.io.InputSourceDataInputStream
 
-object BitsCharsetUTF16BE
-  extends {
-    override val name = "UTF-16BE"
-  }
-  with BitsCharsetJava {
+object BitsCharsetUTF16BE extends BitsCharsetJava {
+  override lazy val name = "UTF-16BE"
 
   override def newDecoder() = new BitsCharsetDecoderUTF16BE()
 }
diff --git 
a/daffodil-io/src/main/scala/org/apache/daffodil/io/processors/charset/UTF16LE.scala
 
b/daffodil-io/src/main/scala/org/apache/daffodil/io/processors/charset/UTF16LE.scala
index 929476926..286921c81 100644
--- 
a/daffodil-io/src/main/scala/org/apache/daffodil/io/processors/charset/UTF16LE.scala
+++ 
b/daffodil-io/src/main/scala/org/apache/daffodil/io/processors/charset/UTF16LE.scala
@@ -20,11 +20,8 @@ package org.apache.daffodil.io.processors.charset
 import org.apache.daffodil.io.FormatInfo
 import org.apache.daffodil.io.InputSourceDataInputStream
 
-object BitsCharsetUTF16LE
-  extends {
-    override val name = "UTF-16LE"
-  }
-  with BitsCharsetJava {
+object BitsCharsetUTF16LE extends BitsCharsetJava {
+  override lazy val name = "UTF-16LE"
 
   override def newDecoder() = new BitsCharsetDecoderUTF16LE()
 }
diff --git 
a/daffodil-io/src/main/scala/org/apache/daffodil/io/processors/charset/UTF32BE.scala
 
b/daffodil-io/src/main/scala/org/apache/daffodil/io/processors/charset/UTF32BE.scala
index a4bcc617a..961594c29 100644
--- 
a/daffodil-io/src/main/scala/org/apache/daffodil/io/processors/charset/UTF32BE.scala
+++ 
b/daffodil-io/src/main/scala/org/apache/daffodil/io/processors/charset/UTF32BE.scala
@@ -20,11 +20,8 @@ package org.apache.daffodil.io.processors.charset
 import org.apache.daffodil.io.FormatInfo
 import org.apache.daffodil.io.InputSourceDataInputStream
 
-object BitsCharsetUTF32BE
-  extends {
-    override val name = "UTF-32BE"
-  }
-  with BitsCharsetJava {
+object BitsCharsetUTF32BE extends BitsCharsetJava {
+  override lazy val name = "UTF-32BE"
 
   override def newDecoder() = new BitsCharsetDecoderUTF32BE()
 }
diff --git 
a/daffodil-io/src/main/scala/org/apache/daffodil/io/processors/charset/UTF32LE.scala
 
b/daffodil-io/src/main/scala/org/apache/daffodil/io/processors/charset/UTF32LE.scala
index 47f936196..f19a43e6e 100644
--- 
a/daffodil-io/src/main/scala/org/apache/daffodil/io/processors/charset/UTF32LE.scala
+++ 
b/daffodil-io/src/main/scala/org/apache/daffodil/io/processors/charset/UTF32LE.scala
@@ -20,11 +20,8 @@ package org.apache.daffodil.io.processors.charset
 import org.apache.daffodil.io.FormatInfo
 import org.apache.daffodil.io.InputSourceDataInputStream
 
-object BitsCharsetUTF32LE
-  extends {
-    override val name = "UTF-32LE"
-  }
-  with BitsCharsetJava {
+object BitsCharsetUTF32LE extends BitsCharsetJava {
+  override lazy val name = "UTF-32LE"
 
   override def newDecoder() = new BitsCharsetDecoderUTF32LE()
 }
diff --git 
a/daffodil-io/src/main/scala/org/apache/daffodil/io/processors/charset/UTF8.scala
 
b/daffodil-io/src/main/scala/org/apache/daffodil/io/processors/charset/UTF8.scala
index f7fcc795a..7acc5e497 100644
--- 
a/daffodil-io/src/main/scala/org/apache/daffodil/io/processors/charset/UTF8.scala
+++ 
b/daffodil-io/src/main/scala/org/apache/daffodil/io/processors/charset/UTF8.scala
@@ -20,11 +20,8 @@ package org.apache.daffodil.io.processors.charset
 import org.apache.daffodil.io.FormatInfo
 import org.apache.daffodil.io.InputSourceDataInputStream
 
-object BitsCharsetUTF8
-  extends {
-    override val name = "UTF-8"
-  }
-  with BitsCharsetJava {
+object BitsCharsetUTF8 extends BitsCharsetJava {
+  override lazy val name = "UTF-8"
 
   override def newDecoder() = new BitsCharsetDecoderUTF8()
 }
diff --git 
a/daffodil-io/src/main/scala/org/apache/daffodil/io/processors/charset/X_DFDL_MIL_STD.scala
 
b/daffodil-io/src/main/scala/org/apache/daffodil/io/processors/charset/X_DFDL_MIL_STD.scala
index e1da7d71d..6e6a59b2a 100644
--- 
a/daffodil-io/src/main/scala/org/apache/daffodil/io/processors/charset/X_DFDL_MIL_STD.scala
+++ 
b/daffodil-io/src/main/scala/org/apache/daffodil/io/processors/charset/X_DFDL_MIL_STD.scala
@@ -32,120 +32,104 @@ import 
org.apache.daffodil.lib.schema.annotation.props.gen.BitOrder
 /**
  * X-DFDL-6-BIT-DFI-264-DUI-001, special 6 bit encoding
  */
-object BitsCharset6BitDFI264DUI001
-  extends {
-    override val name = "X-DFDL-6-BIT-DFI-264-DUI-001"
-    override val bitWidthOfACodeUnit = 6
-    override val decodeString =
-      """ 
123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD0"""
-    override val replacementCharCode = 0x0
-    override val requiredBitOrder = BitOrder.LeastSignificantBitFirst
-  }
-  with BitsCharsetNonByteSize
+object BitsCharset6BitDFI264DUI001 extends BitsCharsetNonByteSize {
+  override lazy val name = "X-DFDL-6-BIT-DFI-264-DUI-001"
+  override lazy val bitWidthOfACodeUnit = 6
+  override lazy val decodeString =
+    """ 
123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD0"""
+  override lazy val replacementCharCode = 0x0
+  override lazy val requiredBitOrder = BitOrder.LeastSignificantBitFirst
+}
 
 final class BitsCharset6BitDFI264DUI001Definition
   extends BitsCharsetDefinition(BitsCharset6BitDFI264DUI001)
 
-sealed abstract class BitsCharset6BitDFI311DUI002Base
-  extends {
-    override val bitWidthOfACodeUnit = 6
-    override val decodeString =
-      """\u00A0ABCDEFGHIJKLMNOPQRSTUVWXYZ\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD 
\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD0123456789\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"""
-    override val replacementCharCode = 0x0
-  }
-  with BitsCharsetNonByteSize
+sealed abstract class BitsCharset6BitDFI311DUI002Base extends 
BitsCharsetNonByteSize {
+  override lazy val bitWidthOfACodeUnit = 6
+  override lazy val decodeString =
+    """\u00A0ABCDEFGHIJKLMNOPQRSTUVWXYZ\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD 
\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD0123456789\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"""
+  override lazy val replacementCharCode = 0x0
+}
 
 object BitsCharset6BitDFI311DUI002 extends BitsCharset6BitDFI311DUI002Base {
-  override val name = "X-DFDL-6-BIT-DFI-311-DUI-002"
-  override val requiredBitOrder = BitOrder.LeastSignificantBitFirst
+  override lazy val name = "X-DFDL-6-BIT-DFI-311-DUI-002"
+  override lazy val requiredBitOrder = BitOrder.LeastSignificantBitFirst
 }
 
 final class BitsCharset6BitDFI311DUI002Definition
   extends BitsCharsetDefinition(BitsCharset6BitDFI311DUI002)
 
 object BitsCharset6BitICAOAircraftID extends BitsCharset6BitDFI311DUI002Base {
-  override val name = "X-DFDL-6-BIT-ICAO-Aircraft-ID"
-  override val requiredBitOrder = BitOrder.MostSignificantBitFirst
+  override lazy val name = "X-DFDL-6-BIT-ICAO-Aircraft-ID"
+  override lazy val requiredBitOrder = BitOrder.MostSignificantBitFirst
 }
 
 final class BitsCharset6BitICAOAircraftIDDefinition
   extends BitsCharsetDefinition(BitsCharset6BitICAOAircraftID)
 
-object BitsCharset3BitDFI336DUI001
-  extends {
-    override val name = "X-DFDL-3-BIT-DFI-336-DUI-001"
-    override val bitWidthOfACodeUnit = 3
-    override val decodeString = """12345678"""
-    override val replacementCharCode = 0x0
-    override val requiredBitOrder = BitOrder.LeastSignificantBitFirst
-  }
-  with BitsCharsetNonByteSize
+object BitsCharset3BitDFI336DUI001 extends BitsCharsetNonByteSize {
+  override lazy val name = "X-DFDL-3-BIT-DFI-336-DUI-001"
+  override lazy val bitWidthOfACodeUnit = 3
+  override lazy val decodeString = """12345678"""
+  override lazy val replacementCharCode = 0x0
+  override lazy val requiredBitOrder = BitOrder.LeastSignificantBitFirst
+}
 
 final class BitsCharset3BitDFI336DUI001Definition
   extends BitsCharsetDefinition(BitsCharset3BitDFI336DUI001)
 
-object BitsCharset4BitDFI746DUI002
-  extends {
-    override val name = "X-DFDL-4-BIT-DFI-746-DUI-002"
-    override val bitWidthOfACodeUnit = 4
-    override val decodeString = """ABCDEFGHIJKLMNPQ"""
-    override val replacementCharCode = 0x0
-    override val requiredBitOrder = BitOrder.LeastSignificantBitFirst
-  }
-  with BitsCharsetNonByteSize
+object BitsCharset4BitDFI746DUI002 extends BitsCharsetNonByteSize {
+  override lazy val name = "X-DFDL-4-BIT-DFI-746-DUI-002"
+  override lazy val bitWidthOfACodeUnit = 4
+  override lazy val decodeString = """ABCDEFGHIJKLMNPQ"""
+  override lazy val replacementCharCode = 0x0
+  override lazy val requiredBitOrder = BitOrder.LeastSignificantBitFirst
+}
 
 final class BitsCharset4BitDFI746DUI002Definition
   extends BitsCharsetDefinition(BitsCharset4BitDFI746DUI002)
 
-object BitsCharset3BitDFI746DUI002
-  extends {
-    override val name = "X-DFDL-3-BIT-DFI-746-DUI-002"
-    override val bitWidthOfACodeUnit = 3
-    override val decodeString = """ABCDEFGH"""
-    override val replacementCharCode = 0x0
-    override val requiredBitOrder = BitOrder.LeastSignificantBitFirst
-  }
-  with BitsCharsetNonByteSize
+object BitsCharset3BitDFI746DUI002 extends BitsCharsetNonByteSize {
+  override lazy val name = "X-DFDL-3-BIT-DFI-746-DUI-002"
+  override lazy val bitWidthOfACodeUnit = 3
+  override lazy val decodeString = """ABCDEFGH"""
+  override lazy val replacementCharCode = 0x0
+  override lazy val requiredBitOrder = BitOrder.LeastSignificantBitFirst
+}
 
 final class BitsCharset3BitDFI746DUI002Definition
   extends BitsCharsetDefinition(BitsCharset3BitDFI746DUI002)
 
-object BitsCharset3BitDFI747DUI001
-  extends {
-    override val name = "X-DFDL-3-BIT-DFI-747-DUI-001"
-    override val bitWidthOfACodeUnit = 3
-    override val decodeString = """AEGHJKLM"""
-    override val replacementCharCode = 0x0
-    override val requiredBitOrder = BitOrder.LeastSignificantBitFirst
-  }
-  with BitsCharsetNonByteSize
+object BitsCharset3BitDFI747DUI001 extends BitsCharsetNonByteSize {
+  override lazy val name = "X-DFDL-3-BIT-DFI-747-DUI-001"
+  override lazy val bitWidthOfACodeUnit = 3
+  override lazy val decodeString = """AEGHJKLM"""
+  override lazy val replacementCharCode = 0x0
+  override lazy val requiredBitOrder = BitOrder.LeastSignificantBitFirst
+}
 
 final class BitsCharset3BitDFI747DUI001Definition
   extends BitsCharsetDefinition(BitsCharset3BitDFI747DUI001)
 
-object BitsCharset5BitDFI769DUI002
-  extends {
-    override val name = "X-DFDL-5-BIT-DFI-769-DUI-002"
-    override val bitWidthOfACodeUnit = 5
-    override val decodeString = """01234567ABCDEFGHJKLMNPQRSTUVWXYZ"""
-    override val replacementCharCode = 0x0
-    override val requiredBitOrder = BitOrder.LeastSignificantBitFirst
-  }
-  with BitsCharsetNonByteSize
+object BitsCharset5BitDFI769DUI002 extends BitsCharsetNonByteSize {
+  override lazy val name = "X-DFDL-5-BIT-DFI-769-DUI-002"
+  override lazy val bitWidthOfACodeUnit = 5
+  override lazy val decodeString = """01234567ABCDEFGHJKLMNPQRSTUVWXYZ"""
+  override lazy val replacementCharCode = 0x0
+  override lazy val requiredBitOrder = BitOrder.LeastSignificantBitFirst
+}
 
 final class BitsCharset5BitDFI769DUI002Definition
   extends BitsCharsetDefinition(BitsCharset5BitDFI769DUI002)
 
-object BitsCharset5BitDFI1661DUI001
-  extends {
-    override val name = "X-DFDL-5-BIT-DFI-1661-DUI-001"
-    override val bitWidthOfACodeUnit = 5
-    override val decodeString =
-      """\u00A0ABCDEFGHIJKLMNOPQRSTUVWXYZ\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"""
-    override val replacementCharCode = 0x0
-    override val requiredBitOrder = BitOrder.LeastSignificantBitFirst
-  }
-  with BitsCharsetNonByteSize
+object BitsCharset5BitDFI1661DUI001 extends BitsCharsetNonByteSize {
+  override lazy val name = "X-DFDL-5-BIT-DFI-1661-DUI-001"
+  override lazy val bitWidthOfACodeUnit = 5
+  override lazy val decodeString =
+    """\u00A0ABCDEFGHIJKLMNOPQRSTUVWXYZ\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"""
+  override lazy val replacementCharCode = 0x0
+  override lazy val requiredBitOrder = BitOrder.LeastSignificantBitFirst
+}
 
 final class BitsCharset5BitDFI1661DUI001Definition
   extends BitsCharsetDefinition(BitsCharset5BitDFI1661DUI001)
diff --git 
a/daffodil-runtime1/src/main/scala/org/apache/daffodil/runtime1/debugger/InteractiveDebugger.scala
 
b/daffodil-runtime1/src/main/scala/org/apache/daffodil/runtime1/debugger/InteractiveDebugger.scala
index 4e50ca10c..f2e5fb97f 100644
--- 
a/daffodil-runtime1/src/main/scala/org/apache/daffodil/runtime1/debugger/InteractiveDebugger.scala
+++ 
b/daffodil-runtime1/src/main/scala/org/apache/daffodil/runtime1/debugger/InteractiveDebugger.scala
@@ -1889,11 +1889,9 @@ class InteractiveDebugger(
         }
       }
 
-      object InfoParser
-        extends {
-          override val name = "parser" // scala -xcheckinit reported this was 
uninitialized
-        }
-        with InfoProcessorBase
+      object InfoParser extends InfoProcessorBase {
+        override lazy val name = "parser" // scala -xcheckinit reported this 
was uninitialized
+      }
 
       object InfoPointsOfUncertainty extends DebugCommand with 
DebugCommandValidateZeroArgs {
         val name = "pointsOfUncertainty"
@@ -1935,11 +1933,9 @@ class InteractiveDebugger(
         def getSeqValue(state: StateForDebugger): Seq[Suspension] = 
state.suspensions
       }
 
-      object InfoUnparser
-        extends {
-          override val name = "unparser"
-        }
-        with InfoProcessorBase
+      object InfoUnparser extends InfoProcessorBase {
+        override lazy val name = "unparser"
+      }
 
       object InfoVariables extends DebugCommand with InfoDiffable {
         val name = "variables"
diff --git 
a/daffodil-tdml-processor/src/main/scala/org/apache/daffodil/processor/tdml/DaffodilTDMLDFDLProcessor.scala
 
b/daffodil-tdml-processor/src/main/scala/org/apache/daffodil/processor/tdml/DaffodilTDMLDFDLProcessor.scala
index 4ae2a2e84..72aa04779 100644
--- 
a/daffodil-tdml-processor/src/main/scala/org/apache/daffodil/processor/tdml/DaffodilTDMLDFDLProcessor.scala
+++ 
b/daffodil-tdml-processor/src/main/scala/org/apache/daffodil/processor/tdml/DaffodilTDMLDFDLProcessor.scala
@@ -268,9 +268,9 @@ class DaffodilTDMLDFDLProcessor private (private var dp: 
DataProcessor)
     lengthLimitInBits: Long
   ): TDMLParseResult = {
     val outputter = if (tdmlApiInfosetsEnv == "all") {
-      new TDMLInfosetOutputterAll
+      TDMLInfosetOutputterAll()
     } else {
-      new TDMLInfosetOutputterScala
+      TDMLInfosetOutputterScala()
     }
     outputter.setBlobAttributes(blobDir, blobPrefix, blobSuffix)
 
diff --git 
a/daffodil-tdml-processor/src/main/scala/org/apache/daffodil/processor/tdml/TDMLInfosetOutputter.scala
 
b/daffodil-tdml-processor/src/main/scala/org/apache/daffodil/processor/tdml/TDMLInfosetOutputter.scala
index 40a8e495b..95d044082 100644
--- 
a/daffodil-tdml-processor/src/main/scala/org/apache/daffodil/processor/tdml/TDMLInfosetOutputter.scala
+++ 
b/daffodil-tdml-processor/src/main/scala/org/apache/daffodil/processor/tdml/TDMLInfosetOutputter.scala
@@ -36,15 +36,11 @@ import 
org.apache.daffodil.runtime1.infoset.W3CDOMInfosetOutputter
 import org.apache.daffodil.runtime1.infoset.XMLTextInfosetInputter
 import org.apache.daffodil.runtime1.infoset.XMLTextInfosetOutputter
 
-class TDMLInfosetOutputterScala
-  extends {
-    private val scalaOut = new ScalaXMLInfosetOutputter()
-    private val outputters: Seq[InfosetOutputter] = Seq(scalaOut)
-  }
-  with TeeInfosetOutputter(outputters: _*)
+class TDMLInfosetOutputterScala(scalaOut: ScalaXMLInfosetOutputter)
+  extends TeeInfosetOutputter(Seq(scalaOut): _*)
   with TDMLInfosetOutputter {
 
-  override def getResult: Node = scalaOut.getResult
+  override def getResult: Node = scalaOut.getResult()
 
   override lazy val xmlStream: ByteArrayOutputStream = {
     val bos = new ByteArrayOutputStream()
@@ -53,34 +49,35 @@ class TDMLInfosetOutputterScala
   }
 
   override def toInfosetInputter: TDMLInfosetInputter = {
-    val scalaIn = new ScalaXMLInfosetInputter(scalaOut.getResult)
+    val scalaIn = new ScalaXMLInfosetInputter(scalaOut.getResult())
     new TDMLInfosetInputter(scalaIn, Seq())
   }
 }
 
-class TDMLInfosetOutputterAll
-  extends {
-    private val jsonStream = new ByteArrayOutputStream()
-    override val xmlStream = new ByteArrayOutputStream()
-
-    private val scalaOut = new ScalaXMLInfosetOutputter()
-    private val jdomOut = new JDOMInfosetOutputter()
-    private val w3cdomOut = new W3CDOMInfosetOutputter()
-    private val jsonOut = new JsonInfosetOutputter(jsonStream, false)
-    private val xmlOut = new XMLTextInfosetOutputter(xmlStream, false)
-
-    private val outputters: Seq[InfosetOutputter] =
-      Seq(xmlOut, scalaOut, jdomOut, w3cdomOut, jsonOut)
+object TDMLInfosetOutputterScala {
+  def apply(): TDMLInfosetOutputterScala = {
+    val scalaOut = new ScalaXMLInfosetOutputter()
+    new TDMLInfosetOutputterScala(scalaOut)
   }
-  with TeeInfosetOutputter(outputters: _*)
+}
+
+class TDMLInfosetOutputterAll(
+  jsonStream: ByteArrayOutputStream,
+  override val xmlStream: ByteArrayOutputStream,
+  scalaOut: ScalaXMLInfosetOutputter,
+  jdomOut: JDOMInfosetOutputter,
+  w3cdomOut: W3CDOMInfosetOutputter,
+  jsonOut: JsonInfosetOutputter,
+  xmlOut: XMLTextInfosetOutputter
+) extends TeeInfosetOutputter(Seq(xmlOut, scalaOut, jdomOut, w3cdomOut, 
jsonOut): _*)
   with TDMLInfosetOutputter {
 
-  override def getResult: Node = scalaOut.getResult
+  override def getResult: Node = scalaOut.getResult()
 
   override def toInfosetInputter: TDMLInfosetInputter = {
-    val scalaIn = new ScalaXMLInfosetInputter(scalaOut.getResult)
-    val jdomIn = new JDOMInfosetInputter(jdomOut.getResult)
-    val w3cdomIn = new W3CDOMInfosetInputter(w3cdomOut.getResult)
+    val scalaIn = new ScalaXMLInfosetInputter(scalaOut.getResult())
+    val jdomIn = new JDOMInfosetInputter(jdomOut.getResult())
+    val w3cdomIn = new W3CDOMInfosetInputter(w3cdomOut.getResult())
     val jsonIn = new JsonInfosetInputter(new 
ByteArrayInputStream(jsonStream.toByteArray))
     val xmlIn = new XMLTextInfosetInputter(new 
ByteArrayInputStream(xmlStream.toByteArray))
     val nullIn = {
@@ -91,6 +88,29 @@ class TDMLInfosetOutputterAll
   }
 }
 
+object TDMLInfosetOutputterAll {
+  def apply(): TDMLInfosetOutputterAll = {
+    val jsonStream = new ByteArrayOutputStream()
+    val xmlStream = new ByteArrayOutputStream()
+
+    val scalaOut = new ScalaXMLInfosetOutputter()
+    val jdomOut = new JDOMInfosetOutputter()
+    val w3cdomOut = new W3CDOMInfosetOutputter()
+    val jsonOut = new JsonInfosetOutputter(jsonStream, false)
+    val xmlOut = new XMLTextInfosetOutputter(xmlStream, false)
+
+    new TDMLInfosetOutputterAll(
+      jsonStream,
+      xmlStream,
+      scalaOut,
+      jdomOut,
+      w3cdomOut,
+      jsonOut,
+      xmlOut
+    )
+  }
+}
+
 trait TDMLInfosetOutputter extends InfosetOutputter {
 
   def xmlStream: ByteArrayOutputStream
diff --git 
a/daffodil-test/src/test/scala/org/apache/daffodil/charsets/ISO_8859_1_Reverse.scala
 
b/daffodil-test/src/test/scala/org/apache/daffodil/charsets/ISO_8859_1_Reverse.scala
index 599b820c8..14424d038 100644
--- 
a/daffodil-test/src/test/scala/org/apache/daffodil/charsets/ISO_8859_1_Reverse.scala
+++ 
b/daffodil-test/src/test/scala/org/apache/daffodil/charsets/ISO_8859_1_Reverse.scala
@@ -21,15 +21,13 @@ import 
org.apache.daffodil.io.processors.charset.BitsCharsetDefinition
 import org.apache.daffodil.io.processors.charset.BitsCharsetNonByteSize
 import org.apache.daffodil.lib.schema.annotation.props.gen.BitOrder
 
-object BitsCharset_ISO_8859_1_Reverse
-  extends {
-    override val name = "X-DFDL-ISO-8859-1-8-BIT-PACKED-LSB-FIRST-REVERSE"
-    override val bitWidthOfACodeUnit = 8
-    override val decodeString = (0 to 255).map { _.toChar }.mkString.reverse
-    override val replacementCharCode = 0x0
-    override val requiredBitOrder = BitOrder.MostSignificantBitFirst
-  }
-  with BitsCharsetNonByteSize
+object BitsCharset_ISO_8859_1_Reverse extends BitsCharsetNonByteSize {
+  override lazy val name = "X-DFDL-ISO-8859-1-8-BIT-PACKED-LSB-FIRST-REVERSE"
+  override lazy val bitWidthOfACodeUnit = 8
+  override lazy val decodeString = (0 to 255).map { _.toChar }.mkString.reverse
+  override lazy val replacementCharCode = 0x0
+  override lazy val requiredBitOrder = BitOrder.MostSignificantBitFirst
+}
 
 final class BitsCharset_ISO_8859_1_Reverse_Definition
   extends BitsCharsetDefinition(BitsCharset_ISO_8859_1_Reverse)
diff --git 
a/daffodil-test/src/test/scala/org/apache/daffodil/charsets/TestISO_8859_13.scala
 
b/daffodil-test/src/test/scala/org/apache/daffodil/charsets/TestISO_8859_13.scala
index 82cd9dc5d..a9c4c9b7b 100644
--- 
a/daffodil-test/src/test/scala/org/apache/daffodil/charsets/TestISO_8859_13.scala
+++ 
b/daffodil-test/src/test/scala/org/apache/daffodil/charsets/TestISO_8859_13.scala
@@ -26,11 +26,8 @@ import 
org.apache.daffodil.io.processors.charset.BitsCharsetDecoderByteSize
 import org.apache.daffodil.io.processors.charset.BitsCharsetDefinition
 import org.apache.daffodil.io.processors.charset.BitsCharsetJava
 
-object BitsCharsetTest_ISO_8859_13
-  extends {
-    override val name = "ISO-8859-13"
-  }
-  with BitsCharsetJava {
+object BitsCharsetTest_ISO_8859_13 extends BitsCharsetJava {
+  override lazy val name = "ISO-8859-13"
 
   override def newDecoder() = new BitsCharsetTest_Decoder_ISO_8859_13()
 
diff --git 
a/daffodil-test/src/test/scala/org/apache/daffodil/runtime1/layers/AISPayloadArmoringLayer.scala
 
b/daffodil-test/src/test/scala/org/apache/daffodil/runtime1/layers/AISPayloadArmoringLayer.scala
index 17d44c392..0f45a9a2b 100644
--- 
a/daffodil-test/src/test/scala/org/apache/daffodil/runtime1/layers/AISPayloadArmoringLayer.scala
+++ 
b/daffodil-test/src/test/scala/org/apache/daffodil/runtime1/layers/AISPayloadArmoringLayer.scala
@@ -163,16 +163,14 @@ class AISPayloadArmoringOutputStream(jos: 
java.io.OutputStream) extends OutputSt
  * dfdl:encodingErrorPolicy='error' would check this (once implemented), 
otherwise
  * where this is used the checking needs to be done separately somehow.
  */
-object BitsCharsetAISPayloadArmoring
-  extends {
-    override val name = "X-DAFFODIL-AIS-PAYLOAD-ARMORING"
-    override val bitWidthOfACodeUnit = 6
-    override val decodeString =
-      """0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVW'abcdefghijklmnopqrstuvw"""
-    override val replacementCharCode = 0x30
-    override val requiredBitOrder = BitOrder.MostSignificantBitFirst
-  }
-  with BitsCharsetNonByteSize
+object BitsCharsetAISPayloadArmoring extends BitsCharsetNonByteSize {
+  override lazy val name = "X-DAFFODIL-AIS-PAYLOAD-ARMORING"
+  override lazy val bitWidthOfACodeUnit = 6
+  override lazy val decodeString =
+    """0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVW'abcdefghijklmnopqrstuvw"""
+  override lazy val replacementCharCode = 0x30
+  override lazy val requiredBitOrder = BitOrder.MostSignificantBitFirst
+}
 
 final class BitsCharsetAISPayloadArmoringDefinition
   extends BitsCharsetDefinition(BitsCharsetAISPayloadArmoring)


Reply via email to