Packages

c

org.apache.daffodil.processors.unparsers

SuppressableSeparatorUnparserSuspendableOperation

final class SuppressableSeparatorUnparserSuspendableOperation extends SuspendableOperation with StreamSplitter

Performance Note: This can be a very special purpose suspension. Unlike the suspensions for dfdl:outputValueCalc, a separator expression can only look backwards to data that is already known. Hence, we can evaluate the separator, and just cache it, and when we decide to unsuspend this, we either blat out that cached data or not. But we need none of the state needed to unparse or evaluate expressions.

Linear Supertypes
StreamSplitter, SuspendableOperation, Suspension, Logging, Identity, Serializable, Serializable, AnyRef, Any
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. SuppressableSeparatorUnparserSuspendableOperation
  2. StreamSplitter
  3. SuspendableOperation
  4. Suspension
  5. Logging
  6. Identity
  7. Serializable
  8. Serializable
  9. AnyRef
  10. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Instance Constructors

  1. new SuppressableSeparatorUnparserSuspendableOperation(sepUnparser: Unparser, rd: 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
    Suspension
  5. final def areLogging(lvl: Type): Boolean
    Definition Classes
    Logging
  6. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  7. final def block(nodeOrVar: AnyRef, info: AnyRef, index: Long, exc: AnyRef): Unit
    Definition Classes
    Suspension
  8. final def blockedLocation: String
    Definition Classes
    Suspension
  9. def captureDOSForEndOfSeparatedRegionBeforePostfixSeparator(s: UState): Unit
  10. def captureDOSForStartOfSeparatedRegionBeforePostfixSeparator(s: UState): Unit

    Needed for the corner case of suppressing a postfix separator.

    Needed for the corner case of suppressing a postfix separator.

    Here we need to know whether two regions of data are zero length when dealing with trailingEmpty suppression. The data before the postfix separator must be ZL, and the data to the end of sequence must be ZL. So we have the ability to capture two ranges of buffered data from unparsing.

  11. def captureStateAtEndOfPotentiallyZeroLengthRegionFollowingTheSeparator(s: UState): Unit
  12. def clone(): AnyRef
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... ) @native()
  13. def continuation(state: UState): Unit

    Once we know whether the length is zero/non-zero, then we decide to unparse the separator or not.

    Once we know whether the length is zero/non-zero, then we decide to unparse the separator or not.

    If we're positional and potentially trailing, then this will only be Zero length if we're considering unparsing a trailing separator for an empty, with nothing following. So if ZL, no separator, otherwise we unparse the separator.

    Definition Classes
    SuppressableSeparatorUnparserSuspendableOperation → SuspendableOperation
  14. def doLogging(lvl: Type, msg: String, args: Seq[Any]): Unit
    Attributes
    protected
    Definition Classes
    Logging
  15. final def doTask(ustate: UState): Unit
    Attributes
    protected
    Definition Classes
    SuspendableOperation → Suspension
  16. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  17. def equals(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  18. final def explain(): Unit
    Definition Classes
    Suspension
  19. def finalize(): Unit
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  20. final def getClass(): Class[_]
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  21. def getDOSFromAtoB(beforeDOS: DataOutputStream, afterDOS: DataOutputStream): Seq[DataOutputStream]

    Given two DataOutputStream, determine the set of data output streams starting from the first, and in chain until (and including) we reach the second.

    Given two DataOutputStream, determine the set of data output streams starting from the first, and in chain until (and including) we reach the second.

    If the two are the same DataOutputStream, we get back a sequence of just the one DOS.

    Definition Classes
    StreamSplitter
  22. def getLogWriter(): LogWriter
    Definition Classes
    Logging
  23. final def getLoggingLevel(): Type
    Definition Classes
    Logging
  24. def hashCode(): Int
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  25. final def isBlocked: Boolean
    Definition Classes
    Suspension
  26. final def isDone: Boolean
    Definition Classes
    Suspension
  27. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  28. final def isMakingProgress: Boolean
    Definition Classes
    Suspension
  29. val isReadOnly: Boolean
    Definition Classes
    Suspension
  30. final macro def log(lvl: Type, msg: String, args: Any*): Unit
    Definition Classes
    Logging
  31. lazy val logID: String
    Definition Classes
    Logging → Identity
  32. val logLevel: Maybe[Type]
    Definition Classes
    Logging
  33. val logWriter: Maybe[LogWriter]
    Definition Classes
    Logging
  34. def maybeKnownLengthInBits(ustate: UState): MaybeULong
    Attributes
    protected
    Definition Classes
    Suspension
  35. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  36. final def notify(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  37. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  38. val rd: TermRuntimeData
    Definition Classes
    SuppressableSeparatorUnparserSuspendableOperation → SuspendableOperation → Suspension
  39. final def run(ustate: UState): Unit
    Definition Classes
    Suspension
  40. final def runSuspension(): Unit
    Definition Classes
    Suspension
  41. final def savedUstate: UState
    Definition Classes
    Suspension
  42. final def setDone: Unit
    Definition Classes
    Suspension
  43. def setLogWriter(lw: LogWriter): Unit
    Definition Classes
    Logging
  44. def setLoggingLevel(level: Type): Unit
    Definition Classes
    Logging
  45. final def setUnblocked(): Unit
    Definition Classes
    Suspension
  46. final def synchronized[T0](arg0: ⇒ T0): T0
    Definition Classes
    AnyRef
  47. def test(ustate: UState): Boolean

    Determine if the decision about whether to suppress or not can be taken.

    Determine if the decision about whether to suppress or not can be taken.

    A trailing separator may be suppressed if the things after it are zero-length to the end of the sequence.

    An anyEmpty separator may be suppressed if the separated thing is zero-length.

    This must be determined by examining the buffers of unparsed data. Such time as their length is known to be greater than zero the test will return true. If they are finished and length is still zero the test will also return true. Otherwise they are possibly just temporarily of length zero, so we don't know so we return false and the suspension will be retried later.

    Definition Classes
    SuppressableSeparatorUnparserSuspendableOperation → SuspendableOperation
  48. def toString(): String
    Definition Classes
    SuspendableOperation → AnyRef → Any
  49. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  50. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  51. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... ) @native()
  52. macro def withLoggingLevel[S](newLevel: Type)(body: ⇒ S): Unit
    Definition Classes
    Logging

Inherited from StreamSplitter

Inherited from SuspendableOperation

Inherited from Suspension

Inherited from Logging

Inherited from Identity

Inherited from Serializable

Inherited from Serializable

Inherited from AnyRef

Inherited from Any

Ungrouped