com.sun.tools.jxc.gen.config
Class NGCCInterleaveFilter

java.lang.Object
  extended by com.sun.tools.jxc.gen.config.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.


Field Summary
protected  NGCCEventReceiver[] _receivers
          event receiverse.
 
Constructor Summary
protected NGCCInterleaveFilter(NGCCHandler parent, int cookie)
           
 
Method Summary
 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)
           
protected abstract  int findReceiverOfAttribute(java.lang.String uri, java.lang.String local)
          Returns the handler that can receive the given attribute, or null.
protected abstract  int findReceiverOfElement(java.lang.String uri, java.lang.String local)
          Implemented by the generated code to determine the handler that can receive the given element.
protected abstract  int findReceiverOfText()
          Returns the handler that can receive text events, or null.
 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)
           
protected  void setHandlers(NGCCEventReceiver[] receivers)
           
 void text(java.lang.String value)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

_receivers

protected NGCCEventReceiver[] _receivers
event receiverse.

Constructor Detail

NGCCInterleaveFilter

protected NGCCInterleaveFilter(NGCCHandler parent,
                               int cookie)
Method Detail

setHandlers

protected void setHandlers(NGCCEventReceiver[] receivers)

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

findReceiverOfElement

protected abstract int findReceiverOfElement(java.lang.String uri,
                                             java.lang.String local)
Implemented by the generated code to determine the handler that can receive the given element.

Returns:
Thread ID of the receiver that can handle this event, or -1 if none.

findReceiverOfAttribute

protected abstract int findReceiverOfAttribute(java.lang.String uri,
                                               java.lang.String local)
Returns the handler that can receive the given attribute, or null.


findReceiverOfText

protected abstract int findReceiverOfText()
Returns the handler that can receive text events, or null.


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