Class UnwrapLinksEmitter

  • All Implemented Interfaces:
    javax.xml.transform.Result

    public class UnwrapLinksEmitter
    extends CopyEmitter

    Saxon extension to unwrap links in a result tree fragment.

    $Id: UnwrapLinksEmitter.java 1731 2002-06-26 11:03:05Z nwalsh $

    Copyright (C) 2000, 2002 Norman Walsh.

    This class provides the guts of a Saxon 6.* implementation of a link unwrapper.

    The general design is this: the stylesheets construct a result tree fragment for some environment. Then the result tree fragment is "replayed" through the UnwrapLinksEmitter; the UnwrapLinksEmitter builds a new result tree fragment from this event stream with top-level links unwrapped. That RTF is returned. Note that only a single level of unwrapping is performed. This is clearly a crude implementation.

    Change Log:

    1.0

    Initial release.

    • Field Summary

      Fields 
      Modifier and Type Field Description
      protected java.util.Stack elementStack
      A stack for the preserving information about open elements.
      protected boolean foStylesheet
      Is the stylesheet currently running an FO stylesheet?
      protected static java.lang.String foURI
      The FO namespace name.
      protected int htmlAFingerprint  
      protected boolean inSkip  
      protected int linkDepth
      Are we currently in a link? How deep?
      protected java.util.Stack saveStack  
      protected int skipDepth  
      protected boolean tryAgain  
      protected int xhtmlAFingerprint  
      protected static java.lang.String xhURI
      The XHTML namespace name.
      • Fields inherited from class com.icl.saxon.output.Emitter

        locator, outputProperties, outputStream, systemId, writer
      • Fields inherited from interface javax.xml.transform.Result

        PI_DISABLE_OUTPUT_ESCAPING, PI_ENABLE_OUTPUT_ESCAPING
    • Constructor Summary

      Constructors 
      Constructor Description
      UnwrapLinksEmitter​(com.icl.saxon.Controller controller, com.icl.saxon.om.NamePool namePool, boolean foStylesheet)
      Constructor for the UnwrapLinksEmitter.
    • Field Detail

      • elementStack

        protected java.util.Stack elementStack
        A stack for the preserving information about open elements.
      • saveStack

        protected java.util.Stack saveStack
      • foURI

        protected static java.lang.String foURI
        The FO namespace name.
      • xhURI

        protected static java.lang.String xhURI
        The XHTML namespace name.
      • foStylesheet

        protected boolean foStylesheet
        Is the stylesheet currently running an FO stylesheet?
      • linkDepth

        protected int linkDepth
        Are we currently in a link? How deep?
      • skipDepth

        protected int skipDepth
      • htmlAFingerprint

        protected int htmlAFingerprint
      • xhtmlAFingerprint

        protected int xhtmlAFingerprint
      • inSkip

        protected boolean inSkip
      • tryAgain

        protected boolean tryAgain
    • Constructor Detail

      • UnwrapLinksEmitter

        public UnwrapLinksEmitter​(com.icl.saxon.Controller controller,
                                  com.icl.saxon.om.NamePool namePool,
                                  boolean foStylesheet)

        Constructor for the UnwrapLinksEmitter.

        Parameters:
        namePool - The name pool to use for constructing elements and attributes.
        foStylesheet - Is this an FO stylesheet?
    • Method Detail

      • startElement

        public void startElement​(int nameCode,
                                 org.xml.sax.Attributes attributes,
                                 int[] namespaces,
                                 int nscount)
                          throws javax.xml.transform.TransformerException
        Process start element events.
        Overrides:
        startElement in class CopyEmitter
        Throws:
        javax.xml.transform.TransformerException
      • endElement

        public void endElement​(int nameCode)
                        throws javax.xml.transform.TransformerException
        Process end element events.
        Overrides:
        endElement in class CopyEmitter
        Throws:
        javax.xml.transform.TransformerException
      • tryAgain

        public boolean tryAgain()
                         throws javax.xml.transform.TransformerException
        Throws:
        javax.xml.transform.TransformerException