Class PrecompiledConcreteMapping

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

public class PrecompiledConcreteMapping extends Object implements IMapping
Concrete 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_class

      private final ClassFile m_class
      Class linked to mapping.
    • m_mappingName

      private final String m_mappingName
      Name of this mapping in binding..
    • m_name

      private final NameDefinition m_name
      Mapped element name.
    • m_container

      private final IContainer m_container
      Containing context for definition.
    • m_factoryName

      private final String m_factoryName
      Binding factory name used for activating namespace translation on marshalling (null if translation not required).
    • m_marshaller

      private ClassFile m_marshaller
      Marshaller class.
    • m_unmarshaller

      private ClassFile m_unmarshaller
      Unmarshaller class.
  • Constructor Details

    • PrecompiledConcreteMapping

      public PrecompiledConcreteMapping(String mapname, String type, NameDefinition name, String marname, String umarname, IContainer parent, boolean xlated, String factname) throws JiBXException
      Constructor.
      Parameters:
      mapname - mapping name in binding
      type - bound class name
      name - element name definition
      marname - marshaller class name (null if none)
      umarname - unmarshaller class name (null if none)
      parent - containing context
      xlated - translated namespaces for binding flag
      factname - binding factory name
      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)