Class

org.apache.daffodil.dsom

DPathCompileInfo

Related Doc: package dsom

Permalink

class DPathCompileInfo extends ImplementsThrowsSDE with PreSerialization with HasSchemaFileLocation

This class is to contain only things that are needed to do DPath Expression Compilation. Nothing else.

This exists because some things have to be compiled (e.g., DPath expressions) which then become part of the runtime data for elements or other.

It becomes circular if all the information is bundled together on the RuntimeData or ElementRuntimeData objects. So we split out everything needed to compile expressions will get computed separately (first), and kept on this object, and then subsequently ERD data structures are created which reference these.

In other words, it's just necessary layering of the different phases of computation.

Some of this dependency is artificial. If every individual attribute was computed separately, none bundled together in common data structures, AND everything was computed lazily, then this would probably all just sort itself out and not be circular. What makes the circularity is that the runtime data structures (ElementRuntimeData in particular), are not lazy. Everything part of them is forced to be evaluated when those are constructed. So anything that needs even one member of an ERD is artificially dependent on *everything* in the ERD.

Similarly these DPath compiler data structures.... anything that depends on them is artificially dependent on ALL of their members's values.

So the separation of DPath compiler info from runtime data structures is really as close as we get in Daffodil to organizing the compilation of schemas into "passes".

Linear Supertypes
HasSchemaFileLocation, LookupLocation, LocationInSchemaFile, ResolvesQNames, PreSerialization, Serializable, Serializable, ImplementsThrowsSDE, ThrowsSDE, AnyRef, Any
Known Subclasses
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. DPathCompileInfo
  2. HasSchemaFileLocation
  3. LookupLocation
  4. LocationInSchemaFile
  5. ResolvesQNames
  6. PreSerialization
  7. Serializable
  8. Serializable
  9. ImplementsThrowsSDE
  10. ThrowsSDE
  11. AnyRef
  12. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Instance Constructors

  1. new DPathCompileInfo(parentArg: ⇒ Option[DPathCompileInfo], variableMapArg: ⇒ VariableMap, namespaces: NamespaceBinding, path: String, schemaFileLocation: SchemaFileLocation, tunable: DaffodilTunables)

    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. def NoAnnotationContext: Option[SchemaFileLocation]

    Permalink
    Definition Classes
    ImplementsThrowsSDE
  5. def SDE(id: String, args: Any*): Nothing

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

    Permalink
    Definition Classes
    ThrowsSDE
  7. def ThrowSDE: PartialFunction[Throwable, Nothing]

    Permalink
    Definition Classes
    ThrowsSDE
  8. final def asInstanceOf[T0]: T0

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

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  10. def columnDescription: String

    Permalink
    Definition Classes
    HasSchemaFileLocation → LocationInSchemaFile
  11. final lazy val elementCompileInfo: Option[DPathElementCompileInfo]

    Permalink

    The contract here supports the semantics of "." in paths.

    The contract here supports the semantics of "." in paths.

    If this is an element we're done. If not we move outward until we reach an enclosing element.

  12. final def enclosingElementCompileInfo: Option[DPathElementCompileInfo]

    Permalink

    The contract here supports the semantics of ".." in paths.

    The contract here supports the semantics of ".." in paths.

    First we establish the invariant of being on an element. If the schema component is an element we're there. Otherwise we move outward until we are an element. If there isn't one we return None

    Then we move outward to the enclosing element - and if there isn't one we return None. (Which most likely will lead to an SDE.)

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

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

    Permalink
    Definition Classes
    AnyRef → Any
  15. def fileDescription: String

    Permalink
    Definition Classes
    HasSchemaFileLocation → LocationInSchemaFile
  16. def finalize(): Unit

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

    Permalink
    Definition Classes
    AnyRef → Any
  18. def hashCode(): Int

    Permalink
    Definition Classes
    AnyRef → Any
  19. final lazy val immediateEnclosingCompileInfo: Option[DPathCompileInfo]

    Permalink

    The immediate containing parent.

  20. final def isInstanceOf[T0]: Boolean

    Permalink
    Definition Classes
    Any
  21. def lineDescription: String

    Permalink
    Definition Classes
    HasSchemaFileLocation → LocationInSchemaFile
  22. def locationDescription: String

    Permalink
    Definition Classes
    HasSchemaFileLocation → LocationInSchemaFile
  23. val me: Class[_ <: PreSerialization]

    Permalink
    Definition Classes
    PreSerialization
  24. val namespaces: NamespaceBinding

    Permalink
    Definition Classes
    DPathCompileInfo → ResolvesQNames
  25. final def ne(arg0: AnyRef): Boolean

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

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

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

    Permalink
    Definition Classes
    AnyRef
  29. lazy val parent: Option[DPathCompileInfo]

    Permalink
  30. val path: String

    Permalink
  31. def preSerialization: Any

    Permalink
    Definition Classes
    DPathCompileInfo → PreSerialization
  32. def qNameForProperty(local: String, ns: NS): GlobalQName

    Permalink
    Definition Classes
    ResolvesQNames
  33. final def relativePath: String

    Permalink

    relative path - relative to enclosing element's path which by definition must be a prefix of this object's path.

  34. def removePrefix(prefixedValue: String): String

    Permalink
    Definition Classes
    ResolvesQNames
  35. def resolveQName(qnString: String): RefQName

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

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

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

    Permalink
    Definition Classes
    ThrowsSDE
  39. val schemaFileLocation: SchemaFileLocation

    Permalink
    Definition Classes
    DPathCompileInfo → HasSchemaFileLocation → ThrowsSDE
  40. final def serializeObject(out: ObjectOutputStream): Unit

    Permalink
    Attributes
    protected
    Definition Classes
    PreSerialization
  41. final def synchronized[T0](arg0: ⇒ T0): T0

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

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

    Permalink
    Definition Classes
    ThrowsSDE
  44. val tunable: DaffodilTunables

    Permalink
    Definition Classes
    DPathCompileInfo → ResolvesQNames
  45. lazy val variableMap: VariableMap

    Permalink
  46. final def wait(): Unit

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

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

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

Inherited from HasSchemaFileLocation

Inherited from LookupLocation

Inherited from LocationInSchemaFile

Inherited from ResolvesQNames

Inherited from PreSerialization

Inherited from Serializable

Inherited from Serializable

Inherited from ImplementsThrowsSDE

Inherited from ThrowsSDE

Inherited from AnyRef

Inherited from Any

Ungrouped