Class BindingSelector

java.lang.Object
org.jibx.extras.BindingSelector

public class BindingSelector extends Object
Binding selector that supports versioned XML documents. This looks for a version attribute on the root element of the document, and selects the mapping to be used for unmarshalling based on the value. It also supports selecting the version for marshalling based on a supplied version argument value.
Version:
1.0
Author:
Dennis M. Sosnoski
  • Field Details

    • m_attributeUri

      private final String m_attributeUri
      URI of version selection attribute.
    • m_attributeName

      private final String m_attributeName
      Name of version selection attribute.
    • m_versionTexts

      private final String[] m_versionTexts
      Array of version names.
    • m_versionBindings

      private final String[] m_versionBindings
      Array of bindings corresponding to versions.
    • m_context

      private final UnmarshallingContext m_context
      Basic unmarshalling context used to determine document version.
    • m_outputStream

      private OutputStream m_outputStream
      Stream for marshalling output.
    • m_outputEncoding

      private String m_outputEncoding
      Encoding for output stream.
    • m_outputWriter

      private Writer m_outputWriter
      Output writer for marshalling.
    • m_outputIndent

      private int m_outputIndent
      Indentation for marshalling.
  • Constructor Details

    • BindingSelector

      public BindingSelector(String uri, String name, String[] versions, String[] bindings)
      Constructor.
      Parameters:
      uri - version selection attribute URI (null if none)
      name - version selection attribute name
      versions - array of version texts (first is default)
      bindings - array of binding names corresponding to versions
  • Method Details

    • getContext

      public IUnmarshallingContext getContext()
      Get initial unmarshalling context. This gives access to the unmarshalling context used before the specific version is determined. The document information must be set for this context before calling unmarshalVersioned(java.lang.Class).
      Returns:
      initial unmarshalling context
    • setOutput

      public void setOutput(OutputStream outs, String enc)
      Set output stream and encoding.
      Parameters:
      outs - stream for document data output
      enc - document output encoding, or null for default
    • setOutput

      public void setOutput(Writer outw)
      Set output writer.
      Parameters:
      outw - writer for document data output
    • setIndent

      public void setIndent(int indent)
      Set nesting indent spaces.
      Parameters:
      indent - number of spaces to indent per level, or disable indentation if negative
    • marshalVersioned

      public void marshalVersioned(Object obj, String version) throws JiBXException
      Marshal according to supplied version.
      Parameters:
      obj - root object to be marshalled
      version - identifier for version to be used in marshalling
      Throws:
      JiBXException - if error in marshalling
    • unmarshalVersioned

      public Object unmarshalVersioned(Class clas) throws JiBXException
      Unmarshal according to document version.
      Parameters:
      clas - expected class mapped to root element of document (used only to look up the binding)
      Returns:
      root object unmarshalled from document
      Throws:
      JiBXException - if error in unmarshalling