Package com.nwalsh.saxon
Class UnwrapLinksEmitter
java.lang.Object
com.icl.saxon.output.Emitter
com.nwalsh.saxon.CopyEmitter
com.nwalsh.saxon.UnwrapLinksEmitter
- All Implemented Interfaces:
Result
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
FieldsModifier and TypeFieldDescriptionprotected Stack
A stack for the preserving information about open elements.protected boolean
Is the stylesheet currently running an FO stylesheet?protected static String
The FO namespace name.protected int
protected boolean
protected int
Are we currently in a link? How deep?protected Stack
protected int
protected boolean
protected int
protected static String
The XHTML namespace name.Fields inherited from class com.nwalsh.saxon.CopyEmitter
namePool, rtf, rtfEmitter
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
ConstructorsConstructorDescriptionUnwrapLinksEmitter
(com.icl.saxon.Controller controller, com.icl.saxon.om.NamePool namePool, boolean foStylesheet) Constructor for the UnwrapLinksEmitter. -
Method Summary
Modifier and TypeMethodDescriptionvoid
endElement
(int nameCode) Process end element events.void
startElement
(int nameCode, Attributes attributes, int[] namespaces, int nscount) Process start element events.boolean
tryAgain()
Methods inherited from class com.nwalsh.saxon.CopyEmitter
characters, comment, endDocument, getResultTreeFragment, processingInstruction, setDocumentLocator, setEscaping, setNamePool, setUnparsedEntity, setWriter, startDocument
Methods inherited from class com.icl.saxon.output.Emitter
getNamePool, getOutputProperties, getOutputStream, getSystemId, getWriter, makeEmitter, setOutputProperties, setOutputStream, setSystemId, usesWriter
-
Field Details
-
elementStack
A stack for the preserving information about open elements. -
saveStack
-
foURI
The FO namespace name. -
xhURI
The XHTML namespace name. -
foStylesheet
protected boolean foStylesheetIs the stylesheet currently running an FO stylesheet? -
linkDepth
protected int linkDepthAre 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 Details
-
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 Details
-
startElement
public void startElement(int nameCode, Attributes attributes, int[] namespaces, int nscount) throws TransformerException Process start element events.- Overrides:
startElement
in classCopyEmitter
- Throws:
TransformerException
-
endElement
Process end element events.- Overrides:
endElement
in classCopyEmitter
- Throws:
TransformerException
-
tryAgain
- Throws:
TransformerException
-