Package

org.apache.daffodil.processors

unparsers

Permalink

package unparsers

Visibility
  1. Public
  2. All

Type Members

  1. trait AlignmentPrimUnparser extends PrimUnparser

    Permalink

    A marker trait for the unparsers that perform alignment.

    A marker trait for the unparsers that perform alignment.

    Needed to distinguish alignment operations from regular primitives so that we can inspect for bitOrder changes on most primitives, but not alignments - since their purpose may be to align so that the bitOrder change is on the right boundary. Checking bit order before them defeats the purpose of alignment.

  2. abstract class CombinatorUnparser extends Unparser with CombinatorProcessor

    Permalink
  3. case class DummyUnparser(primitiveName: String) extends PrimUnparserNoData with Product with Serializable

    Permalink
  4. final class EmptyGramUnparser extends PrimUnparserNoData

    Permalink
  5. final class ErrorUnparser extends PrimUnparserNoData

    Permalink
  6. case class NotUnparsableUnparser(context: ElementRuntimeData) extends PrimUnparserNoData with Product with Serializable

    Permalink
  7. trait PrimUnparser extends Unparser with PrimProcessor

    Permalink

    PrimUnparsers are for simple types.

    PrimUnparsers are for simple types. They support the ability to pre-evaluate any computations that depend on runtime-valued properties. This is needed to support the DFDL outputValueCalc property when the calculation forward references into the infoset.

    In that case, one must evaluate all the runtime-valued properties, save them for later use, then suspend unparsing of the outputValueCalc'ed element. Later when the value has been computed, one then unparses the item, and the right values are present for runtime-evaluated things, as they've been cached (on the Infoset Element)

  8. trait PrimUnparserNoData extends Unparser with PrimProcessorNoData

    Permalink

    An unparser that is primitive (no sub-unparsers), but doesn't write anything to a data stream (buffered or real), so alignment, bitOrder, etc.

    An unparser that is primitive (no sub-unparsers), but doesn't write anything to a data stream (buffered or real), so alignment, bitOrder, etc. cannot apply to it.

  9. class RepAtMostOccursCountUnparser extends RepUnparser

    Permalink
  10. class RepAtMostTotalNUnparser extends RepUnparser

    Permalink
  11. class RepExactlyNUnparser extends RepUnparser

    Permalink
  12. class RepExactlyTotalNUnparser extends RepUnparser

    Permalink
  13. class RepUnboundedUnparser extends RepUnparser

    Permalink

    This is a bit tricky: Since we are streaming the elements to the unparser, it will receive a DIArray element, but the length of that DIArray element at the time it is received, will probably be 0 because the child elements (not even one of them) will have been pulled yet.

    This is a bit tricky: Since we are streaming the elements to the unparser, it will receive a DIArray element, but the length of that DIArray element at the time it is received, will probably be 0 because the child elements (not even one of them) will have been pulled yet. So we cannot just measure how big the array is and iterate that many times. Rather, we have to iterate until we come to an End(DIArray) event.

    This requires the ability to look ahead into the input stream by 1, see if it is EndArray, and if so consume it and end the iteration.

  14. abstract class RepUnparser extends CombinatorUnparser

    Permalink
  15. final class SeqCompUnparser extends CombinatorUnparser with ToBriefXMLImpl

    Permalink
  16. trait SuspendableUnparser extends PrimUnparser

    Permalink
  17. class SuspensionDeadlockException extends RuntimeSchemaDefinitionError

    Permalink
  18. trait TextPrimUnparser extends PrimUnparser with TextProcessor

    Permalink

    Text primitive unparsers - primitive and textual only.

  19. abstract class UState extends ParseOrUnparseState with Cursor[InfosetAccessor] with ThrowsSDE with SavesErrorsAndWarnings

    Permalink
  20. class UStateForSuspension extends UState

    Permalink

    When we create a suspension during unparse, we need to clone the UStateMain for when the suspension is later resumed.

    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.

  21. final class UStateMain extends UState

    Permalink
  22. class UnparseAlternativeFailed extends UnparseError

    Permalink
  23. class UnparseError extends ProcessingError

    Permalink
  24. sealed trait Unparser extends Processor

    Permalink

Value Members

  1. object ENoWarn

    Permalink
  2. object INoWarn

    Permalink
  3. object Rep

    Permalink

    This object is so that we can share the iteration idioms between situations where we know N statically, and where dynamic evaluation computes N.

    This object is so that we can share the iteration idioms between situations where we know N statically, and where dynamic evaluation computes N.

    In these cases, there are no new points of uncertainty because computed or otherwise, we know N.

  4. object UState

    Permalink
  5. object UnparseError extends Serializable

    Permalink

Ungrouped