Class

org.apache.daffodil.grammar.primitives

SequenceChild

Related Doc: package primitives

Permalink

abstract class SequenceChild extends Terminal

A SequenceChild is exactly that, a child Term of a Sequence

Methods/members of this class combine information about a child term with that about the sequence itself. This class is really a part of the state of the sequence object.

This is the class primarily responsible for compilation of sequence and term information into digested form for the runtime, such that the runtime can properly implement complex DFDL behaviors like separator suppression and emptyElementParsePolicy.

These objects are part of the Gram object hierarchy. They represent the use of a Term in a context. They are objects that belong to (are owned by exactly one) the enclosing sequence, are part of it, and so it is reasonable for a SequenceChild to have a backpointer to the enclosing Sequence object in all cases, and this is passed to them on construction. This particular backpointer is not a challenge to sharing substructure as these objects cannot and are not intended to be shared. They really are state of the enclosing sequence broken out for convenience.

This allows the child (of the Sequence) Term object (dsom object) that provides the definition of the SequenceChild to be shared/reused, in principle without having a backpointer to the enclosing Sequence. That allows sharing, and removes lots of duplication/copying that is otherwise needed in the schema compiler data structures.

Eventually things like alignment calculations should move from Terms to these objects. That is, those calculations should not be done on the DSOM objects, but on these SequenceChild objects in the Gram objects.

Linear Supertypes
Terminal, NamedGram, Gram, GramRuntime1Mixin, BasicComponent, ImplementsThrowsOrSavesSDE, SavesErrorsAndWarnings, ImplementsThrowsSDE, ResolvesQNames, ThrowsSDE, HasTunable, OOLAGHostImpl, OOLAGHost, NamedMixinBase, WithDiagnostics, Logging, Identity, AnyRef, Any
Known Subclasses
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. SequenceChild
  2. Terminal
  3. NamedGram
  4. Gram
  5. GramRuntime1Mixin
  6. BasicComponent
  7. ImplementsThrowsOrSavesSDE
  8. SavesErrorsAndWarnings
  9. ImplementsThrowsSDE
  10. ResolvesQNames
  11. ThrowsSDE
  12. HasTunable
  13. OOLAGHostImpl
  14. OOLAGHost
  15. NamedMixinBase
  16. WithDiagnostics
  17. Logging
  18. Identity
  19. AnyRef
  20. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Instance Constructors

  1. new SequenceChild(sq: SequenceTermBase, child: Term, groupIndex: Int)

    Permalink

Type Members

  1. type SeparatedHelper = SeparatedSequenceChildParseResultHelper

    Permalink

    There's only parse result helpers here, so let's abbreviate

    There's only parse result helpers here, so let's abbreviate

    Attributes
    protected
  2. type UnseparatedHelper = UnseparatedSequenceChildParseResultHelper

    Permalink
    Attributes
    protected

Abstract Value Members

  1. abstract def separatedHelper: SeparatedHelper

    Permalink
    Attributes
    protected
  2. abstract def sequenceChildParser: SequenceChildParser

    Permalink
    Attributes
    protected
  3. abstract def sequenceChildUnparser: SequenceChildUnparser

    Permalink
    Attributes
    protected
  4. abstract def unseparatedHelper: UnseparatedHelper

    Permalink
    Attributes
    protected

Concrete 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. final def LV[T](sym: Symbol)(body: ⇒ T): OOLAGValue[T]

    Permalink
    Attributes
    protected
    Definition Classes
    OOLAGHost
  5. def NoAnnotationContext: Option[SchemaFileLocation]

    Permalink
    Definition Classes
    ImplementsThrowsSDE
  6. final def SDE(str: String, args: Any*): Nothing

    Permalink
    Definition Classes
    Gram → SavesErrorsAndWarnings → ImplementsThrowsSDE → ThrowsSDE
  7. final def SDE(th: Throwable): Nothing

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

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

    Permalink
    Definition Classes
    Gram → ImplementsThrowsOrSavesSDE → SavesErrorsAndWarnings
  10. def ThrowSDE: PartialFunction[Throwable, Nothing]

    Permalink
    Definition Classes
    ThrowsSDE
  11. final def areLogging(lvl: Type): Boolean

    Permalink
    Definition Classes
    Logging
  12. final def asInstanceOf[T0]: T0

    Permalink
    Definition Classes
    Any
  13. final def assuming(pred: Boolean): Unit

    Permalink
    Definition Classes
    OOLAGHost
  14. final def checkErrors: Unit

    Permalink
    Definition Classes
    OOLAGHost
  15. lazy val childParser: Parser

    Permalink
    Attributes
    protected
  16. lazy val childUnparser: Unparser

    Permalink
    Attributes
    protected
  17. def clone(): AnyRef

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  18. final val context: SchemaComponent

    Permalink
    Definition Classes
    Gram
  19. final var currentOVList: Seq[OOLAGValueBase]

    Permalink
    Definition Classes
    OOLAGHost
  20. lazy val diagnosticDebugName: String

    Permalink
    Definition Classes
    NamedMixinBase
  21. def diagnostics: Seq[Diagnostic]

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

    Permalink
    Attributes
    protected
    Definition Classes
    Logging
  23. final def eq(arg0: AnyRef): Boolean

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

    Permalink
    Definition Classes
    AnyRef → Any
  25. final lazy val erd: ElementRuntimeData

    Permalink
    Attributes
    protected
  26. def error(th: Diagnostic): Unit

    Permalink
    Definition Classes
    OOLAGHost
  27. final def errors: Seq[Diagnostic]

    Permalink
    Definition Classes
    OOLAGHost
  28. def finalize(): Unit

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  29. val forWhat: ParserOrUnparser

    Permalink
    Definition Classes
    Gram
  30. final def getClass(): Class[_]

    Permalink
    Definition Classes
    AnyRef → Any
  31. def getDiagnostics: Seq[Diagnostic]

    Permalink
    Definition Classes
    OOLAGHost → WithDiagnostics
  32. def getLogWriter(): LogWriter

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

    Permalink
    Definition Classes
    Logging
  34. final def hasNoParser: Parser

    Permalink
    Attributes
    protected
    Definition Classes
    GramRuntime1Mixin
  35. final def hasNoUnparser: Unparser

    Permalink
    Attributes
    protected
    Definition Classes
    GramRuntime1Mixin
  36. final def hasOOLAGRootSetup: Boolean

    Permalink
    Definition Classes
    OOLAGHost
  37. def hashCode(): Int

    Permalink
    Definition Classes
    AnyRef → Any
  38. final def isDeclaredLast: Boolean

    Permalink
    Attributes
    protected
  39. def isEmpty: Boolean

    Permalink
    Definition Classes
    TerminalGram
  40. final lazy val isEmptyRepNonZeroLength: Boolean

    Permalink

    Combines static information about the sequence child's definition with properties of the sequence to tell us if a zero-length after a parse attempt needs special treatment.

    Combines static information about the sequence child's definition with properties of the sequence to tell us if a zero-length after a parse attempt needs special treatment.

    Attributes
    protected
  41. final lazy val isEmptyRepZeroLength: Boolean

    Permalink

    Combines static information about the sequence child's definition with properties of the sequence to tell us if a zero-length after a parse attempt needs special treatment.

    Combines static information about the sequence child's definition with properties of the sequence to tell us if a zero-length after a parse attempt needs special treatment.

    Attributes
    protected
  42. def isError: Boolean

    Permalink
    Definition Classes
    OOLAGHost → WithDiagnostics
  43. final def isInstanceOf[T0]: Boolean

    Permalink
    Definition Classes
    Any
  44. final lazy val isKnownStaticallyNotToSuppressSeparator: Boolean

    Permalink

    Combines static knowledge of whether the term can be zero length, with issues like in order for trailing sep suppression to apply, the term must be potentially trailing.

    Combines static knowledge of whether the term can be zero length, with issues like in order for trailing sep suppression to apply, the term must be potentially trailing.

    This combines the static information about the child term with that of the sequence child itself to answer, for this usage of the term, whether we know for sure that we should NOT suppress the separator.

    True if we should never suppress separator i.e., always lay down associated separator. False if we may/may-not suppress separator depending on runtime characteristics like whether some thing(s) are zero length.

    Attributes
    protected
  45. final lazy val isModelGroupRepNonZeroLength: Boolean

    Permalink

    Combines static information about the model groupsequence child's definition with properties of the sequence to tell us if a zero-length after a parse attempt needs special treatment.

    Combines static information about the model groupsequence child's definition with properties of the sequence to tell us if a zero-length after a parse attempt needs special treatment.

    This is the concept of "empty" that applies to model groups. As they are not elements, nothing about default values or EVDP or nil reps applies here.

    Attributes
    protected
  46. final lazy val isModelGroupRepPossiblyZeroLength: Boolean

    Permalink

    Combines static information about the model groupsequence child's definition with properties of the sequence to tell us if a zero-length after a parse attempt needs special treatment.

    Combines static information about the model groupsequence child's definition with properties of the sequence to tell us if a zero-length after a parse attempt needs special treatment.

    This is the concept of "empty" that applies to model groups. As they are not elements, nothing about default values or EVDP or nil reps applies here.

    Attributes
    protected
  47. final lazy val isPositional: Boolean

    Permalink
    Attributes
    protected
  48. final macro def log(lvl: Type, msg: String, args: Any*): Unit

    Permalink
    Definition Classes
    Logging
  49. lazy val logID: String

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

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

    Permalink
    Definition Classes
    Logging
  52. final def maybeParser: Maybe[Parser]

    Permalink
    Definition Classes
    GramRuntime1Mixin
  53. final lazy val maybeUnparser: Maybe[Unparser]

    Permalink
    Definition Classes
    GramRuntime1Mixin
  54. final lazy val mgrd: ModelGroupRuntimeData

    Permalink
    Attributes
    protected
  55. final val nArgs: Args

    Permalink
    Definition Classes
    OOLAGHostImpl → OOLAGHost
  56. def name: String

    Permalink
    Definition Classes
    NamedGramGram
  57. final def namespaces: NamespaceBinding

    Permalink
    Definition Classes
    Gram → ResolvesQNames
  58. final def ne(arg0: AnyRef): Boolean

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

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

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

    Permalink
    Definition Classes
    AnyRef
  62. final lazy val oolagContext: OOLAGHost

    Permalink
    Definition Classes
    OOLAGHost
  63. final def oolagContextViaArgs: Option[OOLAGHost]

    Permalink
    Attributes
    protected
    Definition Classes
    OOLAGHostImpl → OOLAGHost
  64. def oolagError(th: Diagnostic): Unit

    Permalink
    Attributes
    protected
    Definition Classes
    OOLAGHost
  65. final def oolagParent: OOLAGHost

    Permalink
    Attributes
    protected
    Definition Classes
    OOLAGHost
  66. def oolagWarn(th: Diagnostic): Unit

    Permalink
    Attributes
    protected
    Definition Classes
    OOLAGHost
  67. final lazy val optOolagContext: Option[OOLAGHost]

    Permalink
    Definition Classes
    OOLAGHost
  68. final lazy val optSequenceChildParser: Option[SequenceChildParser]

    Permalink
  69. final lazy val optSequenceChildUnparser: Option[SequenceChildUnparser]

    Permalink
  70. final lazy val parser: SequenceChildParser

    Permalink

    Provides parser.

    Provides parser.

    Required to examine child parsers, and optimize itself out by propagating NadaParser if there is no parser.

    Definition Classes
    SequenceChildGramRuntime1Mixin
  71. lazy val path: String

    Permalink
    Definition Classes
    Gram → OOLAGHost
  72. def qNameForProperty(local: String, ns: NS): GlobalQName

    Permalink
    Definition Classes
    ResolvesQNames
  73. def removePrefix(prefixedValue: String): String

    Permalink
    Definition Classes
    ResolvesQNames
  74. final def requiredEvaluations(lv: OOLAGValueBase): Unit

    Permalink
    Attributes
    protected
    Definition Classes
    OOLAGHost
  75. final def requiredEvaluations(arg: ⇒ Any): Unit

    Permalink
    Attributes
    protected
    Definition Classes
    OOLAGHost
  76. def resolveQName(qnString: String): RefQName

    Permalink
    Definition Classes
    ResolvesQNames
  77. final def schemaDefinitionError(str: String, args: Any*): Nothing

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

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

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

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

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

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

    Permalink
    Definition Classes
    ThrowsSDE
  84. final def schemaFileLocation: SchemaFileLocation

    Permalink
    Definition Classes
    Gram → ThrowsSDE
  85. lazy val sepGram: Gram

    Permalink
    Attributes
    protected
  86. lazy val sepParser: Parser

    Permalink
    Attributes
    protected
  87. lazy val sepUnparser: Unparser

    Permalink
    Attributes
    protected
  88. lazy val separatedSequenceChildBehavior: SeparatedSequenceChildBehavior

    Permalink
    Attributes
    protected
  89. def setLogWriter(lw: LogWriter): Unit

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

    Permalink
    Definition Classes
    Logging
  91. final def setOOLAGContext(oolagContextArg: OOLAGHost): Unit

    Permalink
    Definition Classes
    OOLAGHost
  92. val sq: SequenceTermBase

    Permalink
    Attributes
    protected
  93. final def srd: SequenceRuntimeData

    Permalink
    Attributes
    protected
  94. final def sscb: SeparatedSequenceChildBehavior

    Permalink
    Attributes
    protected
  95. final def ssp: SeparatorSuppressionPolicy

    Permalink
    Attributes
    protected
  96. def subset(testThatWillThrowIfFalse: Boolean, msg: String, args: Any*): Unit

    Permalink
    Definition Classes
    ImplementsThrowsOrSavesSDE
  97. def subsetError(msg: String, args: Any*): Nothing

    Permalink
    Definition Classes
    ImplementsThrowsOrSavesSDE
  98. final def synchronized[T0](arg0: ⇒ T0): T0

    Permalink
    Definition Classes
    AnyRef
  99. final def termRuntimeData: TermRuntimeData

    Permalink
  100. def toString(): String

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

    Permalink
    Definition Classes
    ThrowsSDE
  102. final def trd: TermRuntimeData

    Permalink
    Attributes
    protected
  103. final lazy val tunable: DaffodilTunables

    Permalink
    Definition Classes
    Gram → ImplementsThrowsOrSavesSDE → HasTunable
  104. final lazy val unparser: SequenceChildUnparser

    Permalink

    Provides unparser.

    Provides unparser.

    Required to examine child unparsers, and optimize itself out by propagating NadaUnparser if there is no unparser.

    Definition Classes
    SequenceChildGramRuntime1Mixin
  105. final def unqualifiedPathStepPolicy: UnqualifiedPathStepPolicy

    Permalink
    Definition Classes
    Gram → ResolvesQNames
  106. final def wait(): Unit

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

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

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  109. def warn(th: Diagnostic): Unit

    Permalink
    Definition Classes
    OOLAGHost
  110. final def warnings: Seq[Diagnostic]

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

    Permalink
    Definition Classes
    Logging
  112. final lazy val zeroLengthDetector: ZeroLengthDetector

    Permalink

    A zeroLengthDetector is a runtime device used by the unparser to determine whether a term could unparse to zero length or not.

    A zeroLengthDetector is a runtime device used by the unparser to determine whether a term could unparse to zero length or not.

    Computed statically, because sometimes we know that it is not possible for the representation to be zero length (e.g., non-nillable ahd non-defaultable int always has to have at least one digit.)

    Used by unparsing algorithms that involve separator suppression for zero-length data. The point of this is to avoid the overhead of unparser uncertainty about a separator being needed or not. If you can examine the value with a zero-length-detector and it gives you a positive answer one way or the other, you can avoid a great deal of unparser overhead where it has to suspend whether to emit a separator. If the ZL detector tells you the representation will be greater than zero length, you can just emit a separator and move on.

    The detector algorithm is independent of the usage of the term. That is, it doesn't take things like dfdl:separatorSuppressionPolicy (which is a property of the surrounding sequence) into account.

  113. def ||(qq: ⇒ Gram): Gram

    Permalink

    This || operator means one of the operands ONLY.

    This || operator means one of the operands ONLY. I.e., statically they are supposed to be mutually exclusive, so only one (or none) of them should ever survive.

    Definition Classes
    Gram
  114. def ~(qq: ⇒ Gram): Gram

    Permalink

    Sequential composition operator in the grammar.

    Sequential composition operator in the grammar.

    Note: This should not evaluate the argument unless it has to.

    Definition Classes
    Gram

Inherited from Terminal

Inherited from NamedGram

Inherited from Gram

Inherited from GramRuntime1Mixin

Inherited from BasicComponent

Inherited from ImplementsThrowsOrSavesSDE

Inherited from SavesErrorsAndWarnings

Inherited from ImplementsThrowsSDE

Inherited from ResolvesQNames

Inherited from ThrowsSDE

Inherited from HasTunable

Inherited from OOLAGHostImpl

Inherited from OOLAGHost

Inherited from NamedMixinBase

Inherited from WithDiagnostics

Inherited from Logging

Inherited from Identity

Inherited from AnyRef

Inherited from Any

Ungrouped