Package org.jibx.binding.model
Class BindingHolder
java.lang.Object
org.jibx.binding.model.BindingHolder
External data for a binding definition. Along with the actual mapping definitions, this tracks namespace references
and usages.
- Author:
- Dennis M. Sosnoski
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate BindingElementActual binding definition.private final booleanNamespace used by default for elements flag.private StringName for file to be written from binding.private booleanBinding finalized flag.private final LazyListList of mapping definitions in binding.private final StringNamespace URI associated with this binding (nullif no-namespace binding).private booleanBinding namespace used for element or attribute flag.private final BindingOrganizerOrganizer managing this holder.private StringPrefix to be used for this namespace (nullif unspecified).private booleanPull namespaces used in element or attribute names up to root binding flag (set when a type reference to this binding is seen).private final InsertionOrderedSetSet of namespaces referenced in qualified names in this bindings.private final InsertionOrderedSetSet of namespaces used in element or attribute names in binding. -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidaddFormat(FormatElement format) Add a format definition to the binding.voidaddMapping(MappingElementBase mapping) Add a mapping definition to the binding.voidaddNamespaceUsage(String uri) Add usage of namespace for an element or attribute name in binding.voidaddTypeNameReference(String uri, Object obj) Add reference from this binding to a type name defined in the same or another binding.private voidInternal check method to verify that the binding is still modifiable.(package private) voidfinish(Collection formats, Collection includes, Set outernss, Map nsdfltpref, Map nsfrcdpref) Finishes building the binding.(package private) voidForce namespaces to be pulled up to the root binding.Get the binding element.Get default namespace URI for elements defined in this binding.Get the file name to be used for this file.intGet the number of mapping definitions present in this binding.Get namespace URI associated with this binding.Get namespace prefix for this binding.(package private) SetGet a set of all the namespace URIs referenced by a qualified name in this binding.getRequiredBinding(Object obj) Get the binding associated with a particular control object.(package private) SetGet a set of all the namespace URIs used by element or attributes names in this binding.(package private) booleanCheck if the namespace associated with this binding is actually used by any element or attribute definitions in the binding.(package private) booleanCheck if the namespace associated with this binding should be used as the default for definitions in the binding.(package private) booleanCheck if used namespaces need to be pulled up to the root binding.Get the number of mapping definitions present in this binding.voidsetBinding(BindingElement bind) Set the binding element.voidsetFileName(String name) Set the file name to be used for this file.(package private) voidSet namespace prefix for this binding.
-
Field Details
-
m_organizer
Organizer managing this holder. -
m_namespace
Namespace URI associated with this binding (nullif no-namespace binding). -
m_elementDefault
private final boolean m_elementDefaultNamespace used by default for elements flag. -
m_referencedNamespaces
Set of namespaces referenced in qualified names in this bindings. -
m_usedNamespaces
Set of namespaces used in element or attribute names in binding. -
m_prefix
Prefix to be used for this namespace (nullif unspecified). -
m_binding
Actual binding definition. -
m_pullUpNamespaces
private boolean m_pullUpNamespacesPull namespaces used in element or attribute names up to root binding flag (set when a type reference to this binding is seen). -
m_namespaceUsed
private boolean m_namespaceUsedBinding namespace used for element or attribute flag. -
m_finished
private boolean m_finishedBinding finalized flag. -
m_fileName
Name for file to be written from binding. -
m_mappings
List of mapping definitions in binding.
-
-
Constructor Details
-
BindingHolder
Constructor. TODO: add a way of handling pregenerated bindings, so that namespaces can be properly tracked?- Parameters:
uri- (nullif no-namespace binding)dflt- namespace is default for elements flagdir- directory managing this holder
-
-
Method Details
-
getNamespace
Get namespace URI associated with this binding.- Returns:
- namespace (
nullif no-namespace)
-
getPrefix
Get namespace prefix for this binding.- Returns:
- prefix (
nullif not specified)
-
setPrefix
Set namespace prefix for this binding. Method used by the binding organizer code to configure binding.- Parameters:
prefix- (nullif not specified)
-
getElementDefaultNamespace
Get default namespace URI for elements defined in this binding.- Returns:
- namespace (
nullif no-namespace)
-
getBinding
Get the binding element.- Returns:
- binding
-
setBinding
Set the binding element. This method is provided so that the generated binding element can be replaced by one which has been read in from a file after being written.- Parameters:
bind-
-
addFormat
Add a format definition to the binding. In actual generation, formats may be moved to a root binding definition.- Parameters:
format-
-
addNamespaceUsage
Add usage of namespace for an element or attribute name in binding.- Parameters:
uri- referenced namespace URI (nullif no-namespace)
-
addTypeNameReference
Add reference from this binding to a type name defined in the same or another binding.- Parameters:
uri- namespace URI for type nameobj- object associated with referenced binding
-
checkModifiable
private void checkModifiable()Internal check method to verify that the binding is still modifiable. -
getFileName
Get the file name to be used for this file.- Returns:
- name (
nullif not set)
-
setFileName
Set the file name to be used for this file.- Parameters:
name-
-
addMapping
Add a mapping definition to the binding.- Parameters:
mapping-
-
getMappingCount
public int getMappingCount()Get the number of mapping definitions present in this binding.- Returns:
- count
-
iterateMappings
Get the number of mapping definitions present in this binding.- Returns:
- count
-
getRequiredBinding
Get the binding associated with a particular control object.- Parameters:
obj- object associated with binding (can be namespace URI, if only one binding per namespace)- Returns:
- binding holder
-
getReferencedNamespaces
Set getReferencedNamespaces()Get a set of all the namespace URIs referenced by a qualified name in this binding. Method used by the binding organizer code to configure binding.- Returns:
- live namespace list
-
getUsedNamespaces
Set getUsedNamespaces()Get a set of all the namespace URIs used by element or attributes names in this binding. Method used by the binding organizer code to configure binding.- Returns:
- live namespace list
-
forcePullUpNamespaces
void forcePullUpNamespaces()Force namespaces to be pulled up to the root binding. Method used by the binding organizer code to configure binding. -
isPullUpNamespaces
boolean isPullUpNamespaces()Check if used namespaces need to be pulled up to the root binding. Method used by the binding organizer code to configure binding.- Returns:
- pull up flag
-
isNamespaceElementDefault
boolean isNamespaceElementDefault()Check if the namespace associated with this binding should be used as the default for definitions in the binding. Method used by the binding organizer code to configure binding.- Returns:
- pull up flag
-
isBindingNamespaceUsed
boolean isBindingNamespaceUsed()Check if the namespace associated with this binding is actually used by any element or attribute definitions in the binding. Method used by the binding organizer code to configure binding.- Returns:
- pull up flag
-
finish
Finishes building the binding. Method used by the binding organizer code to configure binding.- Parameters:
formats- format elements to be used in bindingincludes- include elements to be used in bindingouternss- namespaces inherited by this bindingnsdfltpref- map from namespace URI to default prefix when used in a namespace declaration within the binding (nullvalues for namespace used as the default)nsfrcdpref- map from namespace URI to prefix when used in a binding namespace definition (prefix must be non-nulland non-empty)
-