## net.sf.saxon.dom
Class DOMObjectModel

    java.lang.Object
      net.sf.saxon.dom.DOMObjectModel

All Implemented Interfaces:
  java.io.Serializable, ExternalObjectModel

    public class DOMObjectModel

extends java.lang.Object
implements ExternalObjectModel, java.io.Serializable

This interface must be implemented by any third-party object model that can be wrapped with a wrapper that implements the Saxon Object Model (the NodeInfo interface). This implementation of the interface supports wrapping of DOM Documents.

See Also:
  Serialized Form

Constructor Summary
`DOMObjectModel()` Create an instance of the DOMObjectModel class.

Method Summary
`Receiver` `getDocumentBuilder(javax.xml.transform.Result result)` Test whether this object model recognizes a particular kind of JAXP Result object, and if it does, return a Receiver that builds an instance of this data model from a sequence of events.
`java.lang.String` `getIdentifyingURI()` Get the URI of the external object model as used in the JAXP factory interfaces for obtaining an XPath implementation
`static DOMObjectModel` `getInstance()` Get a reusable instance instance of this class.
`JPConverter` `getJPConverter(java.lang.Class targetClass)` Get a converter from XPath values to values in the external object model
`PJConverter` `getNodeListCreator(java.lang.Object node)` Get a converter that converts a sequence of XPath nodes to this model's representation of a node list.
`PJConverter` `getPJConverter(java.lang.Class targetClass)` Get a converter from XPath values to values in the external object model
`boolean` `sendSource(javax.xml.transform.Source source, Receiver receiver, PipelineConfiguration pipe)` Test whether this object model recognizes a particular kind of JAXP Source object, and if it does, send the contents of the document to a supplied Receiver, and return true.
`NodeInfo` `unravel(javax.xml.transform.Source source, Configuration config)` Wrap or unwrap a node using this object model to return the corresponding Saxon node.

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Constructor Detail

### DOMObjectModel

    public DOMObjectModel()

  Create an instance of the DOMObjectModel class.

  When possible, use the getInstance() method in preference, as the instance is then reusable.

Method Detail

### getInstance

    public static DOMObjectModel getInstance()

  Get a reusable instance instance of this class.

  Note, this is not actually a singleton instance; the class also has a public constructor, which is needed to support the automatic loading of object models into the Configuration.

  Returns:
    the singleton instance

### getIdentifyingURI

    public java.lang.String getIdentifyingURI()

  Get the URI of the external object model as used in the JAXP factory interfaces for obtaining an XPath implementation

  Specified by:
    `getIdentifyingURI` in interface `ExternalObjectModel`

### getPJConverter

    public PJConverter getPJConverter(java.lang.Class targetClass)

  Get a converter from XPath values to values in the external object model

  Specified by:
    `getPJConverter` in interface `ExternalObjectModel`
  Parameters:
    `targetClass` - the required class of the result of the conversion. If this class represents a node or list of nodes in the external object model, the method should return a converter that takes a native node or sequence of nodes as input and returns a node or sequence of nodes in the external object model representation. Otherwise, it should return null.
  Returns:
    a converter, if the targetClass is recognized as belonging to this object model; otherwise null

### getJPConverter

    public JPConverter getJPConverter(java.lang.Class targetClass)

  Description copied from interface: `ExternalObjectModel`
  Get a converter from XPath values to values in the external object model

  Specified by:
    `getJPConverter` in interface `ExternalObjectModel`
  Parameters:
    `targetClass` - the required class of the result of the conversion. If this class represents a node or list of nodes in the external object model, the method should return a converter that takes an object of this class as input and returns a node or sequence of nodes in the native Saxon representation. Otherwise, it should return null.
  Returns:
    a converter, if the targetClass is recognized as belonging to this object model; otherwise null

### getNodeListCreator

    public PJConverter getNodeListCreator(java.lang.Object node)

  Get a converter that converts a sequence of XPath nodes to this model's representation of a node list.

  Specified by:
    `getNodeListCreator` in interface `ExternalObjectModel`
  Parameters:
    `node` - an example of the kind of node used in this model
  Returns:
    if the model does not recognize this node as one of its own, return null. Otherwise return a PJConverter that takes a list of XPath nodes (represented as NodeInfo objects) and returns a collection of nodes in this object model

### getDocumentBuilder

    public Receiver getDocumentBuilder(javax.xml.transform.Result result)
                                throws XPathException

  Test whether this object model recognizes a particular kind of JAXP Result object, and if it does, return a Receiver that builds an instance of this data model from a sequence of events. If the Result is not recognised, return null.

  Specified by:
    `getDocumentBuilder` in interface `ExternalObjectModel`
  Parameters:
    `result` - a JAXP result object
  Returns:
    a Receiver that writes to that result, if available; or null otherwise
  Throws:
    `XPathException`

### sendSource

    public boolean sendSource(javax.xml.transform.Source source,
                              Receiver receiver,
                              PipelineConfiguration pipe)
                       throws XPathException

  Test whether this object model recognizes a particular kind of JAXP Source object, and if it does, send the contents of the document to a supplied Receiver, and return true. Otherwise, return false

  Specified by:
    `sendSource` in interface `ExternalObjectModel`
  Parameters:
    `source` - a JAXP Source object
    `receiver` - the Receiver that is to receive the data from the Source
    `pipe` - configuration information
  Returns:
    true if the data from the Source has been sent to the Receiver, false otherwise
  Throws:
    `XPathException`

### unravel

    public NodeInfo unravel(javax.xml.transform.Source source,
                            Configuration config)

  Wrap or unwrap a node using this object model to return the corresponding Saxon node. If the supplied source does not belong to this object model, return null

  Specified by:
    `unravel` in interface `ExternalObjectModel`
  Parameters:
    `source` - a JAXP Source object
    `config` - the Saxon configuration
  Returns:
    a NodeInfo corresponding to the Source, if this can be constructed; otherwise null

Copyright (c) Saxonica Limited. All rights reserved.