Class

org.apache.daffodil.processors.unparsers

UStateForSuspension

Related Doc: package unparsers

Permalink

class UStateForSuspension extends UState

When we create a suspension during unparse, we need to clone the UStateMain for when the suspension is later resumed. However, we do not need nearly as much information for these cloned ustates as the main unparse. Either we can access the necessary information directly from the main UState, or the information isn't used and there's no need to copy it/take up valuable memory.

Linear Supertypes
UState, Cursor[InfosetAccessor], ParseOrUnparseState, SetProcessorMixin, FormatInfo, Logging, Identity, EncoderDecoderMixin, LocalBufferMixin, SavesErrorsAndWarnings, ThrowsSDE, StateForDebugger, State, AnyRef, Any
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. UStateForSuspension
  2. UState
  3. Cursor
  4. ParseOrUnparseState
  5. SetProcessorMixin
  6. FormatInfo
  7. Logging
  8. Identity
  9. EncoderDecoderMixin
  10. LocalBufferMixin
  11. SavesErrorsAndWarnings
  12. ThrowsSDE
  13. StateForDebugger
  14. State
  15. AnyRef
  16. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Instance Constructors

  1. new UStateForSuspension(mainUState: UStateMain, dos: DirectOrBufferedDataOutputStream, vbox: VariableBox, currentInfosetNode: DINode, arrayIndex: Long, escapeSchemeEVCacheMaybe: Maybe[MStackOfMaybe[EscapeSchemeUnparserHelper]], delimiterStackMaybe: Maybe[MStackOf[DelimiterStackUnparseNode]], prior: UStateForSuspension, tunable: DaffodilTunables)

    Permalink

Type Members

  1. final class LocalByteBuffer extends LocalBuffer[ByteBuffer]

    Permalink
    Definition Classes
    LocalBufferMixin
  2. final class LocalCharBuffer extends LocalBuffer[CharBuffer]

    Permalink
    Definition Classes
    LocalBufferMixin

Value Members

  1. final def !=(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  2. final def ##(): Int

    Permalink
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  4. def SDE(str: String, args: Any*): Nothing

    Permalink
    Definition Classes
    ParseOrUnparseState → SavesErrorsAndWarnings → ThrowsSDE
  5. final def SDE(th: Throwable): Nothing

    Permalink
    Definition Classes
    ThrowsSDE
  6. def SDEButContinue(str: String, args: Any*): Unit

    Permalink
    Definition Classes
    ParseOrUnparseState → SavesErrorsAndWarnings
  7. def SDW(warnID: WarnID, str: String, args: Any*): Unit

    Permalink
    Definition Classes
    ParseOrUnparseState → SavesErrorsAndWarnings
  8. def SDW(str: String, args: Any*): Unit

    Permalink
    Definition Classes
    ParseOrUnparseState
  9. def ThrowSDE: PartialFunction[Throwable, Nothing]

    Permalink
    Definition Classes
    ThrowsSDE
  10. var _processorStatus: ProcessorResult

    Permalink
    Attributes
    protected
    Definition Classes
    ParseOrUnparseState
  11. var _validationStatus: Boolean

    Permalink
    Attributes
    protected
    Definition Classes
    ParseOrUnparseState
  12. def addUnparseError(ue: UnparseError): Unit

    Permalink
    Definition Classes
    UState
  13. def advance: Boolean

    Permalink
    Definition Classes
    UStateForSuspension → Cursor
  14. def advanceAccessor: InfosetAccessor

    Permalink
    Definition Classes
    UStateForSuspension → Cursor
  15. final def advanceMaybe: Maybe[InfosetAccessor]

    Permalink
    Definition Classes
    Cursor
  16. def advanceOrError: Nothing

    Permalink
    Definition Classes
    UStateForSuspensionUState
  17. def allTerminatingMarkup: List[DFADelimiter]

    Permalink
    Definition Classes
    UStateForSuspensionUState
  18. final def areLogging(lvl: Type): Boolean

    Permalink
    Definition Classes
    Logging
  19. def arrayIndexStack: Nothing

    Permalink
    Definition Classes
    UStateForSuspensionUState
  20. def arrayPos: Long

    Permalink
  21. final def asInstanceOf[T0]: T0

    Permalink
    Definition Classes
    Any
  22. final def binaryFloatRep: BinaryFloatRep

    Permalink
    Definition Classes
    ParseOrUnparseState → FormatInfo
  23. def bitLimit0b: MaybeULong

    Permalink
    Definition Classes
    UStateParseOrUnparseStateStateForDebugger
  24. final def bitLimit1b: MaybeULong

    Permalink
    Definition Classes
    ParseOrUnparseState
  25. final def bitOrder: BitOrder

    Permalink

    Returns bit order.

    Returns bit order. If text, this is the bit order for the character set encoding. If binary, this is the bitOrder property value.

    Definition Classes
    ParseOrUnparseState → FormatInfo
  26. final def bitPos: Long

    Permalink
    Definition Classes
    ParseOrUnparseState
  27. def bitPos0b: Long

    Permalink
    Definition Classes
    UStateParseOrUnparseState
  28. final def bitPos1b: Long

    Permalink
    Definition Classes
    ParseOrUnparseState
  29. final def byteOrder: ByteOrder

    Permalink
    Definition Classes
    ParseOrUnparseState → FormatInfo
  30. final def bytePos: Long

    Permalink
    Definition Classes
    ParseOrUnparseStateStateForDebugger
  31. final def bytePos0b: Long

    Permalink
    Definition Classes
    ParseOrUnparseState
  32. final def bytePos1b: Long

    Permalink
    Definition Classes
    ParseOrUnparseState
  33. def charPos: Long

    Permalink
    Definition Classes
    UState
  34. final def checkBitOrder(): Unit

    Permalink

    Checks for legal bitOrder change (byte boundary required), or splits the DOS so that the check will occur later when they are collapsed back together.

    Checks for legal bitOrder change (byte boundary required), or splits the DOS so that the check will occur later when they are collapsed back together.

    If you think about it, the only way we could not have the absoluteBitPos is because something variable-length preceded us, and couldn't be computed due to suspended computation (forward referencing expression somewhere prior).

    At some point, that suspension will get resolved, and forward collapsing of the DataOutputStreams will occur. When it encounters a split created here, we already know that the bit orders are different (or we wouldn't have put in the split), so we just have to see if we're on a byte boundary. That could happen if the original DOS ended in a frag byte, but previous to it, was something that was variable bits wide (all bits shift such that original DOS's frag byte becomes a whole byte.)

    The invariant here is that the original DOS will get collapsed together with DOS preceding it. After that collapsing, it has to end at a byte boundary (no frag byte). If it doesn't then it's a bit order-change error. Otherwise we're ok.

    This is why we can always proceed with a new buffered DOS, knowing we're going to be on a byte boundary with the bit order needed.

    Attributes
    protected
    Definition Classes
    UStateParseOrUnparseState
  35. def childIndexStack: Nothing

    Permalink
    Definition Classes
    UStateForSuspensionUState
  36. def childPos: Long

    Permalink
  37. def clone(): AnyRef

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  38. def copyStateForDebugger: TupleForDebugger

    Permalink
    Definition Classes
    ParseOrUnparseState
  39. val currentInfosetNode: DINode

    Permalink
    Definition Classes
    UStateForSuspensionUState
  40. def currentInfosetNodeMaybe: Maybe[DINode]

    Permalink
    Definition Classes
    UStateForSuspensionUState
  41. def currentInfosetNodeStack: Nothing

    Permalink
    Definition Classes
    UStateForSuspensionUState
  42. def currentLocation: DataLocation

    Permalink
    Definition Classes
    UStateStateForDebuggerState
  43. def currentNode: Maybe[DINode]

    Permalink
    Definition Classes
    UStateParseOrUnparseState
  44. def dState: DState

    Permalink

    Used when evaluating expressions.

    Used when evaluating expressions. Holds state of expression during evaluation.

    Doesn't hold every bit of state - that is to say there's still the regular execution call stack, which keeps track of exactly where in the expression evaluation we are.

    Definition Classes
    ParseOrUnparseState
  45. var dataOutputStream: DirectOrBufferedDataOutputStream

    Permalink
    Definition Classes
    UState
  46. var dataProc: Maybe[DataProcessor]

    Permalink
    Definition Classes
    ParseOrUnparseState
  47. def dataStream: Maybe[DirectOrBufferedDataOutputStream]

    Permalink
    Definition Classes
    UStateParseOrUnparseState
  48. final def decoder: BitsCharsetDecoder

    Permalink
    Definition Classes
    ParseOrUnparseState → FormatInfo
  49. var diagnostics: List[Diagnostic]

    Permalink
    Definition Classes
    ParseOrUnparseStateState
  50. def discriminator: Boolean

    Permalink
    Definition Classes
    StateForDebugger
  51. def doLogging(lvl: Type, msg: String, args: Seq[Any]): Unit

    Permalink
    Attributes
    protected
    Definition Classes
    Logging
  52. final def encoder: BitsCharsetEncoder

    Permalink
    Definition Classes
    ParseOrUnparseState → FormatInfo
  53. final def encodingErrorPolicy: EncodingErrorPolicy

    Permalink
    Definition Classes
    ParseOrUnparseState → FormatInfo
  54. final def encodingMandatoryAlignmentInBits: Int

    Permalink
    Definition Classes
    ParseOrUnparseState → FormatInfo
  55. final def eq(arg0: AnyRef): Boolean

    Permalink
    Definition Classes
    AnyRef
  56. def equals(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  57. def escapeSchemeEVCache: MStackOfMaybe[EscapeSchemeUnparserHelper]

    Permalink
    Definition Classes
    UStateForSuspensionUState
  58. final def fillByte: Byte

    Permalink
    Definition Classes
    ParseOrUnparseState → FormatInfo
  59. def finalize(): Unit

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  60. def fini: Unit

    Permalink
    Definition Classes
    UStateForSuspension → Cursor
  61. final def getClass(): Class[_]

    Permalink
    Definition Classes
    AnyRef → Any
  62. def getContext(): ElementRuntimeData

    Permalink
    Definition Classes
    ParseOrUnparseState
  63. def getDecoder(cs: BitsCharset): BitsCharsetDecoder

    Permalink
    Definition Classes
    UStateForSuspension → EncoderDecoderMixin
  64. def getDecoderInfo(charset: BitsCharset): DecoderInfo

    Permalink
    Definition Classes
    EncoderDecoderMixin
  65. def getEncoder(cs: BitsCharset): BitsCharsetEncoder

    Permalink
    Definition Classes
    UStateForSuspension → EncoderDecoderMixin
  66. def getEncoderInfo(charset: BitsCharset): EncoderInfo

    Permalink
    Definition Classes
    EncoderDecoderMixin
  67. def getLogWriter(): LogWriter

    Permalink
    Definition Classes
    Logging
  68. final def getLoggingLevel(): Type

    Permalink
    Definition Classes
    Logging
  69. def groupIndexStack: Nothing

    Permalink
    Definition Classes
    UStateForSuspensionUState
  70. def groupPos: Long

    Permalink
  71. def hasInfoset: Boolean

    Permalink
    Definition Classes
    UStateParseOrUnparseState
  72. def hashCode(): Int

    Permalink
    Definition Classes
    AnyRef → Any
  73. def infoset: DIElement

    Permalink
    Definition Classes
    UStateParseOrUnparseState
  74. def inspect: Boolean

    Permalink
    Definition Classes
    UStateForSuspension → Cursor
  75. def inspectAccessor: InfosetAccessor

    Permalink
    Definition Classes
    UStateForSuspension → Cursor
  76. final def inspectMaybe: Maybe[InfosetAccessor]

    Permalink
    Definition Classes
    Cursor
  77. def inspectOrError: Nothing

    Permalink
    Definition Classes
    UStateForSuspensionUState
  78. final def isFixedWidthEncoding: Boolean

    Permalink
    Definition Classes
    FormatInfo
  79. def isInspectArrayEnd: Nothing

    Permalink
    Definition Classes
    UStateForSuspensionUState
  80. final def isInstanceOf[T0]: Boolean

    Permalink
    Definition Classes
    Any
  81. final def jByteOrder: ByteOrder

    Permalink
    Definition Classes
    FormatInfo
  82. final def lengthInBits(str: String, bitsCharset: BitsCharset): Long

    Permalink
    Definition Classes
    EncoderDecoderMixin
  83. def localDelimiters: DelimiterStackUnparseNode

    Permalink
    Definition Classes
    UStateForSuspensionUState
  84. final macro def log(lvl: Type, msg: String, args: Any*): Unit

    Permalink
    Definition Classes
    Logging
  85. lazy val logID: String

    Permalink
    Definition Classes
    Logging → Identity
  86. var logLevel: Maybe[Type]

    Permalink
    Definition Classes
    Logging
  87. var logWriter: Maybe[LogWriter]

    Permalink
    Definition Classes
    Logging
  88. val mainUState: UStateMain

    Permalink
  89. final def maybeCharWidthInBits: MaybeInt

    Permalink
    Definition Classes
    ParseOrUnparseState → FormatInfo
  90. def maybeERD: Maybe[ElementRuntimeData]

    Permalink
    Definition Classes
    ParseOrUnparseState
  91. final def maybeProcessor: Maybe[Processor]

    Permalink
    Definition Classes
    SetProcessorMixin
  92. final def maybeUTF16Width: Maybe[UTF16Width]

    Permalink
    Definition Classes
    ParseOrUnparseState → FormatInfo
  93. def moveOverOneArrayIndexOnly(): Nothing

    Permalink
    Definition Classes
    UStateForSuspensionUState
  94. def moveOverOneElementChildOnly(): Nothing

    Permalink
    Definition Classes
    UStateForSuspensionUState
  95. def moveOverOneGroupIndexOnly(): Nothing

    Permalink
    Definition Classes
    UStateForSuspensionUState
  96. final def ne(arg0: AnyRef): Boolean

    Permalink
    Definition Classes
    AnyRef
  97. final def notYetImplemented(msg: String, args: Any*): Nothing

    Permalink
    Definition Classes
    ThrowsSDE
  98. final def notify(): Unit

    Permalink
    Definition Classes
    AnyRef
  99. final def notifyAll(): Unit

    Permalink
    Definition Classes
    AnyRef
  100. final def notifyDebugging(flag: Boolean): Unit

    Permalink

    The User API sets the debugger and debug on/off flag on the DataProcessor object.

    The User API sets the debugger and debug on/off flag on the DataProcessor object. When a PState or UState is created by the DataProcessor, the DataProcessor sets notifies the state object so that it can setup any debug-specific behaviors.

    Definition Classes
    UStateParseOrUnparseState
  101. def occursBoundsStack: Nothing

    Permalink
  102. def popDelimiters(): Nothing

    Permalink
    Definition Classes
    UStateForSuspensionUState
  103. val prior: UStateForSuspension

    Permalink
    Definition Classes
    UStateForSuspensionUState
  104. final def processor: Processor

    Permalink
    Definition Classes
    SetProcessorMixin
  105. def processorStatus: ProcessorResult

    Permalink
    Definition Classes
    ParseOrUnparseStateState
  106. def pushDelimiters(node: DelimiterStackUnparseNode): Nothing

    Permalink
    Definition Classes
    UStateForSuspensionUState
  107. final def replacingDecoder: BitsCharsetDecoder

    Permalink
    Definition Classes
    ParseOrUnparseState → FormatInfo
  108. final def reportingDecoder: BitsCharsetDecoder

    Permalink
    Definition Classes
    ParseOrUnparseState → FormatInfo
  109. final def resetFormatInfoCaches(): Unit

    Permalink

    Must call after all processors so as to recompute the formatInfo slots for the next parser - since the values could change.

    Must call after all processors so as to recompute the formatInfo slots for the next parser - since the values could change.

    Definition Classes
    ParseOrUnparseState
  110. final def schemaDefinitionError(str: String, args: Any*): Nothing

    Permalink
    Definition Classes
    ThrowsSDE
  111. def schemaDefinitionErrorButContinue(str: String, args: Any*): Unit

    Permalink
    Definition Classes
    SavesErrorsAndWarnings
  112. def schemaDefinitionErrorDueToPropertyValue(propertyName: String, propertyValue: String, propertyLocation: LookupLocation, otherPropertyLocation: LookupLocation, str: String, args: Any*): Nothing

    Permalink
    Definition Classes
    SavesErrorsAndWarnings
  113. final macro def schemaDefinitionUnless(testThatWillThrowIfFalse: Boolean, str: String, args: Any*): Unit

    Permalink
    Definition Classes
    ThrowsSDE
  114. macro def schemaDefinitionWarningUnless(warnID: WarnID, testThatWillWarnIfFalse: Boolean, str: String, args: Any*): Unit

    Permalink
    Definition Classes
    SavesErrorsAndWarnings
  115. macro def schemaDefinitionWarningWhen(warnID: WarnID, testThatWillWarnIfTrue: Boolean, str: String, args: Any*): Unit

    Permalink
    Definition Classes
    SavesErrorsAndWarnings
  116. final macro def schemaDefinitionWhen(testThatWillThrowIfTrue: Boolean, str: String, args: Any*): Unit

    Permalink
    Definition Classes
    ThrowsSDE
  117. def schemaFileLocation: SchemaFileLocation

    Permalink
    Definition Classes
    ParseOrUnparseState → ThrowsSDE
  118. final def setFailed(failureDiagnostic: Diagnostic): Unit

    Permalink
    Definition Classes
    ParseOrUnparseState
  119. def setLogWriter(lw: LogWriter): Unit

    Permalink
    Definition Classes
    Logging
  120. def setLoggingLevel(level: Type): Unit

    Permalink
    Definition Classes
    Logging
  121. final def setMaybeProcessor(mp: Maybe[Processor]): Unit

    Permalink
    Definition Classes
    SetProcessorMixin
  122. final def setProcessor(p: Processor): Unit

    Permalink

    Must be called on the state before any call to the I/O layer, as that will call back to get property-related information and that has to be obtained via the runtime data for the term - whether element or model group.

    Must be called on the state before any call to the I/O layer, as that will call back to get property-related information and that has to be obtained via the runtime data for the term - whether element or model group. The

    Definition Classes
    SetProcessorMixin
  123. def setSuccess(): Unit

    Permalink

    Important: If an error is being suppressed, you must call this to reset the state back so that the prior failure doesn't "last forever" past the point where it is being suppressed.

    Important: If an error is being suppressed, you must call this to reset the state back so that the prior failure doesn't "last forever" past the point where it is being suppressed.

    This happens, for example, in the debugger when it is evaluating expressions.

    Definition Classes
    ParseOrUnparseState
  124. def setVariableMap(newMap: VariableMap): Unit

    Permalink
    Definition Classes
    ParseOrUnparseState
  125. def setVariables(newVariableMap: VariableMap): Nothing

    Permalink
    Definition Classes
    UStateForSuspensionUState
  126. final def suppressDiagnosticAndSucceed(d: Diagnostic): Unit

    Permalink

    Used when errors are caught by interactive debugger expression evaluation.

    Used when errors are caught by interactive debugger expression evaluation. We don't want to accumulate the diagnostics that we're suppressing.

    Definition Classes
    ParseOrUnparseState
  127. final def synchronized[T0](arg0: ⇒ T0): T0

    Permalink
    Definition Classes
    AnyRef
  128. def thisElement: DIElement

    Permalink
    Definition Classes
    UStateParseOrUnparseState
  129. def toString(): String

    Permalink
    Definition Classes
    UState → AnyRef → Any
  130. final def toss(th: Throwable): Nothing

    Permalink
    Definition Classes
    ThrowsSDE
  131. final def truncateToBits(str: String, bitsCharset: BitsCharset, nBits: Long): String

    Permalink
    Definition Classes
    EncoderDecoderMixin
  132. val tunable: DaffodilTunables

    Permalink
    Definition Classes
    ParseOrUnparseState
  133. lazy val unparseResult: UnparseResult

    Permalink
    Definition Classes
    UState
  134. def validationError(msg: String, args: Any*): Unit

    Permalink
    Definition Classes
    ParseOrUnparseState
  135. def validationErrorNoContext(cause: Throwable): Unit

    Permalink
    Definition Classes
    ParseOrUnparseState
  136. def validationStatus: Boolean

    Permalink
    Definition Classes
    ParseOrUnparseStateState
  137. var variableBox: VariableBox

    Permalink
    Attributes
    protected
    Definition Classes
    ParseOrUnparseState
  138. def variableMap: VariableMap

    Permalink

    Variable map provides access to variable bindings.

    Variable map provides access to variable bindings.

    Definition Classes
    ParseOrUnparseState
  139. final def wait(): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  140. final def wait(arg0: Long, arg1: Int): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  141. final def wait(arg0: Long): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  142. final def whichBit0b: Long

    Permalink
    Definition Classes
    ParseOrUnparseState
  143. def withByteArrayOutputStream: LocalStack[(ByteArrayOutputStream, DirectOrBufferedDataOutputStream)]

    Permalink
    Definition Classes
    UStateForSuspensionUState
  144. final lazy val withLocalByteBuffer: LocalStack[LocalByteBuffer]

    Permalink
    Definition Classes
    LocalBufferMixin
  145. final lazy val withLocalCharBuffer: LocalStack[LocalCharBuffer]

    Permalink
    Definition Classes
    LocalBufferMixin
  146. macro def withLoggingLevel[S](newLevel: Type)(body: ⇒ S): Unit

    Permalink
    Definition Classes
    Logging
  147. def withUnparserDataInputStream: LocalStack[StringDataInputStreamForUnparse]

    Permalink
    Definition Classes
    UStateForSuspensionUState

Inherited from UState

Inherited from Cursor[InfosetAccessor]

Inherited from ParseOrUnparseState

Inherited from SetProcessorMixin

Inherited from FormatInfo

Inherited from Logging

Inherited from Identity

Inherited from EncoderDecoderMixin

Inherited from LocalBufferMixin

Inherited from SavesErrorsAndWarnings

Inherited from ThrowsSDE

Inherited from StateForDebugger

Inherited from State

Inherited from AnyRef

Inherited from Any

Ungrouped