org.jibx.binding.model
Class BindingElement

java.lang.Object
  extended by org.jibx.binding.model.ElementBase
      extended by org.jibx.binding.model.NestingElementBase
          extended by org.jibx.binding.model.BindingElement

public class BindingElement
extends NestingElementBase

Model component for binding element.

Author:
Dennis M. Sosnoski

Nested Class Summary
static class BindingElement.UnmarshalWrapper
          Inner class as wrapper for binding element on unmarshalling.
 
Field Summary
static int BOTH_BINDING
           
static int IN_BINDING
           
static int OUT_BINDING
           
static StringArray s_allowedAttributes
          Enumeration of allowed attribute names
 
Fields inherited from class org.jibx.binding.model.ElementBase
BINDING_ELEMENT, COLLECTION_ELEMENT, ELEMENT_NAMES, FORMAT_ELEMENT, INCLUDE_ELEMENT, INPUT_ELEMENT, MAPPING_ELEMENT, NAMESPACE_ELEMENT, OUTPUT_ELEMENT, SPLIT_ELEMENT, STRUCTURE_ELEMENT, TEMPLATE_ELEMENT, VALUE_ELEMENT
 
Constructor Summary
BindingElement()
          Default constructor.
 
Method Summary
 void addIdClass(IClass clas)
          Add a class defined with a ID value.
 void addIncludeBinding(String path, BindingElement bind)
          Add binding accessible to includes.
 boolean addIncludePath(String path, boolean precomp)
          Add include path to set processed.
 void addNamespaceDecl(String prefix, String uri)
          Add namespace declaration for output when marshalling.
 void addTopChild(Object child)
          Add top-level child element.
 URL getBaseUrl()
          Get base URL for relative include paths.
 int getDefaultStyle()
          Get default style value for child components.
 BindingElement getExistingIncludeBinding(URL url)
          Get existing included binding.
 BindingElement getIncludeBinding(URL url, BindingElement root, ValidationContext vctx)
          Get included binding.
 int getMajorVersion()
          Get major version number.
 int getMinorVersion()
          Get minor version number.
 String getName()
          Get binding name.
 String getTargetPackage()
          Get package for generated context factory class.
 boolean hasAttribute()
           
 boolean hasContent()
           
 boolean isAddConstructors()
          Check if default constructor generation is enabled.
 boolean isForceClasses()
          Check if marshaller/unmarshaller class creation for top-level non-base abstract mappings is forced.
 boolean isForward()
          Check if forward references to IDs must be supported in XML.
 boolean isIdClass(String name)
          Check if a class can be referenced by ID.
 boolean isInBinding()
          Check if this binding component applies for unmarshalling XML.
 boolean isOptional()
           
 boolean isOutBinding()
          Check if this binding component applies for marshalling XML.
 boolean isPrecompiled()
          Check if a precompiled binding.
 boolean isTrackSource()
          Check if source position tracking enabled for unmarshalling.
 boolean isTrimWhitespace()
          Check if whitespace should be trimmed from simple values.
static ValidationContext newValidationContext()
          Create a default validation context.
 void prevalidate(ValidationContext vctx)
          Prevalidate all attributes of element in isolation.
static BindingElement readBinding(InputStream is, String fname, BindingElement contain, boolean precomp, ValidationContext vctx)
          Read a binding definition (possibly as an include) to construct binding model.
static BindingElement readBinding(InputStream is, String fname, ValidationContext vctx)
          Read a binding definition to construct binding model.
 void runValidation(boolean full, ValidationContext vctx)
          Run the actual validation of a binding model.
 void runValidation(ValidationContext vctx)
          Run the actual validation of a binding model.
 void setAddConstructors(boolean add)
          Set default constructor generation.
 void setBaseUrl(URL base)
          Set base URL for relative include paths.
 void setForceClasses(boolean force)
          Set force marshaller/unmarshaller class creation for top-level non-base abstract mappings.
 void setForward(boolean forward)
          Set forward references to IDs be supported in XML.
 void setInBinding(boolean in)
          Set binding component applies for unmarshalling XML.
 void setMajorVersion(int ver)
          Set major version number.
 void setMinorVersion(int ver)
          Set minor version number.
 void setName(String name)
          Set binding name.
 void setOutBinding(boolean out)
          Set binding component applies for marshalling XML.
 void setPrecompiled(boolean precomp)
          Set precompiled binding flag.
 void setTargetPackage(String pack)
          Set package for generated context factory class.
 void setTrackSource(boolean track)
          Set source position tracking for unmarshalling.
 void setTrimWhitespace(boolean trim)
          Set trim whitespace flag.
 Iterator topChildIterator()
          Get iterator for top-level child elements.
 ArrayList topChildren()
          Get list of top-level child elements.
static BindingElement validateBinding(String name, URL path, InputStream is, ValidationContext vctx)
          Validate a binding definition.
 
Methods inherited from class org.jibx.binding.model.NestingElementBase
addChild, childIterator, children, getDefinitions, getStyle, getStyleName, setStyleName, validate
 
Methods inherited from class org.jibx.binding.model.ElementBase
getComment, name, setComment, toString, type, validateAttributes
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

s_allowedAttributes

public static final StringArray s_allowedAttributes
Enumeration of allowed attribute names


IN_BINDING

public static final int IN_BINDING
See Also:
Constant Field Values

OUT_BINDING

public static final int OUT_BINDING
See Also:
Constant Field Values

BOTH_BINDING

public static final int BOTH_BINDING
See Also:
Constant Field Values
Constructor Detail

BindingElement

public BindingElement()
Default constructor.

Method Detail

setName

public void setName(String name)
Set binding name.

Parameters:
name - binding definition name

getName

public String getName()
Get binding name.

Returns:
binding definition name

setForward

public void setForward(boolean forward)
Set forward references to IDs be supported in XML.

Parameters:
forward - true if forward references supported, false if not

isForward

public boolean isForward()
Check if forward references to IDs must be supported in XML.

Returns:
true if forward references required, false if not

setTrackSource

public void setTrackSource(boolean track)
Set source position tracking for unmarshalling.

Parameters:
track - true if source position tracking enabled, false if not

isTrackSource

public boolean isTrackSource()
Check if source position tracking enabled for unmarshalling.

Returns:
true if source position tracking enabled, false if not

setForceClasses

public void setForceClasses(boolean force)
Set force marshaller/unmarshaller class creation for top-level non-base abstract mappings.

Parameters:
force - true if class generation forced, false if not

isForceClasses

public boolean isForceClasses()
Check if marshaller/unmarshaller class creation for top-level non-base abstract mappings is forced.

Returns:
true if class generation forced, false if not

setAddConstructors

public void setAddConstructors(boolean add)
Set default constructor generation.

Parameters:
add - true if constructors should be added, false if not

isAddConstructors

public boolean isAddConstructors()
Check if default constructor generation is enabled.

Returns:
true if default constructor generation enabled, false if not

setTrimWhitespace

public void setTrimWhitespace(boolean trim)
Set trim whitespace flag.

Parameters:
trim - true if whitespace should be trimmed from simple values, false if not

isTrimWhitespace

public boolean isTrimWhitespace()
Check if whitespace should be trimmed from simple values.

Returns:
trim whitespace flag

getMajorVersion

public int getMajorVersion()
Get major version number.

Returns:
major version

setMajorVersion

public void setMajorVersion(int ver)
Set major version number.

Parameters:
ver - major version

getMinorVersion

public int getMinorVersion()
Get minor version number.

Returns:
minor version

setMinorVersion

public void setMinorVersion(int ver)
Set minor version number.

Parameters:
ver - minor version

setTargetPackage

public void setTargetPackage(String pack)
Set package for generated context factory class.

Parameters:
pack - generated context factory package (null if unspecified)

getTargetPackage

public String getTargetPackage()
Get package for generated context factory class.

Returns:
package for generated context factory (null if unspecified)

setBaseUrl

public void setBaseUrl(URL base)
Set base URL for relative include paths.

Parameters:
base -

getBaseUrl

public URL getBaseUrl()
Get base URL for relative include paths.

Returns:
base URL

setOutBinding

public void setOutBinding(boolean out)
Set binding component applies for marshalling XML.

Parameters:
out - true if binding supports output, false if not

isOutBinding

public boolean isOutBinding()
Check if this binding component applies for marshalling XML.

Returns:
true if binding supports output, false if not

setInBinding

public void setInBinding(boolean in)
Set binding component applies for unmarshalling XML.

Parameters:
in - true if binding supports input, false if not

isInBinding

public boolean isInBinding()
Check if this binding component applies for unmarshalling XML.

Returns:
true if binding supports input, false if not

isPrecompiled

public boolean isPrecompiled()
Check if a precompiled binding.

Returns:
true if precompiled, false if not

setPrecompiled

public void setPrecompiled(boolean precomp)
Set precompiled binding flag.

Parameters:
precomp -

addIncludePath

public boolean addIncludePath(String path,
                              boolean precomp)
Add include path to set processed.

Parameters:
path -
precomp - precompiled binding flag
Returns:
true if new path, false if duplicate

getIncludeBinding

public BindingElement getIncludeBinding(URL url,
                                        BindingElement root,
                                        ValidationContext vctx)
                                 throws IOException,
                                        JiBXException
Get included binding. If the binding was supplied directly it's just returned; otherwise, it's read from the URL. This method should only be called if addIncludePath(String, boolean) returns true, so that each unique included binding is only processed once.

Parameters:
url - binding path
root - binding containing the include
vctx - validation context
Returns:
binding
Throws:
IOException
JiBXException

getExistingIncludeBinding

public BindingElement getExistingIncludeBinding(URL url)
Get existing included binding.

Parameters:
url - binding path
Returns:
binding if it exists, otherwise null

addIncludeBinding

public void addIncludeBinding(String path,
                              BindingElement bind)
Add binding accessible to includes. This allows bindings to be supplied directly, without needing to be parsed from an input document.

Parameters:
path - URL string identifying the binding (virtual path)
bind -

addIdClass

public void addIdClass(IClass clas)
Add a class defined with a ID value. This is used to track the classes with ID values for validating ID references in the binding. If the binding uses global IDs, the actual ID class is added to the table along with all interfaces implemented by the class and all superclasses, since instances of the ID class can be referenced in any of those forms. If the binding does not use global IDs, only the actual ID class is added, since references must be type-specific.

Parameters:
clas - information for class with ID value

isIdClass

public boolean isIdClass(String name)
Check if a class can be referenced by ID. This just checks if any classes compatible with the reference type are bound with ID values.

Parameters:
name - fully qualified name of class
Returns:
true if class is bound with an ID, false if not

addTopChild

public void addTopChild(Object child)
Add top-level child element. TODO: should be ElementBase argument, but JiBX doesn't allow yet

Parameters:
child - element to be added as child of this element

topChildren

public ArrayList topChildren()
Get list of top-level child elements.

Returns:
list of child elements, or null if none

topChildIterator

public Iterator topChildIterator()
Get iterator for top-level child elements.

Returns:
iterator for child elements

addNamespaceDecl

public void addNamespaceDecl(String prefix,
                             String uri)
Add namespace declaration for output when marshalling.

Parameters:
prefix - namespace prefix (null if none)
uri - namespace URI (non-null)

hasAttribute

public boolean hasAttribute()

hasContent

public boolean hasContent()

isOptional

public boolean isOptional()

getDefaultStyle

public int getDefaultStyle()
Get default style value for child components. This call is only meaningful after validation.

Overrides:
getDefaultStyle in class NestingElementBase
Returns:
default style value for child components

prevalidate

public void prevalidate(ValidationContext vctx)
Prevalidate all attributes of element in isolation.

Overrides:
prevalidate in class NestingElementBase
Parameters:
vctx - validation context

runValidation

public void runValidation(boolean full,
                          ValidationContext vctx)
Run the actual validation of a binding model. This allows either partial or full validation, with partial validation not requiring access to class files.

Parameters:
full - run full validation flag (requires access to class files)
vctx - context for controlling validation

runValidation

public void runValidation(ValidationContext vctx)
Run the actual validation of a binding model. This form of call always does a full validation.

Parameters:
vctx - context for controlling validation

readBinding

public static BindingElement readBinding(InputStream is,
                                         String fname,
                                         BindingElement contain,
                                         boolean precomp,
                                         ValidationContext vctx)
                                  throws JiBXException
Read a binding definition (possibly as an include) to construct binding model.

Parameters:
is - input stream for reading binding
fname - name of input file (null if unknown)
contain - containing binding (null if none)
precomp - precompiled binding flag
vctx - validation context used during unmarshalling
Returns:
root of binding definition model
Throws:
JiBXException - on error in reading binding

readBinding

public static BindingElement readBinding(InputStream is,
                                         String fname,
                                         ValidationContext vctx)
                                  throws JiBXException
Read a binding definition to construct binding model. This method cannot be used for precompiled bindings.

Parameters:
is - input stream for reading binding
fname - name of input file (null if unknown)
vctx - validation context used during unmarshalling
Returns:
root of binding definition model
Throws:
JiBXException - on error in reading binding

validateBinding

public static BindingElement validateBinding(String name,
                                             URL path,
                                             InputStream is,
                                             ValidationContext vctx)
                                      throws JiBXException
Validate a binding definition. This method cannot be used for precompiled bindings.

Parameters:
name - binding definition name
path - binding definition URL
is - input stream for reading binding
vctx - validation context to record problems
Returns:
root of binding definition model, or null if error in unmarshalling
Throws:
JiBXException - on error in binding XML structure

newValidationContext

public static ValidationContext newValidationContext()
Create a default validation context.

Returns:
new validation context


Copyright © 2005-2011 jibx.org. All Rights Reserved.