Class BindingElement


  • public class BindingElement
    extends NestingElementBase
    Model component for binding element.
    Author:
    Dennis M. Sosnoski
    • 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 - URL
      • 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 - Precompiled flag
      • addIncludePath

        public boolean addIncludePath​(String path,
                                      boolean precomp)
        Add include path to set processed.
        Parameters:
        path - 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,
                                                org.jibx.runtime.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 element
        Throws:
        IOException - I/O error
        org.jibx.runtime.JiBXException - Jibx error
      • 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 - Binding Element
      • 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
      • 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 org.jibx.runtime.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:
        org.jibx.runtime.JiBXException - on error in reading binding
      • readBinding

        public static BindingElement readBinding​(InputStream is,
                                                 String fname,
                                                 ValidationContext vctx)
                                          throws org.jibx.runtime.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:
        org.jibx.runtime.JiBXException - on error in reading binding
      • validateBinding

        public static BindingElement validateBinding​(String name,
                                                     URL path,
                                                     InputStream is,
                                                     ValidationContext vctx)
                                              throws org.jibx.runtime.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:
        org.jibx.runtime.JiBXException - on error in binding XML structure
      • newValidationContext

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