Class Erector

  • All Implemented Interfaces:
    javax.xml.transform.Result, Receiver

    public class Erector
    extends java.lang.Object
    implements Receiver
    This class is instantiated to build a DOMINO tree, taking a DOM Document as input; its task is to add the indexing information.
    • Field Detail

      • PARENT_POINTER_INTERVAL

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

      • Erector

        public Erector​(org.w3c.dom.Document doc,
                       java.lang.String systemId,
                       Configuration config)
    • Method Detail

      • getTree

        public DominoTree getTree()
        Get the tree being built by this builder
        Returns:
        the TinyTree
      • getCurrentDepth

        public int getCurrentDepth()
        Get the current depth in the tree
        Returns:
        the current depth
      • open

        public void open()
        Open the event stream
        Specified by:
        open in interface Receiver
      • startDocument

        public void startDocument​(int properties)
                           throws XPathException
        Write a document node to the tree
        Specified by:
        startDocument in interface Receiver
        Parameters:
        properties - any special properties of the node (none currently defined)
        Throws:
        XPathException - if an error occurs
      • reset

        public void reset()
      • startElement

        public void startElement​(NodeName elemName,
                                 SchemaType type,
                                 AttributeMap attributes,
                                 NamespaceMap namespaces,
                                 Location location,
                                 int properties)
                          throws XPathException
        Notify the start tag of an element
        Specified by:
        startElement in interface Receiver
        Parameters:
        elemName - the name of the element.
        type - the type annotation of the element.
        attributes - the attributes of this element
        namespaces - the in-scope namespaces of this element: generally this is all the in-scope namespaces, without relying on inheriting namespaces from parent elements
        location - an object providing information about the module, line, and column where the node originated
        properties - bit-significant properties of the element node. If there are no relevant properties, zero is supplied. The definitions of the bits are in class ReceiverOption
        Throws:
        XPathException - if an error occurs
      • getLastCompletedElement

        public DominoNode getLastCompletedElement()
        Get the last completed element node. This is used during checking of schema assertions, which happens while the tree is still under construction. It is also used when copying accumulator values to the new tree from a streamed input. This method is called immediately after a call on endElement(), and it returns the element that has just ended.
        Returns:
        the last completed element node, that is, the element whose endElement event is the most recent endElement event to be reported, or null if there is no such element
      • characters

        public void characters​(UnicodeString chars,
                               Location locationId,
                               int properties)
                        throws XPathException
        Notify a text node
        Specified by:
        characters in interface Receiver
        Parameters:
        chars - The characters
        locationId - provides information such as line number and system ID.
        properties - Bit significant value. The following bits are defined:
        DISABLE_ESCAPING
        Disable escaping for this text node
        USE_CDATA
        Output as a CDATA section
        Throws:
        XPathException - if an error occurs
      • makeTextNode

        protected int makeTextNode​(UnicodeString chars)
        Create a text node. Separate method so it can be overridden. If the current node on the tree is already a text node, the new text will be appended to it.
        Parameters:
        chars - the contents of the text node
        Returns:
        the node number of the created text node, or the text node to which this text has been appended.
      • processingInstruction

        public void processingInstruction​(java.lang.String piname,
                                          UnicodeString remainder,
                                          Location locationId,
                                          int properties)
                                   throws XPathException
        Callback interface for SAX: not for application use
        Specified by:
        processingInstruction in interface Receiver
        Parameters:
        piname - The PI name. This must be a legal name (it will not be checked).
        remainder - The data portion of the processing instruction
        locationId - provides information such as line number and system ID.
        properties - Additional information about the PI.
        Throws:
        XPathException - if an error occurs
      • comment

        public void comment​(UnicodeString chars,
                            Location locationId,
                            int properties)
                     throws XPathException
        Callback interface for SAX: not for application use
        Specified by:
        comment in interface Receiver
        Parameters:
        chars - The content of the comment
        locationId - provides information such as line number and system ID.
        properties - Additional information about the comment.
        Throws:
        XPathException - if an error occurs
      • setUnparsedEntity

        public void setUnparsedEntity​(java.lang.String name,
                                      java.lang.String uri,
                                      java.lang.String publicId)
        Set an unparsed entity in the document
        Specified by:
        setUnparsedEntity in interface Receiver
        Parameters:
        name - The name of the unparsed entity
        uri - The system identifier of the unparsed entity
        publicId - The identifier of the unparsed entity
      • setSystemId

        public void setSystemId​(java.lang.String systemId)
        Set the System ID of the tree represented by this event stream
        Specified by:
        setSystemId in interface javax.xml.transform.Result
        Parameters:
        systemId - the system ID (which is used as the base URI of the nodes if there is no xml:base attribute)
      • usesTypeAnnotations

        public boolean usesTypeAnnotations()
        Ask whether this Receiver (or the downstream pipeline) makes any use of the type annotations supplied on element and attribute events
        Specified by:
        usesTypeAnnotations in interface Receiver
        Returns:
        true if the Receiver makes any use of this information. If false, the caller may supply untyped nodes instead of supplying the type annotation (or conversely, it may avoid stripping unwanted type annotations)
      • getSystemId

        public java.lang.String getSystemId()
        Get the system identifier that was set with setSystemId.
        Specified by:
        getSystemId in interface javax.xml.transform.Result
        Returns:
        The system identifier that was set with setSystemId, or null if setSystemId was not called.