Class FoAggregateSink
- All Implemented Interfaces:
LogEnabled,Markup,XmlMarkup,FoMarkup,Sink
FoAggregateSink sink = new FoAggregateSink( writer ); sink.setDocumentModel( documentModel ); sink.beginDocument(); sink.coverPage(); sink.toc(); ... sink.endDocument();Note: the documentModel object contains several document metadata, but only a few of them are used in this sink (i.e. author, confidential, date and title), the others are ignored.
- Since:
- 1.1
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate intCounts the current chapter level.private static final Stringprivate DocumentModelThe document model to be used by this sink.private StringName of the source file of the current document, relative to the source root.private StringTitle of the chapter, used in the page header.private booleanContent in head is ignored in aggregated documents.static final intTable Of Content at the end of the document.static final intNo Table Of Content.static final intTable Of Content at the start of the document.private intCurrent position of the TOC, seeinvalid reference
#TOC_POSITIONprivate final Stack<NumberedListItem> Used to get the current position in the TOC.Fields inherited from class org.apache.maven.doxia.module.fo.FoSink
inlineStack, warnMessagesFields inherited from interface org.apache.maven.doxia.module.fo.FoMarkup
BASIC_LINK_TAG, BLOCK_TAG, BOOKMARK_TAG, BOOKMARK_TITLE_TAG, BOOKMARK_TREE_TAG, FLOW_TAG, FO_NAMESPACE, INLINE_TAG, LAYOUT_MASTER_SET_TAG, LEADER_TAG, LIST_BLOCK_TAG, LIST_ITEM_BODY_TAG, LIST_ITEM_LABEL_TAG, LIST_ITEM_TAG, PAGE_NUMBER_CITATION_TAG, PAGE_NUMBER_TAG, PAGE_SEQUENCE_TAG, REGION_AFTER_TAG, REGION_BEFORE_TAG, REGION_BODY_TAG, ROOT_TAG, SIMPLE_PAGE_MASTER_TAG, STATIC_CONTENT_TAG, TABLE_AND_CAPTION_TAG, TABLE_BODY_TAG, TABLE_CAPTION_TAG, TABLE_CELL_TAG, TABLE_COLUMN_TAG, TABLE_ROW_TAG, TABLE_TAGFields inherited from interface org.apache.maven.doxia.markup.Markup
COLON, EOL, EQUAL, GREATER_THAN, LEFT_CURLY_BRACKET, LEFT_SQUARE_BRACKET, LESS_THAN, MINUS, PLUS, QUOTE, RIGHT_CURLY_BRACKET, RIGHT_SQUARE_BRACKET, SEMICOLON, SLASH, SPACE, STARFields inherited from interface org.apache.maven.doxia.sink.Sink
JUSTIFY_CENTER, JUSTIFY_LEFT, JUSTIFY_RIGHT, NUMBERING_DECIMAL, NUMBERING_LOWER_ALPHA, NUMBERING_LOWER_ROMAN, NUMBERING_UPPER_ALPHA, NUMBERING_UPPER_ROMAN, ROLE, SECTION_LEVEL_1, SECTION_LEVEL_2, SECTION_LEVEL_3, SECTION_LEVEL_4, SECTION_LEVEL_5, SECTION_LEVEL_6Fields inherited from interface org.apache.maven.doxia.markup.XmlMarkup
BANG, CDATA, DOCTYPE_START, ENTITY_START, XML_NAMESPACE -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidStarts an element which defines an anchor.voidanchor(String name, SinkEventAttributes attributes) Starts an element which defines an anchor.voidauthor()Starts an author element.voidauthor(SinkEventAttributes attributes) Starts an author element.voidauthor_()Ends an author element.voidbody()Starts the body of a document.voidbody(SinkEventAttributes attributes) Starts the body of a document.voidbody_()Ends the body element.protected voidchapterHeading(String headerText, boolean chapterNumber) Writes a chapter heading.private StringchopExtension(String name) protected voidWrites content, escaping special characters.voidWrites a cover page.private Stringvoiddate()Starts the date element.voiddate(SinkEventAttributes attributes) Starts the date element.voiddate_()Ends the date element.voidfigureGraphics(String name) Adding a source of a graphic.voidfigureGraphics(String src, SinkEventAttributes attributes) Adds a graphic element.private ResourceBundleprotected StringReturns the current chapter number as a string.protected StringReturns the text to write in the footer of each page.private SinkEventAttributeSetgetGraphicsAttributes(String logo) protected StringReturns the text to write in the header of each page.private StringTranslates the given name to a usable id.voidhead()Starts the head element.voidhead(SinkEventAttributes attributes) Starts the head element.voidhead_()Ends the head element.voidStarts an element which defines a link.voidlink(String name, SinkEventAttributes attributes) Starts a link.protected voidnewline()Writes EOL.protected voidWrites a fo:bookmark-tree.protected voidregionAfter(String footerText) Writes a 'xsl-region-after' block.protected voidregionBefore(String headerText) Writes a 'xsl-region-before' block.private voidrenderBookmarkItems(List<DocumentTOCItem> items) private StringvoidsetDocumentModel(DocumentModel model) Sets the DocumentModel to be used by this sink.voidsetDocumentModel(DocumentModel model, int tocPos) Sets the DocumentModel to be used by this sink.voidsetDocumentName(String name) Sets the name of the current source document, relative to the source root.voidsetDocumentTitle(String title) Sets the title of the current document.protected voidstartPageSequence(String headerText, String footerText) Starts a page sequence, depending on the current chapter.voidtitle()Starts the title element.voidtitle(SinkEventAttributes attributes) Starts the title element.voidtitle_()Ends the title element.voidtoc()Writes a table of contents.protected voidWrite a text to the sink.private voidwriteCoverBody(DocumentCover cover, DocumentMeta meta) private voidwriteCoverFooter(DocumentCover cover, DocumentMeta meta) private voidwriteCoverHead(DocumentCover cover) protected voidwriteEmptyTag(HTML.Tag tag, String attributeId) Writes a simple tag, appending EOL.protected voidEnds a Tag without writing an EOL.protected voidWrites a text, appending EOL.protected voidwriteStartTag(HTML.Tag tag, String attributeId) Writes a start tag, prepending EOL.protected voidwriteStartTag(HTML.Tag tag, String id, String name) Writes a start tag, prepending EOL.private voidwriteTocItems(List<DocumentTOCItem> tocItems, int level) Methods inherited from class org.apache.maven.doxia.module.fo.FoSink
anchor_, beginDocument, bold, bold_, close, comment, definedTerm, definedTerm, definedTerm_, definition, definition, definition_, definitionList, definitionList, definitionList_, definitionListItem, definitionListItem, definitionListItem_, endDocument, escaped, figure, figure, figure_, figureCaption, figureCaption, figureCaption_, flush, getFoConfiguration, horizontalRule, horizontalRule, init, inline, inline, inline_, isFigure, italic, italic_, lineBreak, lineBreak, link_, list, list, list_, listItem, listItem, listItem_, load, logMessage, monospaced, monospaced_, nonBreakingSpace, numberedList, numberedList, numberedList_, numberedListItem, numberedListItem, numberedListItem_, pageBreak, paragraph, paragraph, paragraph_, rawText, resetSectionCounter, section, section_, section1, section1_, section2, section2_, section3, section3_, section4, section4_, section5, section5_, sectionTitle, sectionTitle, sectionTitle_, sectionTitle_, sectionTitle1, sectionTitle1_, sectionTitle2, sectionTitle2_, sectionTitle3, sectionTitle3_, sectionTitle4, sectionTitle4_, sectionTitle5, sectionTitle5_, startPageSequence, table, table, table_, tableCaption, tableCaption, tableCaption_, tableCell, tableCell, tableCell, tableCell_, tableHeaderCell, tableHeaderCell, tableHeaderCell, tableHeaderCell_, tableRow, tableRow, tableRow_, tableRows, tableRows_, text, text, unknown, verbatim, verbatim, verbatim_, writeEmptyTag, writeStartTag, writeStartTagMethods inherited from class org.apache.maven.doxia.sink.impl.AbstractXmlSink
getNameSpace, setInsertNewline, setNameSpace, writeEOL, writeSimpleTag, writeSimpleTag, writeStartTag, writeStartTagMethods inherited from class org.apache.maven.doxia.sink.impl.SinkAdapter
address, address, address_, article, article, article_, blockquote, blockquote, blockquote_, content, content, content_, data, data, data_, division, division, division_, footer, footer, footer_, header, header, header_, lineBreakOpportunity, lineBreakOpportunity, navigation, navigation, navigation_, section6, section6_, sectionTitle6, sectionTitle6_, sidebar, sidebar, sidebar_, time, time, time_Methods inherited from class org.apache.maven.doxia.sink.impl.AbstractSink
enableLogging, getLog, unifyEOLs
-
Field Details
-
TOC_NONE
public static final int TOC_NONENo Table Of Content.- See Also:
-
TOC_START
public static final int TOC_STARTTable Of Content at the start of the document.- See Also:
-
TOC_END
public static final int TOC_ENDTable Of Content at the end of the document.- See Also:
-
COVER_HEADER_HEIGHT
- See Also:
-
docModel
The document model to be used by this sink. -
chapter
private int chapterCounts the current chapter level. -
docName
Name of the source file of the current document, relative to the source root. -
docTitle
Title of the chapter, used in the page header. -
ignoreText
private boolean ignoreTextContent in head is ignored in aggregated documents. -
tocPosition
private int tocPositionCurrent position of the TOC, seeinvalid reference
#TOC_POSITION -
tocStack
Used to get the current position in the TOC.
-
-
Constructor Details
-
FoAggregateSink
Constructor.- Parameters:
writer- The writer for writing the result.
-
-
Method Details
-
head
public void head()Starts the head element. -
head
Starts the head element.This contains information about the current document, (eg its title) that is not considered document content. The head element is optional but if it exists, it has to be unique within a sequence of Sink events that produces one output document, and it has to come before the
Sink.body(SinkEventAttributes)element.The canonical sequence of events for the head element is:
sink.head(); sink.title(); sink.text( "Title" ); sink.title_(); sink.author(); sink.text( "Author" ); sink.author_(); sink.date(); sink.text( "Date" ); sink.date_(); sink.head_();
but none of the enclosed events is required. However, if they exist they have to occur in the order shown, and the title() and date() events have to be unique (author() events may occur any number of times).
Supported attributes are:
PROFILE,LANG.- Specified by:
headin interfaceSink- Overrides:
headin classFoSink- Parameters:
attributes- A set ofSinkEventAttributes, may benull.
-
head_
public void head_()Ends the head element. -
title
public void title()Starts the title element. -
title
Starts the title element. This is used to identify the document.Supported attributes are the
base attributes.- Specified by:
titlein interfaceSink- Overrides:
titlein classFoSink- Parameters:
attributes- A set ofSinkEventAttributes, may benull.- See Also:
-
title_
public void title_()Ends the title element. -
author
public void author()Starts an author element. -
author
Starts an author element. This is used to identify the author of the document.Supported attributes are:
EMAIL.- Specified by:
authorin interfaceSink- Overrides:
authorin classFoSink- Parameters:
attributes- A set ofSinkEventAttributes, may benull.- See Also:
-
author_
public void author_()Ends an author element. -
date
public void date()Starts the date element. -
date
Starts the date element. This is used to identify the date of the document: there is no strict definition if it is creation date or last modification date, which are the 2 classical semantics. There is no formal formatting requirements either.
The date is recommended (but it is not a requirement) to be aligned to the ISO-8601 standard, i.e.:YYYY-MM-DD
whereYYYYis the year in the Gregorian calendar,MMis the month of the year between 01 (January) and 12 (December),- and
DDis the day of the month between 01 and 31.
Supported attributes are: none.
- Specified by:
datein interfaceSink- Overrides:
datein classFoSink- Parameters:
attributes- A set ofSinkEventAttributes, may benull.- See Also:
-
date_
public void date_()Ends the date element. -
body
public void body()Starts the body of a document. -
body
Starts the body of a document. This contains the document's content.Supported attributes are the
base attributes.- Specified by:
bodyin interfaceSink- Overrides:
bodyin classFoSink- Parameters:
attributes- A set ofSinkEventAttributes, may benull.- See Also:
-
body_
public void body_()Ends the body element. -
setDocumentTitle
Sets the title of the current document. This is used as a chapter title in the page header.- Parameters:
title- the title of the current document.
-
setDocumentName
Sets the name of the current source document, relative to the source root. Used to resolve links to other source documents.- Parameters:
name- the name for the current document.
-
setDocumentModel
Sets the DocumentModel to be used by this sink. The DocumentModel provides all the meta-information required to render a document, eg settings for the cover page, table of contents, etc.
By default, a TOC will be added at the beginning of the document.- Parameters:
model- the DocumentModel.- See Also:
-
setDocumentModel
Sets the DocumentModel to be used by this sink. The DocumentModel provides all the meta-information required to render a document, eg settings for the cover page, table of contents, etc. -
getIdName
Translates the given name to a usable id. Prepends "./" and strips any extension.- Parameters:
name- the name for the current document.- Returns:
- String
-
figureGraphics
Adding a source of a graphic.- Specified by:
figureGraphicsin interfaceSink- Overrides:
figureGraphicsin classFoSink- Parameters:
name- the source
-
figureGraphics
Adds a graphic element.The
srcparameter should be a valid link, ie it can be an absolute URL or a link relative to the current source document.Supported attributes are the
base attributesplus:SRC,ALT,WIDTH,HEIGHT,ALIGN,BORDER,HSPACE,VSPACE,ISMAP,USEMAP.If the
SRCattribute is specified in SinkEventAttributes, it will be overridden by thesrcparameter.- Specified by:
figureGraphicsin interfaceSink- Overrides:
figureGraphicsin classFoSink- Parameters:
src- the image source, a valid URL.attributes- A set ofSinkEventAttributes, may benull.- See Also:
-
anchor
Starts an element which defines an anchor. -
anchor
Starts an element which defines an anchor.The
nameparameter has to be a valid SGML NAME token. According to the HTML 4.01 specification section 6.2 SGML basic types:ID and NAME tokens must begin with a letter ([A-Za-z]) and may be followed by any number of letters, digits ([0-9]), hyphens ("-"), underscores ("_"), colons (":"), and periods (".").
Supported attributes are the
base attributes. IfNAMEis specified in the SinkEventAttributes, it will be overwritten by thenameparameter.- Specified by:
anchorin interfaceSink- Overrides:
anchorin classFoSink- Parameters:
name- the name of the anchor. This has to be a valid SGML NAME token.attributes- A set ofSinkEventAttributes, may benull.
-
link
Starts an element which defines a link. -
link
Starts a link.The
nameparameter has to be a valid htmlhrefparameter, ie for internal links (links to an anchor within the same source document),nameshould start with the character "#".Supported attributes are the
base attributesplus:CHARSET,COORDS,HREF,HREFLANG,REL,REV,SHAPE,TARGET,TYPE.If
HREFis specified in the SinkEventAttributes, it will be overwritten by thenameparameter.- Specified by:
linkin interfaceSink- Overrides:
linkin classFoSink- Parameters:
name- the name of the link.attributes- A set ofSinkEventAttributes, may benull.
-
resolveLinkRelativeToBase
-
chopExtension
-
writeStartTag
Writes a start tag, prepending EOL.- Overrides:
writeStartTagin classFoSink- Parameters:
tag- The tag.attributeId- An id identifying the attribute set.
-
writeStartTag
Writes a start tag, prepending EOL.- Overrides:
writeStartTagin classFoSink- Parameters:
tag- The tag.id- An id to add.name- The name (value) of the id.
-
writeEndTag
Ends a Tag without writing an EOL. For instance:</tag>
.- Overrides:
writeEndTagin classFoSink- Parameters:
t- aHTML.Tagobject.
-
writeEmptyTag
Writes a simple tag, appending EOL.- Overrides:
writeEmptyTagin classFoSink- Parameters:
tag- The tag name.attributeId- An id identifying the attribute set.
-
write
Write a text to the sink. Writes a text, swallowing any exceptions. -
writeln
Writes a text, appending EOL. -
content
Writes content, escaping special characters. -
newline
protected void newline()Writes EOL. -
startPageSequence
Starts a page sequence, depending on the current chapter.- Parameters:
headerText- The text to write in the header, if null, nothing is written.footerText- The text to write in the footer, if null, nothing is written.
-
getHeaderText
Returns the text to write in the header of each page.- Returns:
- String
-
getChapterString
Returns the current chapter number as a string. By default does nothing, gets overridden by AggregateSink.- Overrides:
getChapterStringin classFoSink- Returns:
- an empty String.
-
regionBefore
Writes a 'xsl-region-before' block.- Overrides:
regionBeforein classFoSink- Parameters:
headerText- The text to write in the header, if null, nothing is written.
-
regionAfter
Writes a 'xsl-region-after' block. By default does nothing, gets overridden by AggregateSink.- Overrides:
regionAfterin classFoSink- Parameters:
footerText- The text to write in the footer, if null, nothing is written.
-
chapterHeading
Writes a chapter heading. By default does nothing, gets overridden by AggregateSink.- Overrides:
chapterHeadingin classFoSink- Parameters:
headerText- The text to write in the header, if null, the current document title is written.chapterNumber- True if the chapter number should be written in front of the text.
-
toc
public void toc()Writes a table of contents. The DocumentModel has to contain a DocumentTOC for this to work. -
writeTocItems
-
currentTocNumber
-
pdfBookmarks
protected void pdfBookmarks()Writes a fo:bookmark-tree. The DocumentModel has to contain a DocumentTOC for this to work.- Overrides:
pdfBookmarksin classFoSink
-
renderBookmarkItems
-
coverPage
public void coverPage()Writes a cover page. The DocumentModel has to contain a DocumentMeta for this to work. -
writeCoverHead
-
writeCoverBody
-
getBundle
-
getGraphicsAttributes
-