Class DOMEnvelope

  • All Implemented Interfaces:
    ExternalObjectModel

    public class DOMEnvelope
    extends Object
    implements ExternalObjectModel
    DOMEnvelope is an object model representation in which DOM interfaces are wrapped around Saxon NodeInfo nodes: that is, it implements the DOM on top of a Saxon tree implementation such as the tiny tree or linked tree.
    • Constructor Detail

      • DOMEnvelope

        public DOMEnvelope()
        Public constructor. (Use the singular instance in preference to creating a new one).
    • Method Detail

      • getInstance

        public static DOMEnvelope getInstance()
        Get the singular instance (this class is stateless)
        Returns:
        the singular instance
      • getDocumentClassName

        public String getDocumentClassName()
        Get the name of a characteristic class, which, if it can be loaded, indicates that the supporting libraries for this object model implementation are available on the classpath
        Specified by:
        getDocumentClassName in interface ExternalObjectModel
        Returns:
        by convention (but not necessarily) the class that implements a document node in the relevant external model
      • getIdentifyingURI

        public 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
        Returns:
        the URI used to identify this object model in the JAXP XPath factory mechanism.
      • getPJConverter

        public PJConverter getPJConverter​(Class<?> targetClass)
        Description copied from interface: ExternalObjectModel
        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​(Class sourceClass,
                                          Configuration config)
        Description copied from interface: ExternalObjectModel
        Get a converter from values in the external object model to XPath values.
        Specified by:
        getJPConverter in interface ExternalObjectModel
        Parameters:
        sourceClass - the class (static or dynamic) of values to be converted
        config - the Saxon Configuration object
        Returns:
        a converter, if the sourceClass is recognized as belonging to this object model; otherwise null
      • getNodeListCreator

        public PJConverter getNodeListCreator​(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
      • isRecognizedNode

        public boolean isRecognizedNode​(Object object)
        Test whether this object model recognizes a given node as one of its own
        Parameters:
        object - the object to be tested
        Returns:
        true if the supplied object is a node in this object model
      • isRecognizedNodeClass

        public boolean isRecognizedNodeClass​(Class nodeClass)
        Test whether this object model recognizes a given class as representing a node in that object model. This method will generally be called at compile time.
        Parameters:
        nodeClass - A class that possibly represents nodes
        Returns:
        true if the class is used to represent nodes in this object model
      • getDocumentBuilder

        public Receiver getDocumentBuilder​(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. If the Result is not recognised, return null.

        This implementation always returns null: it is not possible to construct an instance of this object model implementation directly as the result of a JAXP transformation.

        Specified by:
        getDocumentBuilder in interface ExternalObjectModel
        Parameters:
        result - a JAXP result object
        Returns:
        always null in this implementation
      • getActiveSource

        public ActiveSource getActiveSource​(Source supplied)
        Give this ExternalObjectModel the opportunity of recognising a Source object and returning an ActiveSource, which will be used to send an instance of this external model to a supplied Receiver. The default implementation returns null.
        Specified by:
        getActiveSource in interface ExternalObjectModel
        Parameters:
        supplied - a supplied Source
        Returns:
        an ActiveSource object if the source is recognised, or null if not
      • unravel

        public NodeInfo unravel​(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