Class NamePoolConverter

All Implemented Interfaces:
Result, Receiver

public class NamePoolConverter extends ProxyReceiver
This class is a filter that passes all Receiver events through unchanged, except that it changes namecodes to allow for the source and the destination using different NamePools. This is necessary when a stylesheet has been constructed as a general document (e.g. as the result of a transformation) and is passed to newTemplates() to be compiled as a stylesheet.
Author:
Michael Kay
  • Field Details

  • Constructor Details

    • NamePoolConverter

      public NamePoolConverter(Receiver next, NamePool oldPool, NamePool newPool)
      Constructor
      Parameters:
      next - the next receiver in the pipeline
      oldPool - the old namepool
      newPool - th new namepool
  • Method Details

    • setUnderlyingReceiver

      public void setUnderlyingReceiver(Receiver receiver)
      Set the underlying emitter. This call is mandatory before using the Emitter. This version is modified from that of the parent class to avoid setting the namePool of the destination Receiver.
      Overrides:
      setUnderlyingReceiver in class ProxyReceiver
      Parameters:
      receiver - the underlying receiver, the one that is to receive events after processing by this filter.
    • startElement

      public void startElement(NodeName nameCode, SchemaType typeCode, int locationId, int properties) throws XPathException
      Output element start tag
      Specified by:
      startElement in interface Receiver
      Overrides:
      startElement in class ProxyReceiver
      Parameters:
      nameCode - integer code identifying the name of the element within the name pool.
      typeCode - integer code identifying the element's type within the name pool.
      locationId - an integer which can be interpreted using a LocationProvider to return information such as line number and system ID. If no location information is available, the value zero is supplied.
      properties - properties of the element node
      Throws:
      XPathException - if an error occurs
    • namespace

      public void namespace(NamespaceBinding namespaceBinding, int properties) throws XPathException
      Handle a namespace
      Specified by:
      namespace in interface Receiver
      Overrides:
      namespace in class ProxyReceiver
      Parameters:
      namespaceBinding - the prefix/uri pair representing the namespace binding
      properties - any special properties to be passed on this call
      Throws:
      XPathException - if an error occurs
    • attribute

      public void attribute(NodeName nameCode, SimpleType typeCode, CharSequence value, int locationId, int properties) throws XPathException
      Handle an attribute
      Specified by:
      attribute in interface Receiver
      Overrides:
      attribute in class ProxyReceiver
      Parameters:
      nameCode - The name of the attribute, as held in the name pool
      typeCode - The type of the attribute, as held in the name pool
      value - the string value of the attribute
      locationId - an integer which can be interpreted using a LocationProvider to return information such as line number and system ID. If no location information is available, the value zero is supplied.
      properties - Bit significant value. The following bits are defined:
      DISABLE_ESCAPING
      Disable escaping for this attribute
      NO_SPECIAL_CHARACTERS
      Attribute value contains no special characters
      Throws:
      XPathException - if an error occurs