Package 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.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description private static class
FO2StructureTreeConverter.State
-
Field Summary
Fields Modifier and Type Field Description protected FOEventHandler
converter
The top of theconverters
stack.private java.util.Stack<FOEventHandler>
converters
private Event
currentNode
private FOEventHandler
eventSwallower
The descendants of some elements like fo:leader must be ignored.private Event
root
private java.util.Map<AbstractRetrieveMarker,FO2StructureTreeConverter.State>
states
private StructureTreeEventTrigger
structureTreeEventTrigger
-
Fields inherited from class org.apache.fop.fo.FOEventHandler
fontInfo, foUserAgent
-
-
Constructor Summary
Constructors Constructor Description FO2StructureTreeConverter(StructureTreeEventHandler structureTreeEventHandler, FOEventHandler delegate)
Creates a new instance.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
character(Character c)
Process a Character.void
characters(FOText foText)
Process character data.private void
content(Event event, boolean hasContent)
void
endBlock(Block bl)
void
endBlockContainer(BlockContainer blc)
void
endBody(TableBody body)
void
endCell(TableCell tc)
void
endColumn(TableColumn tc)
private void
endContent(Event event)
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.private void
handleEndArtifact(CommonAccessibilityHolder fobj)
private void
handleStartArtifact(CommonAccessibilityHolder fobj)
void
image(ExternalGraphic eg)
Process an ExternalGraphic.private boolean
isArtifact(CommonAccessibilityHolder fobj)
void
pageRef()
Process a pageRef.private void
restoreRetrieveMarkerState(AbstractRetrieveMarker retrieveMarker)
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)
private void
saveState(AbstractRetrieveMarker retrieveMarker)
void
startBlock(Block bl)
void
startBlockContainer(BlockContainer blc)
void
startBody(TableBody body)
void
startCell(TableCell tc)
void
startColumn(TableColumn tc)
private void
startContent(Event event, boolean hasContent)
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
-
-
-
-
Field Detail
-
converter
protected FOEventHandler converter
The top of theconverters
stack.
-
converters
private java.util.Stack<FOEventHandler> converters
-
structureTreeEventTrigger
private final StructureTreeEventTrigger structureTreeEventTrigger
-
eventSwallower
private final FOEventHandler eventSwallower
The descendants of some elements like fo:leader must be ignored.
-
states
private final java.util.Map<AbstractRetrieveMarker,FO2StructureTreeConverter.State> states
-
root
private Event root
-
currentNode
private Event currentNode
-
-
Constructor Detail
-
FO2StructureTreeConverter
public FO2StructureTreeConverter(StructureTreeEventHandler structureTreeEventHandler, FOEventHandler delegate)
Creates a new instance.- Parameters:
structureTreeEventHandler
- the object that will hold the structure treedelegate
- the FO event handler that must be wrapped by this instance
-
-
Method Detail
-
startContent
private void startContent(Event event, boolean hasContent)
-
content
private void content(Event event, boolean hasContent)
-
endContent
private void endContent(Event event)
-
startDocument
public void startDocument() throws org.xml.sax.SAXException
Description copied from class:FOEventHandler
This method is called to indicate the start of a new document run.- Overrides:
startDocument
in classDelegatingFOEventHandler
- Throws:
org.xml.sax.SAXException
- In case of a problem
-
endDocument
public void endDocument() throws org.xml.sax.SAXException
Description copied from class:FOEventHandler
This method is called to indicate the end of a document run.- Overrides:
endDocument
in classDelegatingFOEventHandler
- Throws:
org.xml.sax.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 classDelegatingFOEventHandler
- Parameters:
root
- element
-
endRoot
public void endRoot(Root root)
Description copied from class:FOEventHandler
Called upon end of root element.- Overrides:
endRoot
in classDelegatingFOEventHandler
- Parameters:
root
- element
-
startPageSequence
public void startPageSequence(PageSequence pageSeq)
- Overrides:
startPageSequence
in classDelegatingFOEventHandler
- Parameters:
pageSeq
- PageSequence that is starting.
-
endPageSequence
public void endPageSequence(PageSequence pageSeq)
- Overrides:
endPageSequence
in classDelegatingFOEventHandler
- Parameters:
pageSeq
- PageSequence that is ending.
-
startPageNumber
public void startPageNumber(PageNumber pagenum)
- Overrides:
startPageNumber
in classDelegatingFOEventHandler
- Parameters:
pagenum
- PageNumber that is starting.
-
endPageNumber
public void endPageNumber(PageNumber pagenum)
- Overrides:
endPageNumber
in classDelegatingFOEventHandler
- Parameters:
pagenum
- PageNumber that is ending.
-
startPageNumberCitation
public void startPageNumberCitation(PageNumberCitation pageCite)
- Overrides:
startPageNumberCitation
in classDelegatingFOEventHandler
- Parameters:
pageCite
- PageNumberCitation that is starting.
-
endPageNumberCitation
public void endPageNumberCitation(PageNumberCitation pageCite)
- Overrides:
endPageNumberCitation
in classDelegatingFOEventHandler
- Parameters:
pageCite
- PageNumberCitation that is ending.
-
startPageNumberCitationLast
public void startPageNumberCitationLast(PageNumberCitationLast pageLast)
- Overrides:
startPageNumberCitationLast
in classDelegatingFOEventHandler
- Parameters:
pageLast
- PageNumberCitationLast that is starting.
-
endPageNumberCitationLast
public void endPageNumberCitationLast(PageNumberCitationLast pageLast)
- Overrides:
endPageNumberCitationLast
in classDelegatingFOEventHandler
- 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 classDelegatingFOEventHandler
- 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 classDelegatingFOEventHandler
- 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 classDelegatingFOEventHandler
- Parameters:
fl
- Flow that is starting.
-
endFlow
public void endFlow(Flow fl)
- Overrides:
endFlow
in classDelegatingFOEventHandler
- Parameters:
fl
- Flow that is ending.
-
startBlock
public void startBlock(Block bl)
- Overrides:
startBlock
in classDelegatingFOEventHandler
- Parameters:
bl
- Block that is starting.
-
endBlock
public void endBlock(Block bl)
- Overrides:
endBlock
in classDelegatingFOEventHandler
- Parameters:
bl
- Block that is ending.
-
startBlockContainer
public void startBlockContainer(BlockContainer blc)
- Overrides:
startBlockContainer
in classDelegatingFOEventHandler
- Parameters:
blc
- BlockContainer that is starting.
-
endBlockContainer
public void endBlockContainer(BlockContainer blc)
- Overrides:
endBlockContainer
in classDelegatingFOEventHandler
- Parameters:
blc
- BlockContainer that is ending.
-
startInline
public void startInline(Inline inl)
- Overrides:
startInline
in classDelegatingFOEventHandler
- Parameters:
inl
- Inline that is starting.
-
endInline
public void endInline(Inline inl)
- Overrides:
endInline
in classDelegatingFOEventHandler
- Parameters:
inl
- Inline that is ending.
-
startTable
public void startTable(Table tbl)
- Overrides:
startTable
in classDelegatingFOEventHandler
- Parameters:
tbl
- Table that is starting.
-
endTable
public void endTable(Table tbl)
- Overrides:
endTable
in classDelegatingFOEventHandler
- Parameters:
tbl
- Table that is ending.
-
startColumn
public void startColumn(TableColumn tc)
- Overrides:
startColumn
in classDelegatingFOEventHandler
- Parameters:
tc
- TableColumn that is starting;
-
endColumn
public void endColumn(TableColumn tc)
- Overrides:
endColumn
in classDelegatingFOEventHandler
- Parameters:
tc
- TableColumn that is ending;
-
startHeader
public void startHeader(TableHeader header)
- Overrides:
startHeader
in classDelegatingFOEventHandler
- Parameters:
header
- TableHeader that is starting;
-
endHeader
public void endHeader(TableHeader header)
- Overrides:
endHeader
in classDelegatingFOEventHandler
- Parameters:
header
- TableHeader that is ending.
-
startFooter
public void startFooter(TableFooter footer)
- Overrides:
startFooter
in classDelegatingFOEventHandler
- Parameters:
footer
- TableFooter that is starting.
-
endFooter
public void endFooter(TableFooter footer)
- Overrides:
endFooter
in classDelegatingFOEventHandler
- Parameters:
footer
- TableFooter that is ending.
-
startBody
public void startBody(TableBody body)
- Overrides:
startBody
in classDelegatingFOEventHandler
- Parameters:
body
- TableBody that is starting.
-
endBody
public void endBody(TableBody body)
- Overrides:
endBody
in classDelegatingFOEventHandler
- Parameters:
body
- TableBody that is ending.
-
startRow
public void startRow(TableRow tr)
- Overrides:
startRow
in classDelegatingFOEventHandler
- Parameters:
tr
- TableRow that is starting.
-
endRow
public void endRow(TableRow tr)
- Overrides:
endRow
in classDelegatingFOEventHandler
- Parameters:
tr
- TableRow that is ending.
-
startCell
public void startCell(TableCell tc)
- Overrides:
startCell
in classDelegatingFOEventHandler
- Parameters:
tc
- TableCell that is starting.
-
endCell
public void endCell(TableCell tc)
- Overrides:
endCell
in classDelegatingFOEventHandler
- Parameters:
tc
- TableCell that is ending.
-
startList
public void startList(ListBlock lb)
- Overrides:
startList
in classDelegatingFOEventHandler
- Parameters:
lb
- ListBlock that is starting.
-
endList
public void endList(ListBlock lb)
- Overrides:
endList
in classDelegatingFOEventHandler
- Parameters:
lb
- ListBlock that is ending.
-
startListItem
public void startListItem(ListItem li)
- Overrides:
startListItem
in classDelegatingFOEventHandler
- Parameters:
li
- ListItem that is starting.
-
endListItem
public void endListItem(ListItem li)
- Overrides:
endListItem
in classDelegatingFOEventHandler
- 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 classDelegatingFOEventHandler
- 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 classDelegatingFOEventHandler
- 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 classDelegatingFOEventHandler
- 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 classDelegatingFOEventHandler
- Parameters:
listItemBody
- ListItemBody that is ending
-
startMarkup
public void startMarkup()
Description copied from class:FOEventHandler
Process start of a Markup.- Overrides:
startMarkup
in classDelegatingFOEventHandler
-
endMarkup
public void endMarkup()
Description copied from class:FOEventHandler
Process end of a Markup.- Overrides:
endMarkup
in classDelegatingFOEventHandler
-
startLink
public void startLink(BasicLink basicLink)
Description copied from class:FOEventHandler
Process start of a Link.- Overrides:
startLink
in classDelegatingFOEventHandler
- 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 classDelegatingFOEventHandler
- Parameters:
basicLink
- BasicLink that is ending
-
image
public void image(ExternalGraphic eg)
Description copied from class:FOEventHandler
Process an ExternalGraphic.- Overrides:
image
in classDelegatingFOEventHandler
- Parameters:
eg
- ExternalGraphic to process.
-
pageRef
public void pageRef()
Description copied from class:FOEventHandler
Process a pageRef.- Overrides:
pageRef
in classDelegatingFOEventHandler
-
startInstreamForeignObject
public void startInstreamForeignObject(InstreamForeignObject ifo)
Description copied from class:FOEventHandler
Process the start of an InstreamForeignObject.- Overrides:
startInstreamForeignObject
in classDelegatingFOEventHandler
- 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 classDelegatingFOEventHandler
- 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 classDelegatingFOEventHandler
- 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 classDelegatingFOEventHandler
- 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 classDelegatingFOEventHandler
- 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 classDelegatingFOEventHandler
- 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 classDelegatingFOEventHandler
- 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 classDelegatingFOEventHandler
- 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 classDelegatingFOEventHandler
- 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 classDelegatingFOEventHandler
- 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 classDelegatingFOEventHandler
- Parameters:
retrieveMarker
- the retrieve-marker that is starting
-
saveState
private void saveState(AbstractRetrieveMarker retrieveMarker)
-
endRetrieveMarker
public void endRetrieveMarker(RetrieveMarker retrieveMarker)
Description copied from class:FOEventHandler
Process the ending of a retrieve-marker.- Overrides:
endRetrieveMarker
in classDelegatingFOEventHandler
- 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 classDelegatingFOEventHandler
- Parameters:
retrieveMarker
- the fo:retrieve-marker element that is retrieving markers
-
restoreRetrieveMarkerState
private void restoreRetrieveMarkerState(AbstractRetrieveMarker retrieveMarker)
-
startRetrieveTableMarker
public void startRetrieveTableMarker(RetrieveTableMarker retrieveTableMarker)
Description copied from class:FOEventHandler
Process the start of a retrieve-table-marker.- Overrides:
startRetrieveTableMarker
in classDelegatingFOEventHandler
- 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 classDelegatingFOEventHandler
- Parameters:
retrieveTableMarker
- the retrieve-table-marker that is ending
-
restoreState
public void restoreState(RetrieveTableMarker retrieveTableMarker)
Description copied from class:FOEventHandler
- Overrides:
restoreState
in classDelegatingFOEventHandler
-
character
public void character(Character c)
Description copied from class:FOEventHandler
Process a Character.- Overrides:
character
in classDelegatingFOEventHandler
- Parameters:
c
- Character to process.
-
characters
public void characters(FOText foText)
Description copied from class:FOEventHandler
Process character data.- Overrides:
characters
in classDelegatingFOEventHandler
- 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 classDelegatingFOEventHandler
- 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 classDelegatingFOEventHandler
- Parameters:
document
- the external-document node
-
handleStartArtifact
private void handleStartArtifact(CommonAccessibilityHolder fobj)
-
handleEndArtifact
private void handleEndArtifact(CommonAccessibilityHolder fobj)
-
isArtifact
private boolean isArtifact(CommonAccessibilityHolder fobj)
-
-