Packages

class RegionSplitUnparser extends PrimUnparser with SuspendableUnparser

We need to isolate the regions that we have to test for ZL/notZL for separator suppression. So we want these regions to not share data output streams with anything outside them.

To achieve that we split the data output stream using its buffering capabilities. Some of the splits are natural. They are one side of the (potentially suppressed) separator itself. So creating that suspendable unparser for the separator gives us a split.

The other side of these regions is however, an artificial split.

To avoid duplication of complex code paths, we create this suspendable unparser that exists purely to split the underlying DOS but maintain all the invariants of the underlying DOS code, i.e., the streams still get finalized (and therefore collapsed) the regular way.

We are counting on the fact that these objects live on the garbage collected heap, so have unbounded lifetimes, i.e., they aren't recycled in a pool or anything.

Performance Note: These do not need to capture state like a normal suspension does (e.g., for dfdl:outputValueCalc), as they're not actually suspending any actual unparsing behavior. Just forcing a boundary in the data output streams so that we can use the data output streams to measure the length (zero/non-zero) of unparsed data.

Linear Supertypes
SuspendableUnparser, PrimUnparser, PrimProcessor, Unparser, Processor, Serializable, Serializable, ToBriefXMLImpl, AnyRef, Any
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. RegionSplitUnparser
  2. SuspendableUnparser
  3. PrimUnparser
  4. PrimProcessor
  5. Unparser
  6. Processor
  7. Serializable
  8. Serializable
  9. ToBriefXMLImpl
  10. AnyRef
  11. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Instance Constructors

  1. new RegionSplitUnparser(context: TermRuntimeData)

Value Members

  1. final def !=(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  2. final def ##(): Int
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  4. def UE(ustate: UState, s: String, args: Any*): Nothing
    Definition Classes
    Unparser
  5. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  6. def briefXMLAttributes: String
    Attributes
    protected
    Definition Classes
    ToBriefXMLImpl
  7. val childProcessors: Vector[Processor]
    Definition Classes
    RegionSplitUnparser → PrimProcessor → Processor → ToBriefXMLImpl
  8. def clone(): AnyRef
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... ) @native()
  9. val context: TermRuntimeData
    Definition Classes
    RegionSplitUnparser → Unparser → Processor
  10. lazy val dataOutputStream: DirectOrBufferedDataOutputStream
  11. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  12. def equals(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  13. def finalize(): Unit
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  14. final def getClass(): Class[_]
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  15. def hashCode(): Int
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  16. def isEmpty: Boolean
    Definition Classes
    Unparser → Processor
  17. val isInitialized: Boolean
    Definition Classes
    Processor
  18. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  19. def isPrimitive: Boolean
    Definition Classes
    PrimProcessor → Processor
  20. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  21. def nom: String
    Definition Classes
    ToBriefXMLImpl
  22. final def notify(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  23. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  24. def runtimeDependencies: Vector[Nothing]
    Definition Classes
    RegionSplitUnparser → Processor
  25. lazy val suspendableOperation: RegionSplitSuspendableOperation
    Definition Classes
    RegionSplitUnparser → SuspendableUnparser
  26. final def synchronized[T0](arg0: ⇒ T0): T0
    Definition Classes
    AnyRef
  27. def toBriefXML(depthLimit: Int): String
    Definition Classes
    ToBriefXMLImpl
  28. def toString(): String
    Definition Classes
    ToBriefXMLImpl → AnyRef → Any
  29. final def unparse(state: UState): Unit
    Definition Classes
    SuspendableUnparser → Unparser
  30. final def unparse1(ustate: UState, ignore: AnyRef): Unit
    Definition Classes
    Unparser
  31. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  32. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  33. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... ) @native()

Inherited from SuspendableUnparser

Inherited from PrimUnparser

Inherited from PrimProcessor

Inherited from Unparser

Inherited from Processor

Inherited from Serializable

Inherited from Serializable

Inherited from ToBriefXMLImpl

Inherited from AnyRef

Inherited from Any

Ungrouped