Package relaxngcc.parser.state

## Class NGCCInterleaveFilter

- java.lang.Object
- - relaxngcc.parser.state.NGCCInterleaveFilter

- All Implemented Interfaces:
    `NGCCEventReceiver`, `NGCCEventSource`

      public abstract class NGCCInterleaveFilter
      extends java.lang.Object
      implements NGCCEventSource, NGCCEventReceiver

  Dispatches incoming events into sub handlers appropriately so that the interleaving semantics will be correctly realized.
  Author:
    Kohsuke Kawaguchi (kk@kohsuke.org)

- - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `void` | `enterAttribute​(java.lang.String uri, java.lang.String localName, java.lang.String qname)` |
    `void` | `enterElement​(java.lang.String uri, java.lang.String localName, java.lang.String qname, org.xml.sax.Attributes atts)` |
    `void` | `joinByEnterAttribute​(NGCCEventReceiver source, java.lang.String uri, java.lang.String local, java.lang.String qname)` |
    `void` | `joinByEnterElement​(NGCCEventReceiver source, java.lang.String uri, java.lang.String local, java.lang.String qname, org.xml.sax.Attributes atts)` | Joins all the child receivers.
    `void` | `joinByLeaveAttribute​(NGCCEventReceiver source, java.lang.String uri, java.lang.String local, java.lang.String qname)` |
    `void` | `joinByLeaveElement​(NGCCEventReceiver source, java.lang.String uri, java.lang.String local, java.lang.String qname)` |
    `void` | `joinByText​(NGCCEventReceiver source, java.lang.String value)` |
    `void` | `leaveAttribute​(java.lang.String uri, java.lang.String localName, java.lang.String qname)` |
    `void` | `leaveElement​(java.lang.String uri, java.lang.String localName, java.lang.String qname)` |
    `int` | `replace​(NGCCEventReceiver oldHandler, NGCCEventReceiver newHandler)` | Replaces an old handler with a new handler, and returns ID of the EventReceiver thread.
    `void` | `sendEnterAttribute​(int threadId, java.lang.String uri, java.lang.String local, java.lang.String qname)` |
    `void` | `sendEnterElement​(int threadId, java.lang.String uri, java.lang.String local, java.lang.String qname, org.xml.sax.Attributes atts)` | Sends an enter element event to the specified EventReceiver thread.
    `void` | `sendLeaveAttribute​(int threadId, java.lang.String uri, java.lang.String local, java.lang.String qname)` |
    `void` | `sendLeaveElement​(int threadId, java.lang.String uri, java.lang.String local, java.lang.String qname)` |
    `void` | `sendText​(int threadId, java.lang.String value)` |
    `void` | `text​(java.lang.String value)` |

    - ### Methods inherited from class java.lang.Object

      `equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Method Detail

    - #### replace

          public int replace​(NGCCEventReceiver oldHandler,
                             NGCCEventReceiver newHandler)

      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`

    - #### enterElement

          public void enterElement​(java.lang.String uri,
                                   java.lang.String localName,
                                   java.lang.String qname,
                                   org.xml.sax.Attributes atts)
                            throws org.xml.sax.SAXException

      Specified by:
        `enterElement` in interface `NGCCEventReceiver`
      Throws:
        `org.xml.sax.SAXException`

    - #### leaveElement

          public void leaveElement​(java.lang.String uri,
                                   java.lang.String localName,
                                   java.lang.String qname)
                            throws org.xml.sax.SAXException

      Specified by:
        `leaveElement` in interface `NGCCEventReceiver`
      Throws:
        `org.xml.sax.SAXException`

    - #### enterAttribute

          public void enterAttribute​(java.lang.String uri,
                                     java.lang.String localName,
                                     java.lang.String qname)
                              throws org.xml.sax.SAXException

      Specified by:
        `enterAttribute` in interface `NGCCEventReceiver`
      Throws:
        `org.xml.sax.SAXException`

    - #### leaveAttribute

          public void leaveAttribute​(java.lang.String uri,
                                     java.lang.String localName,
                                     java.lang.String qname)
                              throws org.xml.sax.SAXException

      Specified by:
        `leaveAttribute` in interface `NGCCEventReceiver`
      Throws:
        `org.xml.sax.SAXException`

    - #### text

          public void text​(java.lang.String value)
                    throws org.xml.sax.SAXException

      Specified by:
        `text` in interface `NGCCEventReceiver`
      Throws:
        `org.xml.sax.SAXException`

    - #### joinByEnterElement

          public void joinByEnterElement​(NGCCEventReceiver source,
                                         java.lang.String uri,
                                         java.lang.String local,
                                         java.lang.String qname,
                                         org.xml.sax.Attributes atts)
                                  throws org.xml.sax.SAXException

      Joins all the child receivers.

      This method is called by a child receiver when it sees something that it cannot handle, or by this object itself when it sees an event that it can't process.

      This method forces children to move to its final state, then revert to the parent.

      Parameters:
        `source` - If this method is called by one of the child receivers, the receiver object. If this method is called by itself, null.
      Throws:
        `org.xml.sax.SAXException`

    - #### joinByLeaveElement

          public void joinByLeaveElement​(NGCCEventReceiver source,
                                         java.lang.String uri,
                                         java.lang.String local,
                                         java.lang.String qname)
                                  throws org.xml.sax.SAXException

      Throws:
        `org.xml.sax.SAXException`

    - #### joinByEnterAttribute

          public void joinByEnterAttribute​(NGCCEventReceiver source,
                                           java.lang.String uri,
                                           java.lang.String local,
                                           java.lang.String qname)
                                    throws org.xml.sax.SAXException

      Throws:
        `org.xml.sax.SAXException`

    - #### joinByLeaveAttribute

          public void joinByLeaveAttribute​(NGCCEventReceiver source,
                                           java.lang.String uri,
                                           java.lang.String local,
                                           java.lang.String qname)
                                    throws org.xml.sax.SAXException

      Throws:
        `org.xml.sax.SAXException`

    - #### joinByText

          public void joinByText​(NGCCEventReceiver source,
                                 java.lang.String value)
                          throws org.xml.sax.SAXException

      Throws:
        `org.xml.sax.SAXException`

    - #### sendEnterAttribute

          public void sendEnterAttribute​(int threadId,
                                         java.lang.String uri,
                                         java.lang.String local,
                                         java.lang.String qname)
                                  throws org.xml.sax.SAXException

      Specified by:
        `sendEnterAttribute` in interface `NGCCEventSource`
      Throws:
        `org.xml.sax.SAXException`

    - #### sendEnterElement

          public void sendEnterElement​(int threadId,
                                       java.lang.String uri,
                                       java.lang.String local,
                                       java.lang.String qname,
                                       org.xml.sax.Attributes atts)
                                throws org.xml.sax.SAXException

      Description copied from interface: `NGCCEventSource`
      Sends an enter element event to the specified EventReceiver thread.
      Specified by:
        `sendEnterElement` in interface `NGCCEventSource`
      Throws:
        `org.xml.sax.SAXException`

    - #### sendLeaveAttribute

          public void sendLeaveAttribute​(int threadId,
                                         java.lang.String uri,
                                         java.lang.String local,
                                         java.lang.String qname)
                                  throws org.xml.sax.SAXException

      Specified by:
        `sendLeaveAttribute` in interface `NGCCEventSource`
      Throws:
        `org.xml.sax.SAXException`

    - #### sendLeaveElement

          public void sendLeaveElement​(int threadId,
                                       java.lang.String uri,
                                       java.lang.String local,
                                       java.lang.String qname)
                                throws org.xml.sax.SAXException

      Specified by:
        `sendLeaveElement` in interface `NGCCEventSource`
      Throws:
        `org.xml.sax.SAXException`

    - #### sendText

          public void sendText​(int threadId,
                               java.lang.String value)
                        throws org.xml.sax.SAXException

      Specified by:
        `sendText` in interface `NGCCEventSource`
      Throws:
        `org.xml.sax.SAXException`