public class BindingDefinition extends BindingBuilder.ContainerBase implements IContainer
Modifier and Type | Field and Description |
---|---|
static int |
BASE_USER_NAMESPACE
First namespace index available for user definitions.
|
private static java.lang.String |
CLASSLIST_METHOD_NAME |
private static java.lang.String |
CLASSLIST_METHOD_SIGNATURE |
static java.lang.String |
CURRENT_VERSION_NAME
Current distribution file name.
|
(package private) static java.lang.String |
DEFAULT_AUTOPREFIX
Default prefix for automatic ID generation.
|
private static java.lang.String |
FACTORY_BASE |
private static java.lang.String |
FACTORY_INSTNAME |
private static java.lang.String |
FACTORY_INTERFACE |
private static java.lang.String[] |
FACTORY_INTERFACES |
private static java.lang.String |
FACTORY_SUFFIX |
private static java.lang.String |
GETDISTRIB_METHODNAME |
private static java.lang.String |
GETINST_METHODNAME |
private static java.lang.String |
GETTYPEINDEX_METHODNAME |
private static java.lang.String |
GETVERSION_METHODNAME |
private DefinitionContext |
m_activeContext
Inner definition context constructed for binding.
|
private GrowableStringArray |
m_baseBindingFactories
Factory class names for precompiled base bindings (same order as binding
names).
|
private GrowableStringArray |
m_baseBindings
Precompiled base binding names used by this binding.
|
private java.util.ArrayList |
m_baseHashes
Hashes for base binding factories (same order as binding names).
|
private java.util.ArrayList |
m_baseNamespaceTables
Namespace index mapping tables for base bindings (same order as binding
names).
|
private GrowableStringArray |
m_closureFactories
Factory classes for base bindings of base bindings.
|
private java.util.ArrayList |
m_closureNamespaceTables
Namespace index mapping tables for base bindings of base bindings (same
order as factories).
|
private ArrayMap |
m_extraClasses
Classes handled by in-line marshaller/unmarshaller references.
|
private GrowableStringArray |
m_extraMarshallers
Marshaller classes used in-line.
|
private GrowableStringArray |
m_extraUnmarshallers
Unmarshaller classes used in-line.
|
private ClassFile |
m_factoryClass
Generated binding factory class.
|
private java.lang.String |
m_factoryName
Fully-qualified name of binding factory.
|
private int |
m_highBasePrefix
High mark in prefixes from from precompiled base bindings.
|
private int |
m_index
Index number of this binding.
|
private boolean |
m_isAddConstructors
Add default constructors where needed flag.
|
private boolean |
m_isForceClasses
Generate marshaller/unmarshaller classes for top-level non-base abstract
mappings flag.
|
private boolean |
m_isForwards
Support forward references to IDs flag.
|
private boolean |
m_isIdGlobal
Use global ID values flag.
|
private boolean |
m_isInput
Input binding flag.
|
private boolean |
m_isMappedDone
Flag for done assigning indexes to mapped classes.
|
private boolean |
m_isOutput
Output binding flag.
|
private boolean |
m_isSchemaInstanceUsed
Flag for schema instance namespace used in binding.
|
private boolean |
m_isTrackSource
Generate souce tracking interface flag.
|
private int |
m_majorVersion
Major version of binding.
|
private int |
m_minorVersion
Minor version of binding.
|
private int |
m_mumIndex
Next index number for marshaller/unmarshaller slots used in-line.
|
private java.lang.String |
m_name
Binding name.
|
private GrowableStringArray |
m_namespacePrefixes
Original prefixes for namespaces.
|
private ArrayMap |
m_namespaceUris
Namespaces URIs included in binding.
|
private DefinitionContext |
m_outerContext
Outer definition context with default definitions.
|
private java.lang.String |
m_targetPackage
Package for generated context factory.
|
private java.io.File |
m_targetRoot
File root for generated context factory.
|
private ArrayMap |
m_uniqueIds
Classes using unique (per class) identifiers.
|
private static int |
MAX_STRING_LENGTH |
(package private) static QName |
OBJECT_DEFAULT_NAME
Name of object default conversion.
|
private static int |
PRIVATESTATIC_ACCESS |
private static int |
PRIVATESTATICFINAL_ACCESS |
private static StringConversion |
s_base64Conversion |
private static java.util.ArrayList |
s_bindings
Table of defined bindings.
|
private static byte[] |
s_blanks |
private static StringConversion |
s_booleanConversion |
private static StringConversion |
s_byteConversion |
private static StringConversion |
s_charConversion |
private static StringConversion |
s_dateConversion |
private static StringConversion |
s_doubleConversion |
private static StringConversion |
s_floatConversion |
private static StringConversion |
s_intConversion |
private static StringConversion |
s_java5DecimalConversion |
private static StringConversion |
s_jodaLocalDateConversion |
private static StringConversion |
s_jodaLocalDateTimeConversion |
private static StringConversion |
s_jodaLocalUnzonedDateMidnightConversion |
private static StringConversion |
s_jodaStrictLocalDateTimeConversion |
private static StringConversion |
s_jodaStrictUTCDateTimeConversion |
private static StringConversion |
s_jodaUnzonedLocalTimeConversion |
private static StringConversion |
s_jodaUnzonedUTCLocalTimeConversion |
private static StringConversion |
s_jodaUTCDateMidnightConversion |
private static StringConversion |
s_jodaUTCDateTimeConversion |
private static StringConversion |
s_jodaZonedDateMidnightConversion |
private static StringConversion |
s_jodaZonedDateTimeConversion |
private static StringConversion |
s_longConversion |
private static ArrayMap |
s_mappedClasses
Classes included in any binding.
|
private static StringConversion |
s_objectConversion |
private static StringConversion |
s_qnameConversion |
private static StringConversion |
s_shortConversion |
private static StringConversion |
s_sqlDateConversion |
private static StringConversion |
s_sqlTimeConversion |
(package private) static StringConversion |
s_stringConversion |
private static StringConversion |
s_timestampConversion |
private static StringConversion |
s_wrappedBooleanConversion |
private static java.lang.String |
STRINGINT_MAPTYPE |
private static java.lang.String |
STRINGINTADD_METHOD |
private static java.lang.String |
STRINGINTADD_SIGNATURE |
private static java.lang.String |
STRINGINTGET_METHOD |
private static java.lang.String |
STRINGINTGET_SIGNATURE |
private static java.lang.String |
STRINGINTINIT_SIGNATURE |
private static int |
TYPEMAP_MINIMUM_SIZE
Minimum size to use map for index from type name.
|
private static java.lang.String |
TYPEMAP_NAME |
m_accessLevel, m_autoLink, m_container, m_nameStyle, m_stripPrefix, m_stripSuffix, m_styleDefault
Constructor and Description |
---|
BindingDefinition(java.lang.String name,
boolean ibind,
boolean obind,
java.lang.String tpack,
boolean glob,
boolean forward,
boolean source,
boolean force,
boolean add,
boolean trim,
int major,
int minor)
Constructor.
|
Modifier and Type | Method and Description |
---|---|
void |
addClassList(ClassFile[] adds,
ClassFile[] keeps)
Add the list of classes used by the binding compiler to the binding
factory.
|
void |
addMappingName(java.lang.String name)
Add mapping name to binding.
|
int[] |
addPrecompiledBinding(IBindingFactory factory,
int major,
int minor)
Add a precompiled binding reference to this binding.
|
private static java.lang.String |
buildClassNamesBlob(java.util.List names)
Build a class or method name blob from a list of fully-qualified class
and/or method names.
|
private static java.lang.String |
buildClassNamesBlob(java.lang.String[] names)
Build a class or method name blob from an array of fully-qualified class
and/or method names.
|
private static java.lang.String |
buildIntsBlob(int[] ints)
Convert an array of int values into a string blob.
|
private static java.lang.String |
buildIntsBlob(java.util.List values)
Convert a list of
Integer values into a string blob. |
private static java.lang.String |
buildNamesBlob(java.lang.String[] names)
Build a name blob from an array of names.
|
private static java.lang.String |
buildNamespaceIndexBlob(java.lang.String[] uris,
java.lang.String[] nss)
Build a namespace index blob from an array of namespace URIs.
|
private static void |
codegenString(java.lang.String string,
MethodBuilder mb)
Generate code to load a string value, which may be longer than the
maximum string length.
|
private void |
fixPrefixes()
Fix the prefixes for namespaces imported from precompiled base bindings.
|
void |
generateCode(boolean verbose)
Generate code.
|
void |
generateCode(boolean verbose1,
boolean verbose2)
Generate code.
|
static BindingDefinition |
getBinding(int index)
Get indexed binding.
|
BindingDefinition |
getBindingRoot()
Get root of binding definition.
|
BoundClass |
getBoundClass()
Get class linked to binding element.
|
java.lang.String |
getDefaultPackage()
Get default package used for code generation.
|
java.io.File |
getDefaultRoot()
Get root directory for default code generation package.
|
DefinitionContext |
getDefinitionContext()
Get definition context for binding element.
|
java.lang.String |
getFactoryName()
Get the fully-qualified name of the binding factory class for this
binding.
|
int |
getIdClassIndex(java.lang.String name)
Get index for ID'ed class from binding.
|
int |
getIndex()
Get index number of binding.
|
java.lang.String |
getMarshallerUnmarshallerName(java.lang.String clas)
Get marshaller/unmarshaller name in binding.
|
int |
getNamespaceUriIndex(java.lang.String uri,
java.lang.String prefix)
Get index for namespace URI in binding.
|
java.lang.String |
getPrefix()
Get prefix for method or class generation.
|
java.lang.String |
getPrefix(java.lang.String uri)
Get the prefix assigned for a namespace.
|
int |
getStyleDefault()
Get default style for value expression.
|
boolean |
hasNamespaces() |
static void |
indent(int depth) |
boolean |
isAddConstructors()
Check if default constructor generation is enabled.
|
boolean |
isContentOrdered()
Check if content children are ordered.
|
boolean |
isForwards()
Check if forward ids are supported by unmarshalling binding.
|
boolean |
isIdGlobal()
Check if global ids are used by binding.
|
boolean |
isInput()
Check if binding is defined for unmarshalling.
|
boolean |
isOutput()
Check if binding is defined for marshalling.
|
boolean |
isTrackSource()
Check if source tracking is supported by unmarshalling binding.
|
private static java.lang.String |
methodNameOrNull(ClassItem item)
Convenience method to get an name, if the item is defined.
|
void |
print() |
static void |
reset()
Discard cached information and reset in preparation for a new binding
run.
|
void |
setFactoryLocation(java.lang.String tpack,
java.io.File root)
Set location for binding factory class generation.
|
boolean |
setIdChild(IComponent child)
Set ID property.
|
void |
setMarshallerUnmarshallerClasses(java.lang.String name,
java.lang.String mclas,
java.lang.String uclas)
Set marshaller and unmarshaller class names.
|
void |
setSchemaInstanceUsed()
Set flag for schema instance namespace used in binding.
|
unmarshal
static final QName OBJECT_DEFAULT_NAME
public static final int BASE_USER_NAMESPACE
public static final java.lang.String CURRENT_VERSION_NAME
static final java.lang.String DEFAULT_AUTOPREFIX
private static final int TYPEMAP_MINIMUM_SIZE
private static java.util.ArrayList s_bindings
private static ArrayMap s_mappedClasses
private static final StringConversion s_byteConversion
private static final StringConversion s_charConversion
private static final StringConversion s_doubleConversion
private static final StringConversion s_floatConversion
private static final StringConversion s_intConversion
private static final StringConversion s_longConversion
private static final StringConversion s_shortConversion
private static final StringConversion s_booleanConversion
private static final StringConversion s_dateConversion
private static final StringConversion s_sqlDateConversion
private static final StringConversion s_sqlTimeConversion
private static final StringConversion s_timestampConversion
private static final StringConversion s_jodaLocalDateConversion
private static final StringConversion s_jodaZonedDateMidnightConversion
private static final StringConversion s_jodaLocalUnzonedDateMidnightConversion
private static final StringConversion s_jodaUTCDateMidnightConversion
private static final StringConversion s_jodaUnzonedLocalTimeConversion
private static final StringConversion s_jodaUnzonedUTCLocalTimeConversion
private static final StringConversion s_jodaZonedDateTimeConversion
private static final StringConversion s_jodaUTCDateTimeConversion
private static final StringConversion s_jodaLocalDateTimeConversion
private static final StringConversion s_jodaStrictLocalDateTimeConversion
private static final StringConversion s_jodaStrictUTCDateTimeConversion
private static final StringConversion s_java5DecimalConversion
private static final StringConversion s_base64Conversion
private static final StringConversion s_wrappedBooleanConversion
private static final StringConversion s_qnameConversion
static final StringConversion s_stringConversion
private static final StringConversion s_objectConversion
private static final java.lang.String FACTORY_SUFFIX
private static final java.lang.String FACTORY_INTERFACE
private static final java.lang.String FACTORY_BASE
private static final java.lang.String[] FACTORY_INTERFACES
private static final java.lang.String FACTORY_INSTNAME
private static final int PRIVATESTATIC_ACCESS
private static final int PRIVATESTATICFINAL_ACCESS
private static final java.lang.String TYPEMAP_NAME
private static final java.lang.String GETINST_METHODNAME
private static final java.lang.String GETVERSION_METHODNAME
private static final java.lang.String GETDISTRIB_METHODNAME
private static final java.lang.String GETTYPEINDEX_METHODNAME
private static final java.lang.String STRINGINT_MAPTYPE
private static final java.lang.String STRINGINTINIT_SIGNATURE
private static final java.lang.String STRINGINTADD_METHOD
private static final java.lang.String STRINGINTADD_SIGNATURE
private static final java.lang.String STRINGINTGET_METHOD
private static final java.lang.String STRINGINTGET_SIGNATURE
private static final int MAX_STRING_LENGTH
private static final java.lang.String CLASSLIST_METHOD_NAME
private static final java.lang.String CLASSLIST_METHOD_SIGNATURE
private final java.lang.String m_name
private final int m_index
private final boolean m_isInput
private final boolean m_isOutput
private final boolean m_isIdGlobal
private final boolean m_isForwards
private final boolean m_isTrackSource
private final boolean m_isForceClasses
private final int m_majorVersion
private final int m_minorVersion
private boolean m_isAddConstructors
private java.lang.String m_targetPackage
private java.io.File m_targetRoot
private java.lang.String m_factoryName
private ArrayMap m_uniqueIds
null
and unused when using global ID values.private ArrayMap m_namespaceUris
private GrowableStringArray m_namespacePrefixes
private int m_highBasePrefix
private DefinitionContext m_outerContext
private DefinitionContext m_activeContext
private boolean m_isMappedDone
private boolean m_isSchemaInstanceUsed
private int m_mumIndex
private ArrayMap m_extraClasses
private GrowableStringArray m_extraMarshallers
private GrowableStringArray m_extraUnmarshallers
private GrowableStringArray m_baseBindings
private GrowableStringArray m_baseBindingFactories
private java.util.ArrayList m_baseHashes
private java.util.ArrayList m_baseNamespaceTables
private GrowableStringArray m_closureFactories
private java.util.ArrayList m_closureNamespaceTables
private ClassFile m_factoryClass
private static byte[] s_blanks
public BindingDefinition(java.lang.String name, boolean ibind, boolean obind, java.lang.String tpack, boolean glob, boolean forward, boolean source, boolean force, boolean add, boolean trim, int major, int minor) throws JiBXException
name
- binding nameibind
- input binding flagobind
- output binding flagtpack
- target packageglob
- global IDs flagforward
- support forward referenced IDs flagsource
- add source tracking for unmarshalled objects flagforce
- create marshaller/unmarshaller classes for top-level
non-base mappingsadd
- add default constructors where necessary flagtrim
- trim whitespace from simple values before conversion flagmajor
- major version numberminor
- minor version numberJiBXException
- if error in transformationpublic BoundClass getBoundClass()
IContainer
interface, just returns
null
in this case.public int getStyleDefault()
IContainer
interface.getStyleDefault
in interface IContainer
getStyleDefault
in class BindingBuilder.ContainerBase
public boolean setIdChild(IComponent child)
child
- child defining the ID propertyfalse
public java.lang.String getDefaultPackage()
public java.io.File getDefaultRoot()
public void setFactoryLocation(java.lang.String tpack, java.io.File root)
tpack
- target package for generated context factoryroot
- target root for generated context factorypublic int getIndex()
public boolean isInput()
true
if defined, false
if notpublic boolean isOutput()
true
if defined, false
if notpublic boolean isIdGlobal()
true
if defined, false
if notpublic boolean isForwards()
true
if supported, false
if notpublic boolean isTrackSource()
true
if defined, false
if notpublic boolean isAddConstructors()
true
if default constructor generation enabled,
false
if notpublic java.lang.String getPrefix()
public void addMappingName(java.lang.String name)
getMarshallerUnmarshallerName(java.lang.String)
method.name
- mapping name (type name if given, otherwise the fully
qualified mapped class name)public java.lang.String getMarshallerUnmarshallerName(java.lang.String clas)
setMarshallerUnmarshallerClasses(java.lang.String, java.lang.String, java.lang.String)
method must be used to set
the actual class names.clas
- fully qualified name of class handled by
marshaller/unmarshallerpublic void setMarshallerUnmarshallerClasses(java.lang.String name, java.lang.String mclas, java.lang.String uclas)
name
- assigned marshaller/unmarshaller namemclas
- fully qualified name of marshaller classuclas
- fully qualified name of unmarshaller classpublic int getIdClassIndex(java.lang.String name)
0
.name
- fully qualified name of ID'ed classpublic int getNamespaceUriIndex(java.lang.String uri, java.lang.String prefix)
0
.uri
- namespace URI to be included in bindingprefix
- prefix used with namespacepublic void setSchemaInstanceUsed()
public int[] addPrecompiledBinding(IBindingFactory factory, int major, int minor)
factory
- actual binding factory for precompiled bindingmajor
- required major version numberminor
- required minor version numbernull
if none)private void fixPrefixes()
public java.lang.String getPrefix(java.lang.String uri)
fixPrefixes()
method may
change the initial prefixes (if any) in order to avoid conflicts.uri
- namespace URIprivate static java.lang.String buildClassNamesBlob(java.lang.String[] names)
null
values are represented as empty names.names
- fully-qualified class and/or method names listprivate static java.lang.String buildClassNamesBlob(java.util.List names)
buildClassNamesBlob(String[])
.names
- fully-qualified class and/or method names listprivate static java.lang.String buildNamespaceIndexBlob(java.lang.String[] uris, java.lang.String[] nss)
null
values).uris
- table of namespaces defined in bindingnss
- namespaces for index blobprivate static java.lang.String buildNamesBlob(java.lang.String[] names)
null
values are
represented as empty names.names
- names for blobprivate static java.lang.String buildIntsBlob(int[] ints)
ints
- private static java.lang.String buildIntsBlob(java.util.List values)
Integer
values into a string blob. This is
just a convenience wrapper for buildIntsBlob(int[])
.values
- private static void codegenString(java.lang.String string, MethodBuilder mb)
string
- mb
- public java.lang.String getFactoryName()
public void generateCode(boolean verbose1, boolean verbose2) throws JiBXException
verbose1
- flag for verbose output from first passverbose2
- flag for verbose output from second passJiBXException
- if error in code generationpublic void generateCode(boolean verbose) throws JiBXException
false
for the second-pass
verbose flag. See generateCode(boolean, boolean)
for details of
processing.verbose
- flag for verbose output from first passJiBXException
- if error in code generationpublic void addClassList(ClassFile[] adds, ClassFile[] keeps)
adds
- classes added by bindingkeeps
- classes used but kept unchanged by bindingprivate static java.lang.String methodNameOrNull(ClassItem item)
item
- information, or null
if nonenull
if no itempublic static BindingDefinition getBinding(int index)
index
- number of binding to be returnedpublic static void reset()
public boolean isContentOrdered()
IContainer
isContentOrdered
in interface IContainer
true
if ordered, false
if notpublic boolean hasNamespaces()
public BindingDefinition getBindingRoot()
IContainer
getBindingRoot
in interface IContainer
public DefinitionContext getDefinitionContext()
IContainer
getDefinitionContext
in interface IContainer
public static void indent(int depth)
public void print()