Class

org.apache.daffodil.processors.parsers

RepeatingChildParser

Related Doc: package parsers

Permalink

abstract class RepeatingChildParser extends SequenceChildParser with MinMaxRepeatsMixin

Base for SequenceChildParsers that are repeating.

This mixes in the interface. Implementations of this enable the driver loop in OrderedSequenceParserBase to iterate over the occurrences with a common interation pattern.

Linear Supertypes
MinMaxRepeatsMixin, SequenceChildParser, CombinatorParser, CombinatorProcessor, Parser, Processor, Serializable, Serializable, Logging, Identity, ToBriefXMLImpl, AnyRef, Any
Known Subclasses
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. RepeatingChildParser
  2. MinMaxRepeatsMixin
  3. SequenceChildParser
  4. CombinatorParser
  5. CombinatorProcessor
  6. Parser
  7. Processor
  8. Serializable
  9. Serializable
  10. Logging
  11. Identity
  12. ToBriefXMLImpl
  13. AnyRef
  14. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Instance Constructors

  1. new RepeatingChildParser(childParser: Parser, srd: SequenceRuntimeData, erd: ElementRuntimeData, baseName: String)

    Permalink

Abstract Value Members

  1. abstract def childProcessors: Vector[Processor]

    Permalink
    Definition Classes
    ProcessorToBriefXMLImpl
  2. abstract def hasPoU: Boolean

    Permalink

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. def PE(pstate: PState, s: String, args: Any*): Unit

    Permalink
    Definition Classes
    Parser
  5. def PENotEnoughBits(pstate: PState, neededBits: Long, remainingBits: MaybeULong): Unit

    Permalink
    Definition Classes
    Parser
  6. final def areLogging(lvl: Type): Boolean

    Permalink
    Definition Classes
    Logging
  7. def arrayIndexStatus(minRepeats: Long, maxRepeats: Long, pstate: PState, resultOfPriorTry: ParseAttemptStatus): ArrayIndexStatus

    Permalink

    Tells us whether to attempt another array element at the current index, and how we should interpret the existence of an element or empty/zero-length based on the array index.

    Tells us whether to attempt another array element at the current index, and how we should interpret the existence of an element or empty/zero-length based on the array index.

    NOTE: must be stateless. State must be passed in, and returned for assignment to a loop var, or held in pstate.

  8. final def asInstanceOf[T0]: T0

    Permalink
    Definition Classes
    Any
  9. def briefXMLAttributes: String

    Permalink
    Attributes
    protected
    Definition Classes
    ToBriefXMLImpl
  10. val childParser: Parser

    Permalink
    Definition Classes
    SequenceChildParser
  11. def clone(): AnyRef

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  12. val context: RuntimeData

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

    Permalink
    Attributes
    protected
    Definition Classes
    Logging
  14. def endArray(state: PState): Unit

    Permalink

    Do things that must be done at the end of an array.

    Do things that must be done at the end of an array.

    This applies to both variable-occurrence and fixed-occurrence array elements, as well as optional elements.

    This applies for optional elements as well because expressions can access them by way of index: e.g., fn:exists( optElement[dfdl:currentIndex()] )

  15. final def eq(arg0: AnyRef): Boolean

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

    Permalink
    Definition Classes
    AnyRef → Any
  17. val erd: ElementRuntimeData

    Permalink
  18. def finalize(): Unit

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  19. final def getClass(): Class[_]

    Permalink
    Definition Classes
    AnyRef → Any
  20. def getLogWriter(): LogWriter

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

    Permalink
    Definition Classes
    Logging
  22. def hashCode(): Int

    Permalink
    Definition Classes
    AnyRef → Any
  23. def isBoundedMax(maxRepeats: Long): Boolean

    Permalink
    Definition Classes
    MinMaxRepeatsMixin
  24. def isEmpty: Boolean

    Permalink
    Definition Classes
    ParserProcessor
  25. var isInitialized: Boolean

    Permalink
    Definition Classes
    Processor
  26. final def isInstanceOf[T0]: Boolean

    Permalink
    Definition Classes
    Any
  27. final def isPrimitive: Boolean

    Permalink

    False because combinators don't touch the data stream themselves.

    False because combinators don't touch the data stream themselves. The processors they call do that work.

    Definition Classes
    CombinatorProcessorProcessor
  28. final macro def log(lvl: Type, msg: String, args: Any*): Unit

    Permalink
    Definition Classes
    Logging
  29. lazy val logID: String

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

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

    Permalink
    Definition Classes
    Logging
  32. def maxRepeats(state: ParseOrUnparseState): Long

    Permalink

    The digestion of maxOccurs with the occursCountKind results in maxRepeats.

    The digestion of maxOccurs with the occursCountKind results in maxRepeats. For example, when occursCountKind is parsed, then maxRepeats is -1 (meaning unbounded) regardless of the value of maxOccurs.

    Definition Classes
    MinMaxRepeatsMixin
  33. def minRepeats(state: ParseOrUnparseState): Long

    Permalink

    The digestion of minOccurs with the occursCountKind results in minRepeats.

    The digestion of minOccurs with the occursCountKind results in minRepeats. For example, when occursCountKind is parsed, then minRepeats is 0, regardless of the value of minOccurs.

    Definition Classes
    MinMaxRepeatsMixin
  34. final def ne(arg0: AnyRef): Boolean

    Permalink
    Definition Classes
    AnyRef
  35. def nom: String

    Permalink
    Definition Classes
    ToBriefXMLImpl
  36. final def notify(): Unit

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

    Permalink
    Definition Classes
    AnyRef
  38. def parse(pstate: PState): Unit

    Permalink

    Invokes the child parser.

    Invokes the child parser. Once, only. Does NOT do iterations of it.

    Attributes
    protected
    Definition Classes
    RepeatingChildParserParser
  39. final def parse1(pstate: PState): Unit

    Permalink
    Definition Classes
    Parser
  40. def parserName: String

    Permalink
    Attributes
    protected
    Definition Classes
    Parser
  41. def processingError(state: PState, str: String, args: Any*): Unit

    Permalink
    Definition Classes
    Parser
  42. def runtimeDependencies: Vector[Evaluatable[AnyRef]]

    Permalink
    Definition Classes
    SequenceChildParserProcessor
  43. def setLogWriter(lw: LogWriter): Unit

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

    Permalink
    Definition Classes
    Logging
  45. val srd: SequenceRuntimeData

    Permalink
    Definition Classes
    SequenceChildParser
  46. def startArray(state: PState): Unit

    Permalink

    Do things that are done at the start of an array-element.

    Do things that are done at the start of an array-element.

    This applies to both variable-occurrence and fixed-occurrence array elements, as well as optional elements.

    This applies for optional elements as well because expressions can access them by way of index: e.g., fn:exists( optElement[dfdl:currentIndex()] )

    This makes more sense if you consider that an "optional" element (minOccurs 0, maxOccurs 1) when occursCountKind is 'parsed' is treated as an array with an unbounded number of possible occurrences. Similarly, if occursCountKind is 'expression', then minOccurs/maxOccurs are ignored (used only for validation), and there can be more than 1 occurrence.

  47. final def synchronized[T0](arg0: ⇒ T0): T0

    Permalink
    Definition Classes
    AnyRef
  48. def toBriefXML(depthLimit: Int = 1): String

    Permalink
    Definition Classes
    RepeatingChildParserToBriefXMLImpl
  49. def toString(): String

    Permalink
    Definition Classes
    RepeatingChildParserToBriefXMLImpl → AnyRef → Any
  50. val trd: TermRuntimeData

    Permalink
    Definition Classes
    SequenceChildParser
  51. final def wait(): Unit

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

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

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  54. macro def withLoggingLevel[S](newLevel: Type)(body: ⇒ S): Unit

    Permalink
    Definition Classes
    Logging

Inherited from MinMaxRepeatsMixin

Inherited from SequenceChildParser

Inherited from CombinatorParser

Inherited from CombinatorProcessor

Inherited from Parser

Inherited from Processor

Inherited from Serializable

Inherited from Serializable

Inherited from Logging

Inherited from Identity

Inherited from ToBriefXMLImpl

Inherited from AnyRef

Inherited from Any

Ungrouped