Class NGCCRuntime

  • All Implemented Interfaces:
    NGCCEventSource, ContentHandler
    Direct Known Subclasses:
    NGCCRuntimeEx

    public class NGCCRuntime
    extends Object
    implements ContentHandler, NGCCEventSource
    Runtime Engine for RELAXNGCC execution. This class has the following functionalities:
    1. Managing a stack of NGCCHandler objects and switching between them appropriately.
    2. Keep track of all Attributes.
    3. manage mapping between namespace URIs and prefixes.
    4. TODO: provide support for interleaving.

    Auto-generated, do not edit.

    Version:
    $Id: NGCCRuntime.java,v 1.15 2002/09/29 02:55:48 okajima Exp $
    Author:
    Kohsuke Kawaguchi (kk@kohsuke.org)
    • Constructor Detail

      • NGCCRuntime

        public NGCCRuntime()
    • Method Detail

      • setRootHandler

        public void setRootHandler​(NGCCHandler rootHandler)
        Sets the root handler, which will be used to parse the root element.

        This method can be called right after the object is created or the reset method is called. You can't replace the root handler while parsing is in progress.

        Usually a generated class that corresponds to the <start> pattern will be used as the root handler, but any NGCCHandler can be a root handler.

        Parameters:
        rootHandler - new root handler
        Throws:
        IllegalStateException - If this method is called but it doesn't satisfy the pre-condition stated above.
      • reset

        public void reset()
        Cleans up all the data structure so that the object can be reused later. Normally, applications do not need to call this method directly, as the runtime resets itself after the endDocument method.
      • getLocator

        public Locator getLocator()
        Gets the source location of the current event.

        One can call this method from RelaxNGCC handlers to access the line number information. Note that to

        Returns:
        the source location of the current event
      • getCurrentAttributes

        public Attributes getCurrentAttributes()
        Attributes that belong to the current element.

        It's generally not recommended for applications to use this method. RelaxNGCC internally removes processed attributes, so this doesn't correctly reflect all the attributes an element carries.

        Returns:
        Attributes that belong to the current element
      • replace

        public int replace​(NGCCEventReceiver o,
                           NGCCEventReceiver n)
        Description copied from interface: NGCCEventSource
        Replaces an old handler with a new handler, and returns ID of the EventReceiver thread.
        Specified by:
        replace in interface NGCCEventSource
        Parameters:
        o - old handler
        n - new handler
        Returns:
        Thread ID of the receiver that can handle this event, or -1 if none.
      • onEnterElementConsumed

        public void onEnterElementConsumed​(String uri,
                                           String localName,
                                           String qname,
                                           Attributes atts)
                                    throws SAXException
        Called by the generated handler code when an enter element event is consumed.

        Pushes a new attribute set.

        Note that attributes are NOT pushed at the startElement method, because the processing of the enterElement event can trigger other attribute events and etc.

        This method will be called from one of handlers when it truly consumes the enterElement event.

        Parameters:
        uri - Parameter passed to the element event.
        localName - Parameter passed to the element event.
        qname - Parameter passed to the element event.
        atts - Parameter passed to the element event.
        Throws:
        SAXException - for errors
      • onLeaveElementConsumed

        public void onLeaveElementConsumed​(String uri,
                                           String localName,
                                           String qname)
                                    throws SAXException
        Parameters:
        uri - Parameter passed to the element event.
        localName - Parameter passed to the element event.
        qname - Parameter passed to the element event.
        Throws:
        SAXException - for errors
      • getAttributeIndex

        public int getAttributeIndex​(String uri,
                                     String localname)
      • sendEnterElement

        public void sendEnterElement​(int threadId,
                                     String uri,
                                     String local,
                                     String qname,
                                     Attributes atts)
                              throws SAXException
        Description copied from interface: NGCCEventSource
        Sends an enter element event to the specified EventReceiver thread.
        Specified by:
        sendEnterElement in interface NGCCEventSource
        Parameters:
        threadId - Thread ID of the receiver that can handle this event
        uri - element uri
        local - element local name
        qname - element qname
        atts - element attributes
        Throws:
        SAXException - for errors
      • redirectSubtree

        public void redirectSubtree​(ContentHandler child,
                                    String uri,
                                    String local,
                                    String qname)
                             throws SAXException
        This method can be called only from the enterElement handler. The sub-tree rooted at the new element will be redirected to the specified ContentHandler.

        Currently active NGCCHandler will only receive the leaveElement event of the newly started element.

        Parameters:
        child - the new ContentHandler
        uri - Parameter passed to the enter element event. Used to simulate the startElement event for the new ContentHandler.
        local - Parameter passed to the enter element event. Used to simulate the startElement event for the new ContentHandler.
        qname - Parameter passed to the enter element event. Used to simulate the startElement event for the new ContentHandler.
        Throws:
        SAXException - for errors
      • resolveNamespacePrefix

        public String resolveNamespacePrefix​(String prefix)
      • trace

        public void trace​(String s)
      • traceln

        public void traceln​(String s)