org.apache.fop.fo

## Class FOEventHandler

- java.lang.Object
- - org.apache.fop.fo.FOEventHandler

Direct Known Subclasses:
  AreaTreeHandler, DelegatingFOEventHandler, RTFHandler

    public abstract class FOEventHandler
    extends Object

Abstract class defining what should be done with SAX events that map to XSL-FO input. The events are actually captured by fo/FOTreeBuilder, passed to the various fo Objects, which in turn, if needed, pass them to an instance of FOEventHandler. Sub-classes will generally fall into one of two categories: 1) a handler that actually builds an FO Tree from the events, or 2) a handler that builds a structured (as opposed to formatted) document, such as our MIF and RTF output targets.

### Field Summary

Fields
`protected FontInfo` `fontInfo` The Font information relevant for this document
`protected FOUserAgent` `foUserAgent` The FOUserAgent for this process

### Constructor Summary

Constructors
`protected` `FOEventHandler()` Constructor for sub-classes that do not need an `FOUserAgent` instance.
`` `FOEventHandler(FOUserAgent foUserAgent)` Main constructor

### Method Summary

All Methods Instance Methods Concrete Methods
`void` `character(Character c)` Process a Character.
`void` `characters(FOText foText)` Process character data.
`void` `endBlock(Block bl)`
`void` `endBlockContainer(BlockContainer blc)`
`void` `endBody(TableBody body)`
`void` `endCell(TableCell tc)`
`void` `endColumn(TableColumn tc)`
`void` `endDocument()` This method is called to indicate the end of a document run.
`void` `endExternalDocument(ExternalDocument document)` Process the end of the external-document extension.
`void` `endFlow(Flow fl)`
`void` `endFooter(TableFooter footer)`
`void` `endFootnote(Footnote footnote)` Process the ending of a footnote.
`void` `endFootnoteBody(FootnoteBody body)` Process the ending of a footnote body.
`void` `endHeader(TableHeader header)`
`void` `endInline(Inline inl)`
`void` `endInstreamForeignObject(InstreamForeignObject ifo)` Process the end of an InstreamForeignObject.
`void` `endLeader(Leader l)` Process the end of a Leader.
`void` `endLink(BasicLink basicLink)` Process end of a Link.
`void` `endList(ListBlock lb)`
`void` `endListBody(ListItemBody listItemBody)` Process end of a ListBody.
`void` `endListItem(ListItem li)`
`void` `endListLabel(ListItemLabel listItemLabel)` Process end of a ListLabel.
`void` `endMarkup()` Process end of a Markup.
`void` `endPageNumber(PageNumber pagenum)`
`void` `endPageNumberCitation(PageNumberCitation pageCite)`
`void` `endPageNumberCitationLast(PageNumberCitationLast pageLast)`
`void` `endPageSequence(PageSequence pageSeq)`
`void` `endRetrieveMarker(RetrieveMarker retrieveMarker)` Process the ending of a retrieve-marker.
`void` `endRetrieveTableMarker(RetrieveTableMarker retrieveTableMarker)` Process the ending of a retrieve-table-marker.
`void` `endRoot(Root root)` Called upon end of root element.
`void` `endRow(TableRow tr)`
`void` `endStatic(StaticContent staticContent)` Process end of a Static.
`void` `endTable(Table tbl)`
`void` `endWrapper(Wrapper wrapper)` Process the ending of a wrapper.
`FontInfo` `getFontInfo()` Retrieve the font information for this document
`FormattingResults` `getResults()` Get formatting results.
`FOUserAgent` `getUserAgent()` Returns the User Agent object associated with this FOEventHandler.
`void` `image(ExternalGraphic eg)` Process an ExternalGraphic.
`void` `pageRef()` Process a pageRef.
`void` `restoreState(RetrieveMarker retrieveMarker)` Restore the state of this event handler as it was when the given fo:retrieve-marker element was processed.
`void` `restoreState(RetrieveTableMarker retrieveTableMarker)` See `restoreState(RetrieveMarker)`.
`void` `startBlock(Block bl)`
`void` `startBlockContainer(BlockContainer blc)`
`void` `startBody(TableBody body)`
`void` `startCell(TableCell tc)`
`void` `startColumn(TableColumn tc)`
`void` `startDocument()` This method is called to indicate the start of a new document run.
`void` `startExternalDocument(ExternalDocument document)` Process the start of the external-document extension.
`void` `startFlow(Flow fl)` This method is called to indicate the start of a new fo:flow or fo:static-content.
`void` `startFooter(TableFooter footer)`
`void` `startFootnote(Footnote footnote)` Process the start of a footnote.
`void` `startFootnoteBody(FootnoteBody body)` Process the start of a footnote body.
`void` `startHeader(TableHeader header)`
`void` `startInline(Inline inl)`
`void` `startInstreamForeignObject(InstreamForeignObject ifo)` Process the start of an InstreamForeignObject.
`void` `startLeader(Leader l)` Process the start of a Leader.
`void` `startLink(BasicLink basicLink)` Process start of a Link.
`void` `startList(ListBlock lb)`
`void` `startListBody(ListItemBody listItemBody)` Process start of a ListBody.
`void` `startListItem(ListItem li)`
`void` `startListLabel(ListItemLabel listItemLabel)` Process start of a ListLabel.
`void` `startMarkup()` Process start of a Markup.
`void` `startPageNumber(PageNumber pagenum)`
`void` `startPageNumberCitation(PageNumberCitation pageCite)`
`void` `startPageNumberCitationLast(PageNumberCitationLast pageLast)`
`void` `startPageSequence(PageSequence pageSeq)`
`void` `startRetrieveMarker(RetrieveMarker retrieveMarker)` Process the start of a retrieve-marker.
`void` `startRetrieveTableMarker(RetrieveTableMarker retrieveTableMarker)` Process the start of a retrieve-table-marker.
`void` `startRoot(Root root)` Called upon start of root element.
`void` `startRow(TableRow tr)`
`void` `startStatic(StaticContent staticContent)` Process start of a Static.
`void` `startTable(Table tbl)`
`void` `startWrapper(Wrapper wrapper)` Process the start of a wrapper.

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Field Detail

#### foUserAgent

    protected FOUserAgent foUserAgent

The FOUserAgent for this process

#### fontInfo

    protected FontInfo fontInfo

The Font information relevant for this document

### Constructor Detail

#### FOEventHandler

    public FOEventHandler(FOUserAgent foUserAgent)

Main constructor

Parameters:
  `foUserAgent` - the apps.FOUserAgent instance for this process

#### FOEventHandler

    protected FOEventHandler()

Constructor for sub-classes that do not need an `FOUserAgent` instance.

### Method Detail

#### getUserAgent

    public FOUserAgent getUserAgent()

Returns the User Agent object associated with this FOEventHandler.

Returns:
  the User Agent object

#### getFontInfo

    public FontInfo getFontInfo()

Retrieve the font information for this document

Returns:
  the FontInfo instance for this document

#### startDocument

    public void startDocument()
                       throws SAXException

This method is called to indicate the start of a new document run.

Throws:
  `SAXException` - In case of a problem

#### endDocument

    public void endDocument()
                     throws SAXException

This method is called to indicate the end of a document run.

Throws:
  `SAXException` - In case of a problem

#### startRoot

    public void startRoot(Root root)

Called upon start of root element.

Parameters:
  `root` - element

#### endRoot

    public void endRoot(Root root)

Called upon end of root element.

Parameters:
  `root` - element

#### startPageSequence

    public void startPageSequence(PageSequence pageSeq)

Parameters:
  `pageSeq` - PageSequence that is starting.

#### endPageSequence

    public void endPageSequence(PageSequence pageSeq)

Parameters:
  `pageSeq` - PageSequence that is ending.

#### startPageNumber

    public void startPageNumber(PageNumber pagenum)

Parameters:
  `pagenum` - PageNumber that is starting.

#### endPageNumber

    public void endPageNumber(PageNumber pagenum)

Parameters:
  `pagenum` - PageNumber that is ending.

#### startPageNumberCitation

    public void startPageNumberCitation(PageNumberCitation pageCite)

Parameters:
  `pageCite` - PageNumberCitation that is starting.

#### endPageNumberCitation

    public void endPageNumberCitation(PageNumberCitation pageCite)

Parameters:
  `pageCite` - PageNumberCitation that is ending.

#### startPageNumberCitationLast

    public void startPageNumberCitationLast(PageNumberCitationLast pageLast)

Parameters:
  `pageLast` - PageNumberCitationLast that is starting.

#### endPageNumberCitationLast

    public void endPageNumberCitationLast(PageNumberCitationLast pageLast)

Parameters:
  `pageLast` - PageNumberCitationLast that is ending.

#### startStatic

    public void startStatic(StaticContent staticContent)

Process start of a Static.

Parameters:
  `staticContent` - StaticContent that is starting

#### endStatic

    public void endStatic(StaticContent staticContent)

Process end of a Static.

Parameters:
  `staticContent` - StaticContent that is ending

#### startFlow

    public void startFlow(Flow fl)

This method is called to indicate the start of a new fo:flow or fo:static-content. This method also handles fo:static-content tags, because the StaticContent class is derived from the Flow class.

Parameters:
  `fl` - Flow that is starting.

#### endFlow

    public void endFlow(Flow fl)

Parameters:
  `fl` - Flow that is ending.

#### startBlock

    public void startBlock(Block bl)

Parameters:
  `bl` - Block that is starting.

#### endBlock

    public void endBlock(Block bl)

Parameters:
  `bl` - Block that is ending.

#### startBlockContainer

    public void startBlockContainer(BlockContainer blc)

Parameters:
  `blc` - BlockContainer that is starting.

#### endBlockContainer

    public void endBlockContainer(BlockContainer blc)

Parameters:
  `blc` - BlockContainer that is ending.

#### startInline

    public void startInline(Inline inl)

Parameters:
  `inl` - Inline that is starting.

#### endInline

    public void endInline(Inline inl)

Parameters:
  `inl` - Inline that is ending.

#### startTable

    public void startTable(Table tbl)

Parameters:
  `tbl` - Table that is starting.

#### endTable

    public void endTable(Table tbl)

Parameters:
  `tbl` - Table that is ending.

#### startColumn

    public void startColumn(TableColumn tc)

Parameters:
  `tc` - TableColumn that is starting;

#### endColumn

    public void endColumn(TableColumn tc)

Parameters:
  `tc` - TableColumn that is ending;

#### startHeader

    public void startHeader(TableHeader header)

Parameters:
  `header` - TableHeader that is starting;

#### endHeader

    public void endHeader(TableHeader header)

Parameters:
  `header` - TableHeader that is ending.

#### startFooter

    public void startFooter(TableFooter footer)

Parameters:
  `footer` - TableFooter that is starting.

#### endFooter

    public void endFooter(TableFooter footer)

Parameters:
  `footer` - TableFooter that is ending.

#### startBody

    public void startBody(TableBody body)

Parameters:
  `body` - TableBody that is starting.

#### endBody

    public void endBody(TableBody body)

Parameters:
  `body` - TableBody that is ending.

#### startRow

    public void startRow(TableRow tr)

Parameters:
  `tr` - TableRow that is starting.

#### endRow

    public void endRow(TableRow tr)

Parameters:
  `tr` - TableRow that is ending.

#### startCell

    public void startCell(TableCell tc)

Parameters:
  `tc` - TableCell that is starting.

#### endCell

    public void endCell(TableCell tc)

Parameters:
  `tc` - TableCell that is ending.

#### startList

    public void startList(ListBlock lb)

Parameters:
  `lb` - ListBlock that is starting.

#### endList

    public void endList(ListBlock lb)

Parameters:
  `lb` - ListBlock that is ending.

#### startListItem

    public void startListItem(ListItem li)

Parameters:
  `li` - ListItem that is starting.

#### endListItem

    public void endListItem(ListItem li)

Parameters:
  `li` - ListItem that is ending.

#### startListLabel

    public void startListLabel(ListItemLabel listItemLabel)

Process start of a ListLabel.

Parameters:
  `listItemLabel` - ListItemLabel that is starting

#### endListLabel

    public void endListLabel(ListItemLabel listItemLabel)

Process end of a ListLabel.

Parameters:
  `listItemLabel` - ListItemLabel that is ending

#### startListBody

    public void startListBody(ListItemBody listItemBody)

Process start of a ListBody.

Parameters:
  `listItemBody` - ListItemBody that is starting

#### endListBody

    public void endListBody(ListItemBody listItemBody)

Process end of a ListBody.

Parameters:
  `listItemBody` - ListItemBody that is ending

#### startMarkup

    public void startMarkup()

Process start of a Markup.

#### endMarkup

    public void endMarkup()

Process end of a Markup.

#### startLink

    public void startLink(BasicLink basicLink)

Process start of a Link.

Parameters:
  `basicLink` - BasicLink that is starting

#### endLink

    public void endLink(BasicLink basicLink)

Process end of a Link.

Parameters:
  `basicLink` - BasicLink that is ending

#### image

    public void image(ExternalGraphic eg)

Process an ExternalGraphic.

Parameters:
  `eg` - ExternalGraphic to process.

#### pageRef

    public void pageRef()

Process a pageRef.

#### startInstreamForeignObject

    public void startInstreamForeignObject(InstreamForeignObject ifo)

Process the start of an InstreamForeignObject.

Parameters:
  `ifo` - InstreamForeignObject that is starting

#### endInstreamForeignObject

    public void endInstreamForeignObject(InstreamForeignObject ifo)

Process the end of an InstreamForeignObject.

Parameters:
  `ifo` - InstreamForeignObject that is ending

#### startFootnote

    public void startFootnote(Footnote footnote)

Process the start of a footnote.

Parameters:
  `footnote` - Footnote that is starting

#### endFootnote

    public void endFootnote(Footnote footnote)

Process the ending of a footnote.

Parameters:
  `footnote` - Footnote that is ending

#### startFootnoteBody

    public void startFootnoteBody(FootnoteBody body)

Process the start of a footnote body.

Parameters:
  `body` - FootnoteBody that is starting

#### endFootnoteBody

    public void endFootnoteBody(FootnoteBody body)

Process the ending of a footnote body.

Parameters:
  `body` - FootnoteBody that is ending

#### startLeader

    public void startLeader(Leader l)

Process the start of a Leader.

Parameters:
  `l` - Leader that is starting

#### endLeader

    public void endLeader(Leader l)

Process the end of a Leader.

Parameters:
  `l` - Leader that is ending

#### startWrapper

    public void startWrapper(Wrapper wrapper)

Process the start of a wrapper.

Parameters:
  `wrapper` - wrapper that is starting

#### endWrapper

    public void endWrapper(Wrapper wrapper)

Process the ending of a wrapper.

Parameters:
  `wrapper` - wrapper that is ending

#### startRetrieveMarker

    public void startRetrieveMarker(RetrieveMarker retrieveMarker)

Process the start of a retrieve-marker.

Parameters:
  `retrieveMarker` - the retrieve-marker that is starting

#### endRetrieveMarker

    public void endRetrieveMarker(RetrieveMarker retrieveMarker)

Process the ending of a retrieve-marker.

Parameters:
  `retrieveMarker` - the retrieve-marker that is ending

#### restoreState

    public void restoreState(RetrieveMarker retrieveMarker)

Restore the state of this event handler as it was when the given fo:retrieve-marker element was processed. This method is called at marker retrieval time, so that events for the marker descendants are fired within the proper context.

The default implementation of this method does nothing.

Parameters:
  `retrieveMarker` - the fo:retrieve-marker element that is retrieving markers

#### startRetrieveTableMarker

    public void startRetrieveTableMarker(RetrieveTableMarker retrieveTableMarker)

Process the start of a retrieve-table-marker.

Parameters:
  `retrieveTableMarker` - the retrieve-table-marker that is starting

#### endRetrieveTableMarker

    public void endRetrieveTableMarker(RetrieveTableMarker retrieveTableMarker)

Process the ending of a retrieve-table-marker.

Parameters:
  `retrieveTableMarker` - the retrieve-table-marker that is ending

#### restoreState

    public void restoreState(RetrieveTableMarker retrieveTableMarker)

See `restoreState(RetrieveMarker)`.

#### character

    public void character(Character c)

Process a Character.

Parameters:
  `c` - Character to process.

#### characters

    public void characters(FOText foText)

Process character data.

Parameters:
  `foText` - text to process

#### startExternalDocument

    public void startExternalDocument(ExternalDocument document)

Process the start of the external-document extension.

Parameters:
  `document` - the external-document node

#### endExternalDocument

    public void endExternalDocument(ExternalDocument document)

Process the end of the external-document extension.

Parameters:
  `document` - the external-document node

#### getResults

    public FormattingResults getResults()

Get formatting results.

Returns:
  the FormattingResults instance for this document