Class NGCCInterleaveFilter
- java.lang.Object
-
- com.sun.xml.xsom.impl.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)
-
-
Field Summary
Fields Modifier and Type Field Description protected NGCCEventReceiver[]
_receivers
event receiverse.
-
Constructor Summary
Constructors Modifier Constructor Description protected
NGCCInterleaveFilter(NGCCHandler parent, int cookie)
-
Method Summary
All Methods Instance Methods Abstract 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)
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)
-
-
-
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 interfaceNGCCEventSource
-
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 interfaceNGCCEventReceiver
- 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 interfaceNGCCEventReceiver
- 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 interfaceNGCCEventReceiver
- 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 interfaceNGCCEventReceiver
- Throws:
org.xml.sax.SAXException
-
text
public void text(java.lang.String value) throws org.xml.sax.SAXException
- Specified by:
text
in interfaceNGCCEventReceiver
- 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 interfaceNGCCEventSource
- 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 interfaceNGCCEventSource
- 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 interfaceNGCCEventSource
- 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 interfaceNGCCEventSource
- Throws:
org.xml.sax.SAXException
-
sendText
public void sendText(int threadId, java.lang.String value) throws org.xml.sax.SAXException
- Specified by:
sendText
in interfaceNGCCEventSource
- Throws:
org.xml.sax.SAXException
-
-