Package org.jibx.binding.def
Class PrecompiledAbstractMapping
- java.lang.Object
-
- org.jibx.binding.def.PrecompiledAbstractMapping
-
public class PrecompiledAbstractMapping extends java.lang.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 Summary
Fields Modifier and Type Field Description private PrecompiledBinding
m_binding
Binding structure defining the mapping.private ClassFile
m_class
Class linked to mapping.private java.lang.String
m_mappingName
Name used for mapping in binding tables.private java.util.ArrayList
m_namespaces
Namespaces used by this mapping.private IContainer
m_parent
Containing context for definition.private java.lang.String
m_referenceType
Reference type of mapping, as fully qualified class name.private boolean
m_translated
Namespace index translation required flag.private java.lang.String
m_typeName
Qualified type name.
-
Constructor Summary
Constructors Constructor Description PrecompiledAbstractMapping(java.lang.String type, java.lang.String tname, java.lang.String mapname, int index, IBindingFactory factory, int[] nsxlate, IContainer parent)
Constructor.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
addExtension(MappingDefinition mdef)
Add extension to abstract mapping.void
addNamespace(NamespaceDefinition ns)
Add namespace.IComponent
buildRef(IContainer parent, IContextObj objc, java.lang.String type, PropertyDefinition prop)
Build reference to mapping.void
generateCode(boolean force)
Generate required code for mapping.ITypeBinding
getBinding()
Get the actual binding for a mapping.java.lang.String
getBoundType()
Get class name handled by mapping.IComponent
getImplComponent()
Get binding component implementing mapping.java.lang.String
getMappingName()
Get the mapping name used in binding tables.ClassFile
getMarshaller()
Get marshaller class used for mapping.NameDefinition
getName()
Get mapped element name.java.util.ArrayList
getNamespaces()
Get namespaces defined for mapping.java.lang.String
getReferenceType()
Get class name of type to be assumed for references to this mapping.java.lang.String
getTypeName()
Get type name.ClassFile
getUnmarshaller()
Get unmarshaller class used for mapping.NameDefinition
getWrapperName()
boolean
isAbstract()
Check if mapping is abstract.boolean
isBase()
Check if mapping has extensions.void
linkMappings()
Links extension mappings to their base mappings.void
print(int depth)
void
setLinkages()
Establish and validate linkages between binding components.
-
-
-
Field Detail
-
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 java.lang.String m_typeName
Qualified type name.
-
m_binding
private final PrecompiledBinding m_binding
Binding structure defining the mapping.
-
m_referenceType
private final java.lang.String m_referenceType
Reference type of mapping, as fully qualified class name.
-
m_namespaces
private final java.util.ArrayList m_namespaces
Namespaces used by this mapping.
-
m_parent
private final IContainer m_parent
Containing context for definition.
-
m_mappingName
private final java.lang.String m_mappingName
Name used for mapping in binding tables.
-
-
Constructor Detail
-
PrecompiledAbstractMapping
public PrecompiledAbstractMapping(java.lang.String type, java.lang.String tname, java.lang.String mapname, int index, IBindingFactory factory, int[] nsxlate, IContainer parent) throws JiBXException
Constructor.- Parameters:
type
- bound class nametname
- qualified type name for abstract mapping (null
if none)mapname
- abstract mapping name in bindingindex
- abstract mapping index in bindingfactory
- binding factory for mapping informationnsxlate
- namespace index translation table (null
if none)parent
- containing context- Throws:
JiBXException
- if class definition not found
-
-
Method Detail
-
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 java.lang.String getBoundType()
Description copied from interface:IMapping
Get class name handled by mapping.- Specified by:
getBoundType
in interfaceIMapping
- Returns:
- name of class bound by mapping
-
getReferenceType
public java.lang.String getReferenceType()
Description copied from interface:IMapping
Get class name of type to be assumed for references to this mapping.- Specified by:
getReferenceType
in interfaceIMapping
- 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 interfaceIMapping
- 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 interfaceIMapping
- Returns:
- marshaller class information
-
getUnmarshaller
public ClassFile getUnmarshaller()
Description copied from interface:IMapping
Get unmarshaller class used for mapping.- Specified by:
getUnmarshaller
in interfaceIMapping
- Returns:
- unmarshaller class information
-
getName
public NameDefinition getName()
Description copied from interface:IMapping
Get mapped element name.
-
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 interfaceIMapping
- 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 interfaceIMapping
- Returns:
true
if an abstract mapping,false
if not
-
isBase
public boolean isBase()
Description copied from interface:IMapping
Check if mapping has extensions.
-
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 interfaceIMapping
- Parameters:
mdef
- extension mapping definition- Throws:
JiBXException
- if configuration error
-
buildRef
public IComponent buildRef(IContainer parent, IContextObj objc, java.lang.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 interfaceIMapping
- Parameters:
parent
- containing binding definition structureobjc
- current object contexttype
- mapped value typeprop
- property definition (may benull
)- Returns:
- constructed mapping reference component
- Throws:
JiBXException
- if configuration error
-
getNamespaces
public java.util.ArrayList getNamespaces()
Description copied from interface:IMapping
Get namespaces defined for mapping.- Specified by:
getNamespaces
in interfaceIMapping
- 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 interfaceIMapping
- 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 interfaceIMapping
- Returns:
- binding structure, or
null
if none
-
getMappingName
public java.lang.String getMappingName()
Description copied from interface:IMapping
Get the mapping name used in binding tables.- Specified by:
getMappingName
in interfaceIMapping
- Returns:
- name
-
getTypeName
public java.lang.String getTypeName()
Description copied from interface:IMapping
Get type name.- Specified by:
getTypeName
in interfaceIMapping
- 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 interfaceILinkable
- Throws:
JiBXException
- if error in configuration
-
print
public void print(int depth)
-
-