org.apache.fop.accessibility.fo

## Class FO2StructureTreeConverter

- java.lang.Object
- - org.apache.fop.fo.FOEventHandler
  - - org.apache.fop.fo.DelegatingFOEventHandler
    - - org.apache.fop.accessibility.fo.FO2StructureTreeConverter

    public class FO2StructureTreeConverter
    extends DelegatingFOEventHandler

Allows to create the structure tree of an FO document, by converting FO events into appropriate structure tree events.

### Field Summary

Fields
`protected FOEventHandler` `converter` The top of the `converters` stack.

### Fields inherited from class org.apache.fop.fo.FOEventHandler

`fontInfo, foUserAgent`

### Constructor Summary

Constructors
Constructor and Description
`FO2StructureTreeConverter(StructureTreeEventHandler structureTreeEventHandler, FOEventHandler delegate)` Creates a new instance.

### 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.
`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 `FOEventHandler.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 org.apache.fop.fo.DelegatingFOEventHandler

`getFontInfo, getResults, getUserAgent`

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

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

### Field Detail

#### converter

    protected FOEventHandler converter

The top of the `converters` stack.

### Constructor Detail

#### FO2StructureTreeConverter

    public FO2StructureTreeConverter(StructureTreeEventHandler structureTreeEventHandler,
                                     FOEventHandler delegate)

Creates a new instance.

Parameters:
  `structureTreeEventHandler` - the object that will hold the structure tree
  `delegate` - the FO event handler that must be wrapped by this instance

### Method Detail

#### startDocument

    public void startDocument()
                       throws SAXException

Description copied from class: `FOEventHandler`
This method is called to indicate the start of a new document run.

Overrides:
  `startDocument` in class `DelegatingFOEventHandler`
Throws:
  `SAXException` - In case of a problem

#### endDocument

    public void endDocument()
                     throws SAXException

Description copied from class: `FOEventHandler`
This method is called to indicate the end of a document run.

Overrides:
  `endDocument` in class `DelegatingFOEventHandler`
Throws:
  `SAXException` - In case of a problem

#### startRoot

    public void startRoot(Root root)

Description copied from class: `FOEventHandler`
Called upon start of root element.

Overrides:
  `startRoot` in class `DelegatingFOEventHandler`
Parameters:
  `root` - element

#### endRoot

    public void endRoot(Root root)

Description copied from class: `FOEventHandler`
Called upon end of root element.

Overrides:
  `endRoot` in class `DelegatingFOEventHandler`
Parameters:
  `root` - element

#### startPageSequence

    public void startPageSequence(PageSequence pageSeq)

Overrides:
  `startPageSequence` in class `DelegatingFOEventHandler`
Parameters:
  `pageSeq` - PageSequence that is starting.

#### endPageSequence

    public void endPageSequence(PageSequence pageSeq)

Overrides:
  `endPageSequence` in class `DelegatingFOEventHandler`
Parameters:
  `pageSeq` - PageSequence that is ending.

#### startPageNumber

    public void startPageNumber(PageNumber pagenum)

Overrides:
  `startPageNumber` in class `DelegatingFOEventHandler`
Parameters:
  `pagenum` - PageNumber that is starting.

#### endPageNumber

    public void endPageNumber(PageNumber pagenum)

Overrides:
  `endPageNumber` in class `DelegatingFOEventHandler`
Parameters:
  `pagenum` - PageNumber that is ending.

#### startPageNumberCitation

    public void startPageNumberCitation(PageNumberCitation pageCite)

Overrides:
  `startPageNumberCitation` in class `DelegatingFOEventHandler`
Parameters:
  `pageCite` - PageNumberCitation that is starting.

#### endPageNumberCitation

    public void endPageNumberCitation(PageNumberCitation pageCite)

Overrides:
  `endPageNumberCitation` in class `DelegatingFOEventHandler`
Parameters:
  `pageCite` - PageNumberCitation that is ending.

#### startPageNumberCitationLast

    public void startPageNumberCitationLast(PageNumberCitationLast pageLast)

Overrides:
  `startPageNumberCitationLast` in class `DelegatingFOEventHandler`
Parameters:
  `pageLast` - PageNumberCitationLast that is starting.

#### endPageNumberCitationLast

    public void endPageNumberCitationLast(PageNumberCitationLast pageLast)

Overrides:
  `endPageNumberCitationLast` in class `DelegatingFOEventHandler`
Parameters:
  `pageLast` - PageNumberCitationLast that is ending.

#### startStatic

    public void startStatic(StaticContent staticContent)

Description copied from class: `FOEventHandler`
Process start of a Static.

Overrides:
  `startStatic` in class `DelegatingFOEventHandler`
Parameters:
  `staticContent` - StaticContent that is starting

#### endStatic

    public void endStatic(StaticContent staticContent)

Description copied from class: `FOEventHandler`
Process end of a Static.

Overrides:
  `endStatic` in class `DelegatingFOEventHandler`
Parameters:
  `staticContent` - StaticContent that is ending

#### startFlow

    public void startFlow(Flow fl)

Description copied from class: `FOEventHandler`
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.

Overrides:
  `startFlow` in class `DelegatingFOEventHandler`
Parameters:
  `fl` - Flow that is starting.

#### endFlow

    public void endFlow(Flow fl)

Overrides:
  `endFlow` in class `DelegatingFOEventHandler`
Parameters:
  `fl` - Flow that is ending.

#### startBlock

    public void startBlock(Block bl)

Overrides:
  `startBlock` in class `DelegatingFOEventHandler`
Parameters:
  `bl` - Block that is starting.

#### endBlock

    public void endBlock(Block bl)

Overrides:
  `endBlock` in class `DelegatingFOEventHandler`
Parameters:
  `bl` - Block that is ending.

#### startBlockContainer

    public void startBlockContainer(BlockContainer blc)

Overrides:
  `startBlockContainer` in class `DelegatingFOEventHandler`
Parameters:
  `blc` - BlockContainer that is starting.

#### endBlockContainer

    public void endBlockContainer(BlockContainer blc)

Overrides:
  `endBlockContainer` in class `DelegatingFOEventHandler`
Parameters:
  `blc` - BlockContainer that is ending.

#### startInline

    public void startInline(Inline inl)

Overrides:
  `startInline` in class `DelegatingFOEventHandler`
Parameters:
  `inl` - Inline that is starting.

#### endInline

    public void endInline(Inline inl)

Overrides:
  `endInline` in class `DelegatingFOEventHandler`
Parameters:
  `inl` - Inline that is ending.

#### startTable

    public void startTable(Table tbl)

Overrides:
  `startTable` in class `DelegatingFOEventHandler`
Parameters:
  `tbl` - Table that is starting.

#### endTable

    public void endTable(Table tbl)

Overrides:
  `endTable` in class `DelegatingFOEventHandler`
Parameters:
  `tbl` - Table that is ending.

#### startColumn

    public void startColumn(TableColumn tc)

Overrides:
  `startColumn` in class `DelegatingFOEventHandler`
Parameters:
  `tc` - TableColumn that is starting;

#### endColumn

    public void endColumn(TableColumn tc)

Overrides:
  `endColumn` in class `DelegatingFOEventHandler`
Parameters:
  `tc` - TableColumn that is ending;

#### startHeader

    public void startHeader(TableHeader header)

Overrides:
  `startHeader` in class `DelegatingFOEventHandler`
Parameters:
  `header` - TableHeader that is starting;

#### endHeader

    public void endHeader(TableHeader header)

Overrides:
  `endHeader` in class `DelegatingFOEventHandler`
Parameters:
  `header` - TableHeader that is ending.

#### startFooter

    public void startFooter(TableFooter footer)

Overrides:
  `startFooter` in class `DelegatingFOEventHandler`
Parameters:
  `footer` - TableFooter that is starting.

#### endFooter

    public void endFooter(TableFooter footer)

Overrides:
  `endFooter` in class `DelegatingFOEventHandler`
Parameters:
  `footer` - TableFooter that is ending.

#### startBody

    public void startBody(TableBody body)

Overrides:
  `startBody` in class `DelegatingFOEventHandler`
Parameters:
  `body` - TableBody that is starting.

#### endBody

    public void endBody(TableBody body)

Overrides:
  `endBody` in class `DelegatingFOEventHandler`
Parameters:
  `body` - TableBody that is ending.

#### startRow

    public void startRow(TableRow tr)

Overrides:
  `startRow` in class `DelegatingFOEventHandler`
Parameters:
  `tr` - TableRow that is starting.

#### endRow

    public void endRow(TableRow tr)

Overrides:
  `endRow` in class `DelegatingFOEventHandler`
Parameters:
  `tr` - TableRow that is ending.

#### startCell

    public void startCell(TableCell tc)

Overrides:
  `startCell` in class `DelegatingFOEventHandler`
Parameters:
  `tc` - TableCell that is starting.

#### endCell

    public void endCell(TableCell tc)

Overrides:
  `endCell` in class `DelegatingFOEventHandler`
Parameters:
  `tc` - TableCell that is ending.

#### startList

    public void startList(ListBlock lb)

Overrides:
  `startList` in class `DelegatingFOEventHandler`
Parameters:
  `lb` - ListBlock that is starting.

#### endList

    public void endList(ListBlock lb)

Overrides:
  `endList` in class `DelegatingFOEventHandler`
Parameters:
  `lb` - ListBlock that is ending.

#### startListItem

    public void startListItem(ListItem li)

Overrides:
  `startListItem` in class `DelegatingFOEventHandler`
Parameters:
  `li` - ListItem that is starting.

#### endListItem

    public void endListItem(ListItem li)

Overrides:
  `endListItem` in class `DelegatingFOEventHandler`
Parameters:
  `li` - ListItem that is ending.

#### startListLabel

    public void startListLabel(ListItemLabel listItemLabel)

Description copied from class: `FOEventHandler`
Process start of a ListLabel.

Overrides:
  `startListLabel` in class `DelegatingFOEventHandler`
Parameters:
  `listItemLabel` - ListItemLabel that is starting

#### endListLabel

    public void endListLabel(ListItemLabel listItemLabel)

Description copied from class: `FOEventHandler`
Process end of a ListLabel.

Overrides:
  `endListLabel` in class `DelegatingFOEventHandler`
Parameters:
  `listItemLabel` - ListItemLabel that is ending

#### startListBody

    public void startListBody(ListItemBody listItemBody)

Description copied from class: `FOEventHandler`
Process start of a ListBody.

Overrides:
  `startListBody` in class `DelegatingFOEventHandler`
Parameters:
  `listItemBody` - ListItemBody that is starting

#### endListBody

    public void endListBody(ListItemBody listItemBody)

Description copied from class: `FOEventHandler`
Process end of a ListBody.

Overrides:
  `endListBody` in class `DelegatingFOEventHandler`
Parameters:
  `listItemBody` - ListItemBody that is ending

#### startMarkup

    public void startMarkup()

Description copied from class: `FOEventHandler`
Process start of a Markup.

Overrides:
  `startMarkup` in class `DelegatingFOEventHandler`

#### endMarkup

    public void endMarkup()

Description copied from class: `FOEventHandler`
Process end of a Markup.

Overrides:
  `endMarkup` in class `DelegatingFOEventHandler`

#### startLink

    public void startLink(BasicLink basicLink)

Description copied from class: `FOEventHandler`
Process start of a Link.

Overrides:
  `startLink` in class `DelegatingFOEventHandler`
Parameters:
  `basicLink` - BasicLink that is starting

#### endLink

    public void endLink(BasicLink basicLink)

Description copied from class: `FOEventHandler`
Process end of a Link.

Overrides:
  `endLink` in class `DelegatingFOEventHandler`
Parameters:
  `basicLink` - BasicLink that is ending

#### image

    public void image(ExternalGraphic eg)

Description copied from class: `FOEventHandler`
Process an ExternalGraphic.

Overrides:
  `image` in class `DelegatingFOEventHandler`
Parameters:
  `eg` - ExternalGraphic to process.

#### pageRef

    public void pageRef()

Description copied from class: `FOEventHandler`
Process a pageRef.

Overrides:
  `pageRef` in class `DelegatingFOEventHandler`

#### startInstreamForeignObject

    public void startInstreamForeignObject(InstreamForeignObject ifo)

Description copied from class: `FOEventHandler`
Process the start of an InstreamForeignObject.

Overrides:
  `startInstreamForeignObject` in class `DelegatingFOEventHandler`
Parameters:
  `ifo` - InstreamForeignObject that is starting

#### endInstreamForeignObject

    public void endInstreamForeignObject(InstreamForeignObject ifo)

Description copied from class: `FOEventHandler`
Process the end of an InstreamForeignObject.

Overrides:
  `endInstreamForeignObject` in class `DelegatingFOEventHandler`
Parameters:
  `ifo` - InstreamForeignObject that is ending

#### startFootnote

    public void startFootnote(Footnote footnote)

Description copied from class: `FOEventHandler`
Process the start of a footnote.

Overrides:
  `startFootnote` in class `DelegatingFOEventHandler`
Parameters:
  `footnote` - Footnote that is starting

#### endFootnote

    public void endFootnote(Footnote footnote)

Description copied from class: `FOEventHandler`
Process the ending of a footnote.

Overrides:
  `endFootnote` in class `DelegatingFOEventHandler`
Parameters:
  `footnote` - Footnote that is ending

#### startFootnoteBody

    public void startFootnoteBody(FootnoteBody body)

Description copied from class: `FOEventHandler`
Process the start of a footnote body.

Overrides:
  `startFootnoteBody` in class `DelegatingFOEventHandler`
Parameters:
  `body` - FootnoteBody that is starting

#### endFootnoteBody

    public void endFootnoteBody(FootnoteBody body)

Description copied from class: `FOEventHandler`
Process the ending of a footnote body.

Overrides:
  `endFootnoteBody` in class `DelegatingFOEventHandler`
Parameters:
  `body` - FootnoteBody that is ending

#### startLeader

    public void startLeader(Leader l)

Description copied from class: `FOEventHandler`
Process the start of a Leader.

Overrides:
  `startLeader` in class `DelegatingFOEventHandler`
Parameters:
  `l` - Leader that is starting

#### endLeader

    public void endLeader(Leader l)

Description copied from class: `FOEventHandler`
Process the end of a Leader.

Overrides:
  `endLeader` in class `DelegatingFOEventHandler`
Parameters:
  `l` - Leader that is ending

#### startWrapper

    public void startWrapper(Wrapper wrapper)

Description copied from class: `FOEventHandler`
Process the start of a wrapper.

Overrides:
  `startWrapper` in class `DelegatingFOEventHandler`
Parameters:
  `wrapper` - wrapper that is starting

#### endWrapper

    public void endWrapper(Wrapper wrapper)

Description copied from class: `FOEventHandler`
Process the ending of a wrapper.

Overrides:
  `endWrapper` in class `DelegatingFOEventHandler`
Parameters:
  `wrapper` - wrapper that is ending

#### startRetrieveMarker

    public void startRetrieveMarker(RetrieveMarker retrieveMarker)

Description copied from class: `FOEventHandler`
Process the start of a retrieve-marker.

Overrides:
  `startRetrieveMarker` in class `DelegatingFOEventHandler`
Parameters:
  `retrieveMarker` - the retrieve-marker that is starting

#### endRetrieveMarker

    public void endRetrieveMarker(RetrieveMarker retrieveMarker)

Description copied from class: `FOEventHandler`
Process the ending of a retrieve-marker.

Overrides:
  `endRetrieveMarker` in class `DelegatingFOEventHandler`
Parameters:
  `retrieveMarker` - the retrieve-marker that is ending

#### restoreState

    public void restoreState(RetrieveMarker retrieveMarker)

Description copied from class: `FOEventHandler`
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.

Overrides:
  `restoreState` in class `DelegatingFOEventHandler`
Parameters:
  `retrieveMarker` - the fo:retrieve-marker element that is retrieving markers

#### startRetrieveTableMarker

    public void startRetrieveTableMarker(RetrieveTableMarker retrieveTableMarker)

Description copied from class: `FOEventHandler`
Process the start of a retrieve-table-marker.

Overrides:
  `startRetrieveTableMarker` in class `DelegatingFOEventHandler`
Parameters:
  `retrieveTableMarker` - the retrieve-table-marker that is starting

#### endRetrieveTableMarker

    public void endRetrieveTableMarker(RetrieveTableMarker retrieveTableMarker)

Description copied from class: `FOEventHandler`
Process the ending of a retrieve-table-marker.

Overrides:
  `endRetrieveTableMarker` in class `DelegatingFOEventHandler`
Parameters:
  `retrieveTableMarker` - the retrieve-table-marker that is ending

#### restoreState

    public void restoreState(RetrieveTableMarker retrieveTableMarker)

Description copied from class: `FOEventHandler`
See `FOEventHandler.restoreState(RetrieveMarker)`.

Overrides:
  `restoreState` in class `DelegatingFOEventHandler`

#### character

    public void character(Character c)

Description copied from class: `FOEventHandler`
Process a Character.

Overrides:
  `character` in class `DelegatingFOEventHandler`
Parameters:
  `c` - Character to process.

#### characters

    public void characters(FOText foText)

Description copied from class: `FOEventHandler`
Process character data.

Overrides:
  `characters` in class `DelegatingFOEventHandler`
Parameters:
  `foText` - text to process

#### startExternalDocument

    public void startExternalDocument(ExternalDocument document)

Description copied from class: `FOEventHandler`
Process the start of the external-document extension.

Overrides:
  `startExternalDocument` in class `DelegatingFOEventHandler`
Parameters:
  `document` - the external-document node

#### endExternalDocument

    public void endExternalDocument(ExternalDocument document)

Description copied from class: `FOEventHandler`
Process the end of the external-document extension.

Overrides:
  `endExternalDocument` in class `DelegatingFOEventHandler`
Parameters:
  `document` - the external-document node