Class PrecompiledAbstractMapping

java.lang.Object
org.jibx.binding.def.PrecompiledAbstractMapping
All Implemented Interfaces:
ILinkable, IMapping

public class PrecompiledAbstractMapping extends Object implements IMapping
Abstract mapping defined by a precompiled binding. This is constructed from the binding factory information for a binding which is referenced using a precompiled='true' attribute.
Author:
Dennis M. Sosnoski
  • Field Details

    • m_translated

      private final boolean m_translated
      Namespace index translation required flag.
    • m_class

      private final ClassFile m_class
      Class linked to mapping.
    • m_typeName

      private final String m_typeName
      Qualified type name.
    • m_binding

      private final PrecompiledBinding m_binding
      Binding structure defining the mapping.
    • m_referenceType

      private final String m_referenceType
      Reference type of mapping, as fully qualified class name.
    • m_namespaces

      private final ArrayList m_namespaces
      Namespaces used by this mapping.
    • m_parent

      private final IContainer m_parent
      Containing context for definition.
    • m_mappingName

      private final String m_mappingName
      Name used for mapping in binding tables.
  • Constructor Details

    • PrecompiledAbstractMapping

      public PrecompiledAbstractMapping(String type, String tname, String mapname, int index, IBindingFactory factory, int[] nsxlate, IContainer parent) throws JiBXException
      Constructor.
      Parameters:
      type - bound class name
      tname - qualified type name for abstract mapping (null if none)
      mapname - abstract mapping name in binding
      index - abstract mapping index in binding
      factory - binding factory for mapping information
      nsxlate - namespace index translation table (null if none)
      parent - containing context
      Throws:
      JiBXException - if class definition not found
  • Method Details

    • linkMappings

      public void linkMappings() throws JiBXException
      Links extension mappings to their base mappings. For precompiled mappings this does nothing.
      Throws:
      JiBXException - if error in linking
    • getBoundType

      public String getBoundType()
      Description copied from interface: IMapping
      Get class name handled by mapping.
      Specified by:
      getBoundType in interface IMapping
      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.
      Specified by:
      getReferenceType in interface IMapping
      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.
      Specified by:
      getImplComponent in interface IMapping
      Returns:
      binding component implementing this mapping
    • getMarshaller

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

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

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

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

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

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

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

      public IComponent buildRef(IContainer parent, IContextObj objc, String type, PropertyDefinition prop) throws JiBXException
      Description copied from interface: IMapping
      Build reference to mapping. Constructs and returns the component for handling the mapping.
      Specified by:
      buildRef in interface IMapping
      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:
      JiBXException - if configuration error
    • getNamespaces

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

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

      public NameDefinition getWrapperName()
    • 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.
      Specified by:
      getBinding in interface IMapping
      Returns:
      binding structure, or null if none
    • getMappingName

      public String getMappingName()
      Description copied from interface: IMapping
      Get the mapping name used in binding tables.
      Specified by:
      getMappingName in interface IMapping
      Returns:
      name
    • getTypeName

      public String getTypeName()
      Description copied from interface: IMapping
      Get type name.
      Specified by:
      getTypeName in interface IMapping
      Returns:
      qualified type name, in text form (null if unnamed)
    • 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
      Throws:
      JiBXException - if error in configuration
    • print

      public void print(int depth)