## com.nwalsh.saxon6
Class CalloutEmitter

    java.lang.Object
      |
      +--com.nwalsh.saxon6.CopyEmitter
            |
            +--com.nwalsh.saxon6.CalloutEmitter

public class CalloutEmitter
extends CopyEmitter

Saxon extension to decorate a result tree fragment with callouts.

$Id: CalloutEmitter.java,v 1.2 2000/11/28 23:05:55 ndw Exp $

Copyright (C) 2000 Norman Walsh.

This class provides the guts of a Saxon 6.* implementation of callouts for verbatim environments. (It is used by the Verbatim class.)

The general design is this: the stylesheets construct a result tree fragment for some verbatim environment. The Verbatim class initializes a CalloutEmitter with information about the callouts that should be applied to the verbatim environment in question. Then the result tree fragment is "replayed" through the CalloutEmitter; the CalloutEmitter builds a new result tree fragment from this event stream, decorated with callouts, and that is returned.

Change Log:

1.0

  Initial release.

See Also:
  `Verbatim`

Constructor Summary
`CalloutEmitter(com.icl.saxon.om.NamePool namePool, java.lang.String graphicsPath, java.lang.String graphicsExt, int graphicsMax, int defaultColumn, boolean foStylesheet)` Constructor for the CalloutEmitter.

Method Summary
`void` `characters(char[] chars, int start, int len)` Process characters.
`void` `endElement(int nameCode)` Process end element events.
`void` `setupCallouts(com.icl.saxon.expr.NodeSetIntent areaspecNodeSet)` Examine the areaspec and determine the number and position of callouts.
`void` `startElement(int nameCode, org.xml.sax.Attributes attributes, int[] namespaces, int nscount)` Process start element events.

Methods inherited from class com.nwalsh.saxon6.CopyEmitter
`comment, endDocument, getResultTreeFragment, processingInstruction, setCharacterSet, setDocumentLocator, setEscaping, setNamePool, setOutputDetails, setUnparsedEntity, setWriter, startDocument`

Methods inherited from class java.lang.Object
`equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Constructor Detail

### CalloutEmitter

    public CalloutEmitter(com.icl.saxon.om.NamePool namePool,
                          java.lang.String graphicsPath,
                          java.lang.String graphicsExt,
                          int graphicsMax,
                          int defaultColumn,
                          boolean foStylesheet)

  Constructor for the CalloutEmitter.

  Parameters:
    `namePool` - The name pool to use for constructing elements and attributes.
    `graphicsPath` - The path to callout number graphics.
    `graphicsExt` - The extension for callout number graphics.
    `graphicsMax` - The largest callout number that can be represented as a graphic.
    `defaultColumn` - The default column for callouts.
    `foStylesheet` - Is this an FO stylesheet?

Method Detail

### setupCallouts

    public void setupCallouts(com.icl.saxon.expr.NodeSetIntent areaspecNodeSet)

  Examine the areaspec and determine the number and position of callouts.

  The `areaspecNodeSet` is examined and a sorted list of the callouts is constructed.

  This data structure is used to augment the result tree fragment with callout bullets.

  Parameters:
    `areaspecNodeSet` - The source document <areaspec> element.

### characters

    public void characters(char[] chars,
                           int start,
                           int len)
                    throws org.xml.sax.SAXException

  Process characters.
  Overrides:
    characters in class CopyEmitter

### endElement

    public void endElement(int nameCode)
                    throws org.xml.sax.SAXException

  Process end element events.
  Overrides:
    endElement in class CopyEmitter

### startElement

    public void startElement(int nameCode,
                             org.xml.sax.Attributes attributes,
                             int[] namespaces,
                             int nscount)
                      throws org.xml.sax.SAXException

  Process start element events.
  Overrides:
    startElement in class CopyEmitter