Class MappingDefinition

  • All Implemented Interfaces:
    IComponent, ILinkable, IMapping

    public class MappingDefinition
    extends MappingBase
    Normal mapping with defined binding. This is used for a mapping definition which includes detailed binding information (rather than marshaller and unmarshaller classes which handle the binding directly).
    Author:
    Dennis M. Sosnoski
    • Constructor Detail

      • MappingDefinition

        public MappingDefinition​(IContainer contain,
                                 DefinitionContext defc,
                                 String type,
                                 NameDefinition name,
                                 String tname,
                                 boolean abs,
                                 String base,
                                 ObjectBinding bind,
                                 boolean nillable)
                          throws org.jibx.runtime.JiBXException
        Constructor.
        Parameters:
        contain - containing binding definition structure
        defc - definition context for this mapping
        type - bound class name
        name - mapped element name information (null if none)
        tname - qualified type name for abstract mapping (null if none)
        abs - abstract mapping flag
        base - abstract mapping extended by this one
        bind - binding definition component (may be null if a concrete mapping)
        nillable - flag for nillable element
        Throws:
        org.jibx.runtime.JiBXException - if class definition not found
    • Method Detail

      • getBoundClass

        public BoundClass getBoundClass()
        Get the mapped class information. This implements the method used by the base class.
        Specified by:
        getBoundClass in class MappingBase
        Returns:
        information for mapped class
      • linkMappings

        public void linkMappings()
                          throws org.jibx.runtime.JiBXException
        Links extension mappings to their base mappings. This must be done before the more general linking step in order to determine which abstract mappings are standalone and which are extended by other mappings
        Throws:
        org.jibx.runtime.JiBXException - if error in linking
      • getBoundType

        public String getBoundType()
        Description copied from interface: IMapping
        Get class name handled by mapping.
        Returns:
        name of class bound by mapping
      • getReferenceType

        public String getReferenceType()
        Description copied from interface: IMapping
        Get class name of type to be assumed for references to this mapping.
        Returns:
        reference type class name name
      • getImplComponent

        public IComponent getImplComponent()
        Description copied from interface: IMapping
        Get binding component implementing mapping. This call is only valid for mappings with child components, not for mappings defined using marshallers or unmarshallers.
        Returns:
        binding component implementing this mapping
      • getMarshaller

        public ClassFile getMarshaller()
        Description copied from interface: IMapping
        Get marshaller class used for mapping.
        Returns:
        marshaller class information
      • getUnmarshaller

        public ClassFile getUnmarshaller()
        Description copied from interface: IMapping
        Get unmarshaller class used for mapping.
        Returns:
        unmarshaller class information
      • getName

        public NameDefinition getName()
        Description copied from interface: IMapping
        Get mapped element name.
        Returns:
        mapped element name information (may be null if no element name defined for mapping)
      • addNamespace

        public void addNamespace​(NamespaceDefinition ns)
                          throws org.jibx.runtime.JiBXException
        Description copied from interface: IMapping
        Add namespace. This adds a namespace definition to those active for the mapping.
        Parameters:
        ns - namespace definition to be added
        Throws:
        org.jibx.runtime.JiBXException - if error in defining namespace
      • isAbstract

        public boolean isAbstract()
        Description copied from interface: IMapping
        Check if mapping is abstract.
        Returns:
        true if an abstract mapping, false if not
      • isBase

        public boolean isBase()
        Description copied from interface: IMapping
        Check if mapping has extensions.
        Returns:
        true if one or more mappings extend this mapping, false if not
      • addExtension

        public void addExtension​(MappingDefinition mdef)
                          throws org.jibx.runtime.JiBXException
        Description copied from interface: IMapping
        Add extension to abstract mapping. This call is only valid for abstract mappings.
        Parameters:
        mdef - extension mapping definition
        Throws:
        org.jibx.runtime.JiBXException - if configuration error
      • buildRef

        public IComponent buildRef​(IContainer parent,
                                   IContextObj objc,
                                   String type,
                                   PropertyDefinition prop)
                            throws org.jibx.runtime.JiBXException
        Description copied from interface: IMapping
        Build reference to mapping. Constructs and returns the component for handling the mapping.
        Parameters:
        parent - containing binding definition structure
        objc - current object context
        type - mapped value type
        prop - property definition (may be null)
        Returns:
        constructed mapping reference component
        Throws:
        org.jibx.runtime.JiBXException - if configuration error
      • getNamespaces

        public ArrayList getNamespaces()
        Description copied from interface: IMapping
        Get namespaces defined for mapping.
        Returns:
        namespace definitions (may be null if none)
      • generateCode

        public void generateCode​(boolean force)
                          throws org.jibx.runtime.JiBXException
        Description copied from interface: IMapping
        Generate required code for mapping.
        Parameters:
        force - add marshaller/unmarshaller classes for abstract non-base mappings flag (not passed on to children)
        Throws:
        org.jibx.runtime.JiBXException - if error in transformation
      • getWrapperName

        public NameDefinition getWrapperName()
        Description copied from interface: IComponent
        Get element wrapper name. If the component defines an element as the container for content, this returns the name information for that element.
        Specified by:
        getWrapperName in interface IComponent
        Overrides:
        getWrapperName in class PassThroughComponent
        Returns:
        component element name, null if no wrapper element
      • setLinkages

        public void setLinkages()
                         throws org.jibx.runtime.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 LinkableBase
        Throws:
        org.jibx.runtime.JiBXException - if error in configuration
      • getBinding

        public ITypeBinding getBinding()
        Description copied from interface: IMapping
        Get the actual binding for a mapping. This is only usable with mappings defined by a binding; if the mapping is instead defined by specifying marshaller and unmarshaller classes this will just return null.
        Returns:
        binding structure, or null if none