Class MappingReference

  • All Implemented Interfaces:
    IComponent, ILinkable

    public class MappingReference
    extends PassThroughComponent
    Reference to a mapping definition. This is used as a placeholder when building the component structure of a binding definition. It's necessary because the referenced mapping may not have been parsed yet. During the linkage phase that follows parsing this looks up the appropriate mapping definition and sets up the corresponding component structure. Thereafter it operates as a simple pass-through wrapper for the top child component.
    Author:
    Dennis M. Sosnoski
    • Field Detail

      • m_container

        private final IContainer m_container
        Containing binding definition structure.
      • m_isNillable

        private final boolean m_isNillable
        Flag for nillable element.
      • m_type

        private java.lang.String m_type
        Fully qualified name of mapped type.
      • m_referenceText

        private java.lang.String m_referenceText
        Ordinary name of type for abstract mapping.
      • m_referenceQName

        private java.lang.String m_referenceQName
        Qualified name of type for abstract mapping.
      • m_contextObject

        private final IContextObj m_contextObject
        Context object.
      • m_name

        private final NameDefinition m_name
        Name from reference (only allowed with abstract mappings)
      • m_isSynthetic

        private final boolean m_isSynthetic
        Synthetic reference added to empty collection flag
      • m_mapping

        private IMapping m_mapping
        Referenced mapping.
      • m_wrappedReference

        private IComponent m_wrappedReference
        Generated wrapped component, used when checking for both attributes and elements present.
    • Constructor Detail

      • MappingReference

        public MappingReference​(IContainer contain,
                                PropertyDefinition prop,
                                java.lang.String type,
                                java.lang.String reftext,
                                java.lang.String refqname,
                                IContextObj objc,
                                NameDefinition name,
                                boolean synth,
                                boolean nillable)
        Constructor from property and type.
        Parameters:
        contain - containing binding definition structure
        prop - property definition
        type - fully qualified name of mapped type
        reftext - ordinary text name for abstract mapping reference (null if not specified)
        refqname - qualified type name for abstract mapping reference (null if not specified)
        objc - current object context
        name - reference name definition (only allowed with abstract mappings)
        synth - sythentic reference added to empty collection flag
        nillable - flag for nillable element
    • Method Detail

      • getMapping

        public IMapping getMapping()
      • getType

        public java.lang.String getType()
        Description copied from interface: IComponent
        Get type expected by component.
        Specified by:
        getType in interface IComponent
        Overrides:
        getType in class PassThroughComponent
        Returns:
        fully qualified class name of expected type
      • setLinkages

        public void setLinkages()
                         throws JiBXException
        Description copied from interface: ILinkable
        Establish and validate linkages between binding components. This is called after the basic binding structures have been set up. All linkages between components must be resolved by this method, in order to prevent problems due to the order of definitions between components. This implies that each component must in turn call the same method for each child component. None of the other method calls defined by this interface are valid until after this call.
        Specified by:
        setLinkages in interface ILinkable
        Overrides:
        setLinkages in class PassThroughComponent
        Throws:
        JiBXException - if error in configuration