net.sf.saxon.pull
Class ElementNameTracker

java.lang.Object
  extended by net.sf.saxon.pull.PullFilter
      extended by net.sf.saxon.pull.ElementNameTracker
All Implemented Interfaces:
PullProvider

public class ElementNameTracker
extends PullFilter

This is a filter that can be added to a pull pipeline to remember element names so that they are available immediately after the END_ELEMENT event is notified


Field Summary
 
Fields inherited from interface net.sf.saxon.pull.PullProvider
ATOMIC_VALUE, ATTRIBUTE, COMMENT, END_DOCUMENT, END_ELEMENT, END_OF_INPUT, NAMESPACE, PROCESSING_INSTRUCTION, START_DOCUMENT, START_ELEMENT, START_OF_INPUT, TEXT
 
Constructor Summary
ElementNameTracker(PullProvider base)
           
 
Method Summary
 int getNameCode()
          Get the nameCode identifying the name of the current node.
 int next()
          Get the next event.
 
Methods inherited from class net.sf.saxon.pull.PullFilter
close, current, getAtomicValue, getAttributes, getFingerprint, getNamePool, getNamespaceDeclarations, getPipelineConfiguration, getSourceLocator, getStringValue, getTypeAnnotation, getUnderlyingProvider, getUnparsedEntities, setPipelineConfiguration, skipToMatchingEnd
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ElementNameTracker

public ElementNameTracker(PullProvider base)
Method Detail

next

public int next()
         throws XPathException
Get the next event.

Note that a subclass that overrides this method is responsible for ensuring that current() works properly. This can be achieved by setting the field currentEvent to the event returned by any call on next().

Specified by:
next in interface PullProvider
Overrides:
next in class PullFilter
Returns:
an integer code indicating the type of event. The code PullProvider.END_OF_INPUT is returned at the end of the sequence.
Throws:
XPathException

getNameCode

public int getNameCode()
Get the nameCode identifying the name of the current node. This method can be used after the PullProvider.START_ELEMENT, PullProvider.PROCESSING_INSTRUCTION, PullProvider.ATTRIBUTE, or PullProvider.NAMESPACE events. With some PullProvider implementations, including this one, it can also be used after PullProvider.END_ELEMENT: in fact, that is the main purpose of this class. If called at other times, the result is undefined and may result in an IllegalStateException. If called when the current node is an unnamed namespace node (a node representing the default namespace) the returned value is -1.

Specified by:
getNameCode in interface PullProvider
Overrides:
getNameCode in class PullFilter
Returns:
the nameCode. The nameCode can be used to obtain the prefix, local name, and namespace URI from the name pool.


Copyright (C) Michael H. Kay. All rights reserved.