Package org.jibx.runtime.impl
Class BindingFactoryBase
java.lang.Object
org.jibx.runtime.impl.BindingFactoryBase
- All Implemented Interfaces:
IBindingFactory
Base class for generated binding factories. This provides common
implementation code, so that the code does not need to be duplicated in every
generated binding factory.
- Author:
- Dennis M. Sosnoski
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate static final int[]private final String[][]private final int[][]private final Stringprivate final String[]private final String[]private String[]private final String[]private final Stringprivate final Mapprivate final StringIntHashMapprivate final String[]private final String[]private final intprivate final String[]private final intprivate final String[]private final Class[]private final String[]private final intprivate final String[]private final Class[]private final String[]private Mapprivate final String[]private booleanFields inherited from interface org.jibx.runtime.IBindingFactory
ABMAP_ATTRMARMETH_INDEX, ABMAP_ATTRPRESMETH_INDEX, ABMAP_ATTRUMARMETH_INDEX, ABMAP_CLASSNAME_INDEX, ABMAP_COMPLETEMETH_INDEX, ABMAP_CONTMARMETH_INDEX, ABMAP_CONTPRESMETH_INDEX, ABMAP_CONTUMARMETH_INDEX, ABMAP_COUNT, ABMAP_CREATEMETH_INDEX, ABMAP_MAPPINGNAME_INDEX, ABMAP_PREPAREMETH_INDEX, COMPATIBLE_VERSION_MASK, CURRENT_VERSION_NAME, CURRENT_VERSION_NUMBER -
Constructor Summary
ConstructorsModifierConstructorDescriptionprotectedBindingFactoryBase(String name, int majorver, int minorver, String boundnames, String mappednames, String umarnames, String marnames, String[] uris, String[] prefixes, String gmapnames, String gmapuris, String[] idclasses, String abmapdetails, String abmapnss, String prenames, String prefacts, String prehashes, String[] prensmaps) Constructor used in generated binding factories. -
Method Summary
Modifier and TypeMethodDescriptionCreate a new marshalling context.Create a new unmarshalling context.int[]getAbstractMappingNamespaces(int index) Get the indexes of the namespaces used by an abstract mapping.String[][]Get the linkage information for global abstract mappings included in the binding.String[]Get the names of the binding factory classes for the separately-compiled base bindings used by this binding.String[]Get the names of the separately-compiled base bindings used by this binding.String[]Get the classes used by the binding.Get the binding name.Get map from fully-qualified class name to the index number of the class used for accessing the arrays of class names.String[]Get global-mapped element names.String[]Get global-mapped element namespace URIs.intgetHash()Get hash for binding.intGet major version number.String[]Get mapped class names (or type names, in the case of abstract mappings).getMarshallerClass(int index) Get the marshaller class for a mapping.String[]Get marshaller class names.intGet minor version number.String[]Get the namespace URIs used by the binding.Get a map from full-qualified binding factory names to an array ofintvalues used to convert namespace indexes in that binding to this binding.String[]Get the namespace prefixes used by the binding.getUnmarshallerClass(int index) Get the unmarshaller class for a mapping.String[]Get unmarshaller class names.Get the mapping from element local name to class indexes.Load a class.voidVerify that separately-compiled base bindings used by this binding can be loaded and are compatible with the base bindings used when this binding was compiled.Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface org.jibx.runtime.IBindingFactory
getCompilerDistribution, getCompilerVersion, getTypeIndex
-
Field Details
-
EMPTY_INT_ARRAY
private static final int[] EMPTY_INT_ARRAY -
m_bindingName
-
m_majorVersion
private final int m_majorVersion -
m_minorVersion
private final int m_minorVersion -
m_bindingClasses
-
m_mapNames
-
m_classIndexMap
-
m_unmarshallers
-
m_marshallers
-
m_uris
-
m_prefixes
-
m_globalNames
-
m_globalUris
-
m_idClassNames
-
m_abstractMappingDetails
-
m_abstractMappingNamespaces
private final int[][] m_abstractMappingNamespaces -
m_baseNames
-
m_baseHashes
-
m_bindingFactories
-
m_marshallerClasses
-
m_unmarshallerClasses
-
m_bindingNamespaceTables
-
m_hash
private final int m_hash -
m_verified
private boolean m_verified -
m_bindingClassesClosure
-
m_unmarshalMap
-
-
Constructor Details
-
BindingFactoryBase
protected BindingFactoryBase(String name, int majorver, int minorver, String boundnames, String mappednames, String umarnames, String marnames, String[] uris, String[] prefixes, String gmapnames, String gmapuris, String[] idclasses, String abmapdetails, String abmapnss, String prenames, String prefacts, String prehashes, String[] prensmaps) Constructor used in generated binding factories.- Parameters:
name- binding namemajorver- binding major version numberminorver- binding minor version numberboundnames- blob of class names with code for this bindingmappednames- blob of class or type names for mappingsumarnames- unmarshaller class names blob (nullif output-only binding)marnames- marshaller class names blob (nullif input-only binding)uris- namespace URIs used by bindingprefixes- namespace prefixes used by binding (nullif input-only binding)gmapnames- globally-mapped element names blobgmapuris- globally-mapped element namespaces blobidclasses- names of classes with IDsabmapdetails- abstract mapping details blobabmapnss- abstract mapping namespace indexes blobprenames- precompiled base binding names blobprefacts- base binding factory classes blobprehashes- base binding hashes blobprensmaps- namespace index mapping tables blobs for precompiled bindings
-
-
Method Details
-
loadClass
Load a class. This first tries to load the specified class using the classloader that loaded the binding factory instance, then tries the thread context classloader, then finally tries the classloader used to load this class.- Specified by:
loadClassin interfaceIBindingFactory- Parameters:
name- fully qualified class name- Returns:
- loaded class, or
nullif class not found
-
createMarshallingContext
Create a new marshalling context.- Specified by:
createMarshallingContextin interfaceIBindingFactory- Returns:
- context
- Throws:
JiBXException
-
createUnmarshallingContext
Create a new unmarshalling context.- Specified by:
createUnmarshallingContextin interfaceIBindingFactory- Returns:
- context
- Throws:
JiBXException
-
getBindingName
Get the binding name.- Specified by:
getBindingNamein interfaceIBindingFactory- Returns:
- name
-
getHash
public int getHash()Get hash for binding. The computed hash value is based on all the values returned by all the methods of this interface, with the exception of thegetMarshallerClass(int)andgetUnmarshallerClass(int)methods returningClassobjects.- Specified by:
getHashin interfaceIBindingFactory- Returns:
- hash
-
getMajorVersion
public int getMajorVersion()Get major version number.- Specified by:
getMajorVersionin interfaceIBindingFactory- Returns:
- major version
-
getMinorVersion
public int getMinorVersion()Get minor version number.- Specified by:
getMinorVersionin interfaceIBindingFactory- Returns:
- minor version
-
getBindingClasses
Get the classes used by the binding. Every class which includes code generated by the binding compiler for this binding or any precompiled base binding is included in the returned array. IfverifyBaseBindings()has not already been invoked it will be invoked by this call.- Specified by:
getBindingClassesin interfaceIBindingFactory- Returns:
- fully-qualified class names
- Throws:
JiBXException- on base binding verification error
-
getElementNames
Get global-mapped element names.- Specified by:
getElementNamesin interfaceIBindingFactory- Returns:
- names
-
getMarshallerClasses
Get marshaller class names.- Specified by:
getMarshallerClassesin interfaceIBindingFactory- Returns:
- array of class names
-
getUnmarshallerClasses
Get unmarshaller class names.- Specified by:
getUnmarshallerClassesin interfaceIBindingFactory- Returns:
- array of class names
-
getElementNamespaces
Get global-mapped element namespace URIs.- Specified by:
getElementNamespacesin interfaceIBindingFactory- Returns:
- uris
-
getMappedClasses
Get mapped class names (or type names, in the case of abstract mappings). Returns array of fully-qualified class and/or type names, ordered by index number of the class.- Specified by:
getMappedClassesin interfaceIBindingFactory- Returns:
- array of class names
-
getClassIndexMap
Get map from fully-qualified class name to the index number of the class used for accessing the arrays of class names. The value returned is the index for the class in the arrays returned bygetMappedClasses(),getMarshallerClasses(), andgetUnmarshallerClasses(), and can also be used as input forgetMarshallerClass(int)andgetUnmarshallerClass(int).- Specified by:
getClassIndexMapin interfaceIBindingFactory- Returns:
- map from fully-qualified class name to index number
-
getAbstractMappings
Get the linkage information for global abstract mappings included in the binding. SeeIBindingFactory.getAbstractMappings()for details.- Specified by:
getAbstractMappingsin interfaceIBindingFactory- Returns:
- method information array
-
getAbstractMappingNamespaces
public int[] getAbstractMappingNamespaces(int index) Get the indexes of the namespaces used by an abstract mapping.- Specified by:
getAbstractMappingNamespacesin interfaceIBindingFactory- Parameters:
index- abstract mapping index, corresponding to the abstract mapping information returned bygetAbstractMappings().- Returns:
- namespace indexes, empty array if none
-
getNamespaces
Get the namespace URIs used by the binding.- Specified by:
getNamespacesin interfaceIBindingFactory- Returns:
- uris
-
getBaseBindings
Get the names of the separately-compiled base bindings used by this binding.- Specified by:
getBaseBindingsin interfaceIBindingFactory- Returns:
- binding names
-
verifyBaseBindings
Verify that separately-compiled base bindings used by this binding can be loaded and are compatible with the base bindings used when this binding was compiled.- Specified by:
verifyBaseBindingsin interfaceIBindingFactory- Throws:
JiBXException- on verification failure
-
getBaseBindingFactories
Get the names of the binding factory classes for the separately-compiled base bindings used by this binding.- Specified by:
getBaseBindingFactoriesin interfaceIBindingFactory- Returns:
- binding factory fully-qualified class names
-
getNamespaceTranslationTableMap
Get a map from full-qualified binding factory names to an array ofintvalues used to convert namespace indexes in that binding to this binding. If the binding uses the same namespaces as this binding (or a subset of the same namespaces, with the same index values) there is no entry in the map.- Specified by:
getNamespaceTranslationTableMapin interfaceIBindingFactory- Returns:
- map to namespace index translation
-
getPrefixes
Get the namespace prefixes used by the binding.- Specified by:
getPrefixesin interfaceIBindingFactory- Returns:
- prefixes
-
getUnmarshalMap
Get the mapping from element local name to class indexes. If a local name is only used with a single namespace, the value for that name is anIntegergiving the index of the class mapped to the name; if the local name is used with multiple namespaces, the value for that name is an array with multipleintclass indexes, for every class mapped to the name.- Specified by:
getUnmarshalMapin interfaceIBindingFactory- Returns:
- map from local name to class index array
-
getMarshallerClass
Get the marshaller class for a mapping. This can only be used for global mappings.- Specified by:
getMarshallerClassin interfaceIBindingFactory- Parameters:
index- marshaller class index- Returns:
- marshaller class, or
nullif unable to load class
-
getUnmarshallerClass
Get the unmarshaller class for a mapping. This can only be used for global mappings.- Specified by:
getUnmarshallerClassin interfaceIBindingFactory- Parameters:
index- unmarshaller class index- Returns:
- unmarshaller class, or
nullif unable to load class
-