Trait

org.apache.daffodil.dsom

AnnotatedMixin

Related Doc: package dsom

Permalink

trait AnnotatedMixin extends EscapeSchemeRefMixin

Every component that can be annotated. Review Note: It's no longer clear that this separation is strictly speaking needed. It's possible that this could be collapsed back into AnnotatedSchemaComponent or made smaller anyway.

Self Type
AnnotatedSchemaComponent
Linear Supertypes
Known Subclasses
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. AnnotatedMixin
  2. EscapeSchemeRefMixin
  3. AnyRef
  4. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Abstract Value Members

  1. abstract def annotationFactory(node: Node): Option[DFDLAnnotation]

    Permalink

    Anything annotated must be able to construct the appropriate DFDLAnnotation object from the xml.

    Anything annotated must be able to construct the appropriate DFDLAnnotation object from the xml.

    Attributes
    protected
  2. abstract def emptyFormatFactory: DFDLFormatAnnotation

    Permalink

    Here we establish an invariant which is that every annotatable schema component has, definitely, has an annotation object.

    Here we establish an invariant which is that every annotatable schema component has, definitely, has an annotation object. It may have no properties on it, but it will be there. Hence, we can delegate various property-related attribute calculations to it.

    To realize this, every concrete class must implement (or inherit) an implementation of emptyFormatFactory, which constructs an empty format annotation, and isMyFormatAnnotation which tests if an annotation is the corresponding kind.

    Given that, formatAnnotation then either finds the right annotation, or constructs one, but our invariant is imposed. There *is* a formatAnnotation.

    Attributes
    protected
  3. abstract def isMyFormatAnnotation(a: DFDLAnnotation): Boolean

    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 lazy val annotationObjs: Seq[DFDLAnnotation]

    Permalink

    The DFDL annotations on the component, as objects that are subtypes of DFDLAnnotation.

  5. final def asInstanceOf[T0]: T0

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

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  7. lazy val dfdlAppInfos: NodeSeq

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

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

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

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  11. final lazy val formatAnnotation: DFDLFormatAnnotation

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

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

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

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

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

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

    Permalink
    Definition Classes
    AnyRef
  18. final lazy val optionEscapeScheme: Option[DFDLEscapeScheme]

    Permalink

    Changed to use findProperty, and to resolve the namespace properly.

    Changed to use findProperty, and to resolve the namespace properly.

    We lookup a property like escapeSchemeRef, and that actual property binding can be local, in scope, by way of a format reference, etc.

    It's value is a QName, and the definition of the prefix is from the location where we found the property, and NOT where we consume the property.

    Hence, we resolve w.r.t. the location that provided the property.

    The point of findProperty vs. getProperty is just that the former returns both the value, and the object that contained it. That object is what we resolve QNames with respect to.

    Note: Same is needed for properties that have expressions as their values. E.g., consider "{ ../foo:bar/.. }". That foo prefix must be resolved relative to the object where this property was written, not where it is evaluated. (JIRA issue DFDL-77)

    Definition Classes
    EscapeSchemeRefMixin
  19. final def synchronized[T0](arg0: ⇒ T0): T0

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

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

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

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

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

Inherited from EscapeSchemeRefMixin

Inherited from AnyRef

Inherited from Any

Ungrouped