Class

org.apache.daffodil.processors

VariableMap

Related Doc: package processors

Permalink

class VariableMap extends Serializable

Pure functional data structure for implementing DFDL's variables.

Key concepts: DFDL variables are single-assignment. Once they have been set, they may not be set again. Furthermore, they have default values, and if the default value has been read, then they may not subsequently be set.

These constraints insure that the variables do NOT become a sneaky way to get generalized accumulators and hence turing-complete semantics (and complexity) into designing and debugging DFDL schemas. They also allow for parallel implementations since order of evaluation does not matter.

The DPath implementation must be made to implement the no-set-after-default-value-has-been-read behavior. This requires that reading the variables causes a state transition.

Linear Supertypes
Serializable, Serializable, AnyRef, Any
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. VariableMap
  2. Serializable
  3. Serializable
  4. AnyRef
  5. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Instance Constructors

  1. new VariableMap(topLevelVRDs: Seq[VariableRuntimeData] = Nil)

    Permalink

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 asInstanceOf[T0]: T0

    Permalink
    Definition Classes
    Any
  5. def clone(): AnyRef

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  6. lazy val context: Nothing

    Permalink
  7. final def eq(arg0: AnyRef): Boolean

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

    Permalink
    Definition Classes
    AnyRef → Any
  9. def finalize(): Unit

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  10. def find(qName: GlobalQName): Option[Variable]

    Permalink
  11. final def getClass(): Class[_]

    Permalink
    Definition Classes
    AnyRef → Any
  12. def getVariableBindings(qn: GlobalQName): List[List[Variable]]

    Permalink

    For testing mostly.

  13. def getVariableRuntimeData(qName: GlobalQName): Option[VariableRuntimeData]

    Permalink
  14. def hashCode(): Int

    Permalink
    Definition Classes
    AnyRef → Any
  15. final def isInstanceOf[T0]: Boolean

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

    Permalink
    Definition Classes
    AnyRef
  17. final def notify(): Unit

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

    Permalink
    Definition Classes
    AnyRef
  19. def readVariable(vrd: VariableRuntimeData, referringContext: ThrowsSDE): (AnyRef, VariableMap)

    Permalink

    Returns the value of a variable, constructing also a modified variable map which shows that the variable has been read (state VariableRead), when the variable hadn't previously been read yet.

  20. def setExtVariable(varQName: GlobalQName, newValue: Any, referringContext: ThrowsSDE): VariableMap

    Permalink

    Assigns a variable, returning a new VariableMap which shows the state of the variable.

  21. def setVariable(vrd: VariableRuntimeData, newValue: Any, referringContext: ThrowsSDE, pstate: ParseOrUnparseState): VariableMap

    Permalink

    Assigns a variable, returning a new VariableMap which shows the state of the variable.

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

    Permalink
    Definition Classes
    AnyRef
  23. def toString(): String

    Permalink
    Definition Classes
    VariableMap → AnyRef → Any
  24. final def wait(): Unit

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

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

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )

Inherited from Serializable

Inherited from Serializable

Inherited from AnyRef

Inherited from Any

Ungrouped