Class Xhtml5BaseSink
- All Implemented Interfaces:
AutoCloseable,HtmlMarkup,Markup,XmlMarkup,Sink
- Direct Known Subclasses:
MarkdownSink,XdocSink,Xhtml5Sink
-
Nested Class Summary
Nested Classes -
Field Summary
FieldsModifier and TypeFieldDescriptionKeep track of the main and div tags for content events.Keep track of the closing tags for inline events.protected MutableAttributeSetused to store attributes passed to table().Fields inherited from interface org.apache.maven.doxia.markup.HtmlMarkup
A, ABBR, ADDRESS, AREA, ARTICLE, ASIDE, AUDIO, B, BASE, BDI, BDO, BLOCKQUOTE, BODY, BR, BUTTON, CANVAS, CAPTION, CDATA_TYPE, CITE, CODE, COL, COLGROUP, COMMAND, DATA, DATALIST, DD, DEL, DETAILS, DFN, DIALOG, DIV, DL, DT, EM, EMBED, ENTITY_TYPE, FIELDSET, FIGCAPTION, FIGURE, FOOTER, FORM, H1, H2, H3, H4, H5, H6, HEAD, HEADER, HGROUP, HR, HTML, I, IFRAME, IMG, INPUT, INS, KBD, KEYGEN, LABEL, LEGEND, LI, LINK, MAIN, MAP, MARK, MENU, MENUITEM, META, METER, NAV, NOSCRIPT, OBJECT, OL, OPTGROUP, OPTION, OUTPUT, P, PARAM, PICTURE, PRE, PROGRESS, Q, RB, RP, RT, RTC, RUBY, S, SAMP, SCRIPT, SECTION, SELECT, SMALL, SOURCE, SPAN, STRONG, STYLE, SUB, SUMMARY, SUP, SVG, TABLE, TAG_TYPE_END, TAG_TYPE_SIMPLE, TAG_TYPE_START, TBODY, TD, TEMPLATE, TEXTAREA, TFOOT, TH, THEAD, TIME, TITLE, TR, TRACK, U, UL, VAR, VIDEO, WBRFields 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_DEFAULT, JUSTIFY_LEFT, JUSTIFY_RIGHT, NUMBERING_DECIMAL, NUMBERING_LOWER_ALPHA, NUMBERING_LOWER_ROMAN, NUMBERING_UPPER_ALPHA, NUMBERING_UPPER_ROMAN, 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 TypeMethodDescriptionvoidaddress(SinkEventAttributes attributes) Starts an address element.voidaddress_()Ends an address element.voidanchor(String name, SinkEventAttributes attributes) Starts an element which defines an anchor.voidanchor_()Ends an anchor element.voidarticle(SinkEventAttributes attributes) Starts an article within a document.voidarticle_()Ends the article element.voidblockquote(SinkEventAttributes attributes) Starts a blockquote element.voidEnds an blockquote element.voidbold()Starts a bold element.voidbold_()Ends a bold element.voidclose()Closes the writer or the stream, if needed.voidAdds a comment (a text that should not be rendered but may be visible in the source of the output document).protected voidWrite HTML escaped text to output.voidcontent(SinkEventAttributes attributes) Start the main content section between the header and the footer within the sections and/or body.voidcontent_()Ends a main content section.protected SinkEventAttributesconvertAndFilterAttributes(SinkEventAttributes attributes, String[] valids) First converts the given attributes to their HTML5 compliant equivalent for the generally supported attribute values, then filters the attributes to only include those whose keys are in the given list of valid attribute keys.protected SinkEventAttributesconvertToHtml5CompliantAttributes(SinkEventAttributes attributes) Some attributes have generally supported values as defined inSinkEventAttributes.voiddata(String value, SinkEventAttributes attributes) Starts a data element which groups together other elements representing microformats.voiddata_()Ends an data element.voiddefinedTerm(SinkEventAttributes attributes) Starts a definition term element within a definition list.voidEnds a definition term element within a definition list.voiddefinition(SinkEventAttributes attributes) Starts a definition element within a definition list.voidEnds a definition element within a definition list.voiddefinitionList(SinkEventAttributes attributes) Starts a definition list.voidEnds a definition list element.voiddivision(SinkEventAttributes attributes) Starts a division element grouping together other elements.voidEnds a division element.static StringencodeAsHtmlComment(String comment, String locationLogPrefix) protected static StringForward to HtmlTools.encodeURL(text).protected static StringescapeHTML(String text) Forward to HtmlTools.escapeHTML(text).voidfigure(SinkEventAttributes attributes) Starts a basic image embedding element.voidfigure_()Ends a basic image embedding element.voidfigureCaption(SinkEventAttributes attributes) Starts a figure caption.voidEnds a caption of an image.voidfigureGraphics(String src, SinkEventAttributes attributes) Adds a graphic element.voidflush()Flushes the writer or the stream, if needed.voidfooter(SinkEventAttributes attributes) Start a new footer within the section or body.voidfooter_()Ends a footer element.protected intGetter for the fieldcellCount.protected int[]Getter for the fieldcellJustif.protected StringBufferTo use mainly when playing with the head events.protected Xhtml5BaseSink.VerbatimModevoidheader(SinkEventAttributes attributes) Start a new header within the section or body.voidheader_()Ends a header element.voidhorizontalRule(SinkEventAttributes attributes) Adds a horizontal separator rule.protected voidinit()This is called inAbstractSink.head()or inSink.close(), and can be used to set the sink into a clear state so it can be re-used.voidinline(SinkEventAttributes attributes) Starts an inline element.voidinline_()Ends an inline element.protected booleanisHeadFlag.protected booleanvoiditalic()Starts an italic element.voiditalic_()Ends an italic element.voidlineBreak(SinkEventAttributes attributes) Adds a line break.voidlineBreakOpportunity(SinkEventAttributes attributes) Adds a line break opportunity.voidlink(String name, SinkEventAttributes attributes) The default style class for external link isexternalLink.voidlink_()Ends a link element.voidlist(SinkEventAttributes attributes) Starts an unordered list.voidlist_()Ends an unordered list element.voidlistItem(SinkEventAttributes attributes) Starts a list item element within an unordered list.voidEnds a list item element within an unordered list.voidmarkupLineBreak(int indentLevel) Adds a single line break with the specified indentation level.voidStarts a monospaced element.voidEnds a monospaced element.voidnavigation(SinkEventAttributes attributes) Starts a navigation section within a document.voidEnds the navigation element.voidAdds a non breaking space, ie a space without any special formatting operations.voidnumberedList(int numbering, SinkEventAttributes attributes) The default list style depends on the numbering.voidEnds an ordered list element.voidnumberedListItem(SinkEventAttributes attributes) Starts a list item element within an ordered list.voidEnds a list item element within an ordered list.protected voidonSection(int depth, SinkEventAttributes attributes) Starts a section.protected voidonSection_(int depth) Ends a section.protected voidonSectionTitle(int depth, SinkEventAttributes attributes) Starts a section title.protected voidonSectionTitle_(int depth) Ends a section title.voidAdds a new page separator.voidparagraph(SinkEventAttributes attributes) Starts a paragraph.voidEnds a paragraph element.voidAdds a raw text, ie a text without any special formatting operations.protected voidReset the text buffer.voidsection(int level, SinkEventAttributes attributes) Start a new section at the given level.voidsection_(int level) Ends a section at the given level.voidsectionTitle(int level, SinkEventAttributes attributes) Start a new section title at the given level.voidsectionTitle_(int level) Ends a section title at the given level.protected voidsetCellCount(int count) Setter for the fieldcellCount.protected voidsetCellJustif(int[] justif) Setter for the fieldcellJustif.protected voidsetHeadFlag(boolean headFlag) Setter for the fieldheadFlag.protected voidSetter for the fieldverbatimMode.voidsidebar(SinkEventAttributes attributes) Starts a sidebar section within a document.voidsidebar_()Ends the sidebar element.voidtable(SinkEventAttributes attributes) Starts a table.voidtable_()Ends a table element.voidtableCaption(SinkEventAttributes attributes) Starts a table caption.voidEnds a caption element of a table.voidtableCell(SinkEventAttributes attributes) Starts a table cell.voidEnds a cell element.voidtableHeaderCell(SinkEventAttributes attributes) Starts a table header cell.voidEnds a cell header element.voidtableRow(SinkEventAttributes attributes) Rows are striped with two colors by adding the classaorb.voidEnds a row element.voidtableRows(int[] justification, boolean grid) The default style class isbodyTable.voidEnds an element that contains rows of table data.voidtext(String text, SinkEventAttributes attributes) Adds a text.voidtime(String datetime, SinkEventAttributes attributes) Starts a time element which groups together other elements representing a time.voidtime_()Ends a time element.voidunknown(String name, Object[] requiredParams, SinkEventAttributes attributes) Adds an unknown event.voidverbatim(SinkEventAttributes attributes) Depending on whether the decoration attribute is "source" or not, this leads to either emitting<pre><code>or just<pre>.voidEnds a verbatim element.protected voidverbatimContent(String text) Write HTML escaped text to output.protected voidWrite a text to the sink.protected voidEnds a Tag without writing an EOL.protected voidwriteStartTag(HTML.Tag t, MutableAttributeSet att, boolean isSimpleTag) Starts a Tag with attributes.Methods 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
author, author_, body, body_, date, date_, definitionListItem, definitionListItem_, head, head_, title, title_Methods inherited from class org.apache.maven.doxia.sink.impl.AbstractSink
address, anchor, article, author, blockquote, body, content, data, date, definedTerm, definition, definitionList, definitionListItem, division, figure, figureCaption, figureGraphics, footer, formatLocation, getDocumentLocator, getLocationLogPrefix, head, header, horizontalRule, inline, lineBreak, lineBreakOpportunity, link, list, listItem, navigation, numberedList, numberedListItem, paragraph, section1, section1_, section2, section2_, section3, section3_, section4, section4_, section5, section5_, section6, section6_, sectionTitle, sectionTitle_, sectionTitle1, sectionTitle1_, sectionTitle2, sectionTitle2_, sectionTitle3, sectionTitle3_, sectionTitle4, sectionTitle4_, sectionTitle5, sectionTitle5_, sectionTitle6, sectionTitle6_, setDocumentLocator, sidebar, table, tableCaption, tableCell, tableHeaderCell, tableRow, tableRows, text, time, title, unifyEOLs, verbatim
-
Field Details
-
contentStack
Keep track of the main and div tags for content events. -
inlineStack
Keep track of the closing tags for inline events. -
tableAttributes
used to store attributes passed to table().
-
-
Constructor Details
-
Xhtml5BaseSink
Constructor, initialize the PrintWriter.- Parameters:
out- The writer to write the result.
-
-
Method Details
-
getTextBuffer
To use mainly when playing with the head events.- Returns:
- the current buffer of text events.
-
setHeadFlag
Setter for the field
headFlag.- Parameters:
headFlag- an header flag.
-
isHeadFlag
isHeadFlag.
- Returns:
- the current headFlag.
-
getVerbatimMode
- Returns:
- the current verbatim mode.
-
setVerbatimMode
Setter for the field
verbatimMode.- Parameters:
mode- a verbatim mode.
-
isVerbatim
- Returns:
trueif inside verbatim section,falseotherwise
-
setCellJustif
Setter for the field
cellJustif.- Parameters:
justif- the new cell justification array.
-
getCellJustif
Getter for the field
cellJustif.- Returns:
- the current cell justification array.
-
setCellCount
Setter for the field
cellCount.- Parameters:
count- the new cell count.
-
getCellCount
Getter for the field
cellCount.- Returns:
- the current cell count.
-
init
Description copied from class:AbstractSinkThis is called inAbstractSink.head()or inSink.close(), and can be used to set the sink into a clear state so it can be re-used.- Overrides:
initin classAbstractSink
-
resetTextBuffer
Reset the text buffer. -
article
Description copied from interface:SinkStarts an article within a document.Supported attributes are the
base attributes.- Specified by:
articlein interfaceSink- Overrides:
articlein classSinkAdapter- Parameters:
attributes- A set ofSinkEventAttributes, may benull.
-
article_
Description copied from interface:SinkEnds the article element.- Specified by:
article_in interfaceSink- Overrides:
article_in classSinkAdapter
-
sidebar
Description copied from interface:SinkStarts a sidebar section within a document.Supported attributes are the
base attributes.- Specified by:
sidebarin interfaceSink- Overrides:
sidebarin classSinkAdapter- Parameters:
attributes- A set ofSinkEventAttributes, may benull.
-
sidebar_
Description copied from interface:SinkEnds the sidebar element.- Specified by:
sidebar_in interfaceSink- Overrides:
sidebar_in classSinkAdapter
-
section
Description copied from interface:SinkStart a new section at the given level.Sections with higher level have to be entirely contained within sections of lower level.
Supported attributes are the
base attributes.- Specified by:
sectionin interfaceSink- Overrides:
sectionin classSinkAdapter- Parameters:
level- the section level (must be a value between 1 and 6).attributes- A set ofSinkEventAttributes, may benull.
-
sectionTitle
Description copied from interface:SinkStart a new section title at the given level.This element is optional, but if it exists, it has to be contained, and be the first element, within a corresponding
sectionelement of the same level.NOTE: It is strongly recommended not to make section titles implicit anchors. Neither Parsers nor Sinks should insert any content that is not explicitly present in the original source document, as this would lead to undefined behaviour for multi-format processing chains. However, while Parsers must never emit anchors for section titles, some specialized Sinks may implement such a feature if the resulting output documents are not going to be further processed (and this is properly documented).
Supported attributes are the
base attributesplusALIGN.- Specified by:
sectionTitlein interfaceSink- Overrides:
sectionTitlein classSinkAdapter- Parameters:
level- the section title level (must be a value between 1 and 6).attributes- A set ofSinkEventAttributes, may benull.
-
sectionTitle_
Description copied from interface:SinkEnds a section title at the given level.- Specified by:
sectionTitle_in interfaceSink- Overrides:
sectionTitle_in classSinkAdapter- Parameters:
level- the section title level (must be a value between 1 and 6).
-
section_
Description copied from interface:SinkEnds a section at the given level. -
onSection
Starts a section.- Parameters:
depth- The level of the section.attributes- some attributes. May be null.
-
onSection_
Ends a section.- Parameters:
depth- The level of the section.- See Also:
-
onSectionTitle
Starts a section title.- Parameters:
depth- The level of the section title.attributes- some attributes. May be null.- See Also:
-
onSectionTitle_
Ends a section title.- Parameters:
depth- The level of the section title.- See Also:
-
header
Description copied from interface:SinkStart a new header within the section or body.Supported attributes are the
base attributes.- Specified by:
headerin interfaceSink- Overrides:
headerin classSinkAdapter- Parameters:
attributes- A set ofSinkEventAttributes, may benull.
-
header_
Description copied from interface:SinkEnds a header element.- Specified by:
header_in interfaceSink- Overrides:
header_in classSinkAdapter
-
content
Description copied from interface:SinkStart the main content section between the header and the footer within the sections and/or body.Supported attributes are the
base attributes.- Specified by:
contentin interfaceSink- Overrides:
contentin classSinkAdapter- Parameters:
attributes- A set ofSinkEventAttributes, may benull.
-
content_
Description copied from interface:SinkEnds a main content section.- Specified by:
content_in interfaceSink- Overrides:
content_in classSinkAdapter
-
list
Starts an unordered list.Supported attributes are the
A list must contain at least onebase attributes.Sink.listItem(SinkEventAttributes)orSink.listItem()as direct successor of this method.- Specified by:
listin interfaceSink- Overrides:
listin classSinkAdapter- Parameters:
attributes- A set ofSinkEventAttributes, may benull.- See Also:
-
list_
Ends an unordered list element.- Specified by:
list_in interfaceSink- Overrides:
list_in classSinkAdapter- See Also:
-
listItem
Starts a list item element within an unordered list.Supported attributes are the
Nested lists must have the following Sink method sequence:base attributes.- Specified by:
listItemin interfaceSink- Overrides:
listItemin classSinkAdapter- Parameters:
attributes- A set ofSinkEventAttributes, may benull.- See Also:
-
listItem_
Ends a list item element within an unordered list.- Specified by:
listItem_in interfaceSink- Overrides:
listItem_in classSinkAdapter- See Also:
-
numberedList
The default list style depends on the numbering. Starts an ordered list element.Supported attributes are the
A list must contain at least onebase attributes.Sink.numberedListItem(SinkEventAttributes)orSink.numberedListItem()as direct successor of this method.- Specified by:
numberedListin interfaceSink- Overrides:
numberedListin classSinkAdapter- Parameters:
numbering- the numbering style.attributes- A set ofSinkEventAttributes, may benull.- See Also:
-
numberedList_
Ends an ordered list element.- Specified by:
numberedList_in interfaceSink- Overrides:
numberedList_in classSinkAdapter- See Also:
-
numberedListItem
Starts a list item element within an ordered list.Supported attributes are the
Nested lists must have the following Sink method sequence:base attributes.Sink.numberedListItem(SinkEventAttributes)orSink.numberedListItem()Sink.numberedList(int,SinkEventAttributes)orSink.numberedList(int)Sink.numberedListItem(SinkEventAttributes)orSink.numberedListItem()...Sink.numberedListItem_()Sink.numberedList_()...Sink.numberedListItem_()Sink.numberedList_()
- Specified by:
numberedListItemin interfaceSink- Overrides:
numberedListItemin classSinkAdapter- Parameters:
attributes- A set ofSinkEventAttributes, may benull.- See Also:
-
numberedListItem_
Ends a list item element within an ordered list.- Specified by:
numberedListItem_in interfaceSink- Overrides:
numberedListItem_in classSinkAdapter- See Also:
-
definitionList
Starts a definition list.Supported attributes are the
base attributes.- Specified by:
definitionListin interfaceSink- Overrides:
definitionListin classSinkAdapter- Parameters:
attributes- A set ofSinkEventAttributes, may benull.- See Also:
-
definitionList_
Ends a definition list element.- Specified by:
definitionList_in interfaceSink- Overrides:
definitionList_in classSinkAdapter- See Also:
-
definedTerm
Starts a definition term element within a definition list.Supported attributes are the
base attributes.- Specified by:
definedTermin interfaceSink- Overrides:
definedTermin classSinkAdapter- Parameters:
attributes- A set ofSinkEventAttributes, may benull.- See Also:
-
definedTerm_
Ends a definition term element within a definition list.- Specified by:
definedTerm_in interfaceSink- Overrides:
definedTerm_in classSinkAdapter- See Also:
-
definition
Starts a definition element within a definition list.Supported attributes are the
base attributes.- Specified by:
definitionin interfaceSink- Overrides:
definitionin classSinkAdapter- Parameters:
attributes- A set ofSinkEventAttributes, may benull.- See Also:
-
definition_
Ends a definition element within a definition list.- Specified by:
definition_in interfaceSink- Overrides:
definition_in classSinkAdapter- See Also:
-
figure
Description copied from interface:SinkStarts a basic image embedding element.The canonical sequence of events for the figure element is:
sink.figure(); sink.figureGraphics("figure.png"); sink.figureCaption(); sink.text("Figure caption",); sink.figureCaption_(); sink.figure_();where the figureCaption element is optional.
However, NOTE that the order of figureCaption and figureGraphics events is arbitrary, ie a parser may emit the figureCaption before or after the figureGraphics. Implementing sinks should be prepared to handle both possibilities.
NOTE also that the figureGraphics() event does not have to be embedded inside figure(), in particular for in-line images the figureGraphics() should be used stand-alone (in HTML language, figureGraphics() produces a
<img>tag, while figure() opens a paragraph- or<div>- like environment).Supported attributes are the
base attributes.- Specified by:
figurein interfaceSink- Overrides:
figurein classSinkAdapter- Parameters:
attributes- A set ofSinkEventAttributes, may benull.
-
figure_
Description copied from interface:SinkEnds a basic image embedding element.- Specified by:
figure_in interfaceSink- Overrides:
figure_in classSinkAdapter
-
figureGraphics
Description copied from interface:SinkAdds 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 classSinkAdapter- Parameters:
src- the image source, a valid URL.attributes- A set ofSinkEventAttributes, may benull.- See Also:
-
figureCaption
Description copied from interface:SinkStarts a figure caption.Supported attributes are the
base attributes.- Specified by:
figureCaptionin interfaceSink- Overrides:
figureCaptionin classSinkAdapter- Parameters:
attributes- A set ofSinkEventAttributes, may benull.- See Also:
-
figureCaption_
Description copied from interface:SinkEnds a caption of an image.- Specified by:
figureCaption_in interfaceSink- Overrides:
figureCaption_in classSinkAdapter
-
paragraph
Starts a paragraph.Supported attributes are the
base attributesplusALIGN.- Specified by:
paragraphin interfaceSink- Overrides:
paragraphin classSinkAdapter- Parameters:
attributes- A set ofSinkEventAttributes, may benull.- See Also:
-
paragraph_
Ends a paragraph element.- Specified by:
paragraph_in interfaceSink- Overrides:
paragraph_in classSinkAdapter- See Also:
-
data
Description copied from interface:SinkStarts a data element which groups together other elements representing microformats.Supported attributes are the
base attributesplusVALUE.- Specified by:
datain interfaceSink- Overrides:
datain classSinkAdapter- Parameters:
value- the machine readable value of the data, may benull.attributes- A set ofSinkEventAttributes, may benull.
-
data_
Description copied from interface:SinkEnds an data element.- Specified by:
data_in interfaceSink- Overrides:
data_in classSinkAdapter
-
time
Description copied from interface:SinkStarts a time element which groups together other elements representing a time.Supported attributes are the
base attributesplusDATETIME.- Specified by:
timein interfaceSink- Overrides:
timein classSinkAdapter- Parameters:
datetime- the machine readable value of the time, may benull.attributes- A set ofSinkEventAttributes, may benull.
-
time_
Description copied from interface:SinkEnds a time element.- Specified by:
time_in interfaceSink- Overrides:
time_in classSinkAdapter
-
address
Starts an address element.- Specified by:
addressin interfaceSink- Overrides:
addressin classSinkAdapter- Parameters:
attributes- A set ofSinkEventAttributes, may benull.- See Also:
-
address_
Ends an address element.- Specified by:
address_in interfaceSink- Overrides:
address_in classSinkAdapter- See Also:
-
blockquote
Starts a blockquote element.Supported attributes are the
base attributes.- Specified by:
blockquotein interfaceSink- Overrides:
blockquotein classSinkAdapter- Parameters:
attributes- A set ofSinkEventAttributes, may benull.- See Also:
-
blockquote_
Ends an blockquote element.- Specified by:
blockquote_in interfaceSink- Overrides:
blockquote_in classSinkAdapter- See Also:
-
division
Starts a division element grouping together other elements.Supported attributes are the
base attributesplusALIGN.- Specified by:
divisionin interfaceSink- Overrides:
divisionin classSinkAdapter- Parameters:
attributes- A set ofSinkEventAttributes, may benull.- See Also:
-
division_
Ends a division element.- Specified by:
division_in interfaceSink- Overrides:
division_in classSinkAdapter- See Also:
-
verbatim
Depending on whether the decoration attribute is "source" or not, this leads to either emitting<pre><code>or just<pre>. No default classes are emitted but the given attributes are always added to thepreelement only. Starts a verbatim block, ie a block where whitespace has semantic relevance.Text in a verbatim block must only be wrapped at the linebreaks in the source, and spaces should not be collapsed. It should be displayed in a fixed-width font to retain the formatting but the overall size may be chosen by the implementation.
Most Sink events may be emitted within a verbatim block, the only elements explicitly forbidden are font-changing events and figures. Also, verbatim blocks may not be nested.
Supported attributes are the
base attributesplus:DECORATION(values: "source"),ALIGN,WIDTH.- Specified by:
verbatimin interfaceSink- Overrides:
verbatimin classSinkAdapter- Parameters:
attributes- A set ofSinkEventAttributes, may benull.- See Also:
-
verbatim_
Ends a verbatim element.- Specified by:
verbatim_in interfaceSink- Overrides:
verbatim_in classSinkAdapter- See Also:
-
horizontalRule
Adds a horizontal separator rule.Supported attributes are the
base attributesplus:ALIGN,NOSHADE,SIZE,WIDTH.- Specified by:
horizontalRulein interfaceSink- Overrides:
horizontalRulein classSinkAdapter- Parameters:
attributes- A set ofSinkEventAttributes, may benull.- See Also:
-
table
Description copied from interface:SinkStarts a table.The canonical sequence of events for the table element is:
sink.table(); sink.tableRows(justify, true); sink.tableRow(); sink.tableCell(); sink.text("cell 1,1"); sink.tableCell_(); sink.tableCell(); sink.text("cell 1,2"); sink.tableCell_(); sink.tableRow_(); sink.tableRows_(); sink.tableCaption(); sink.text("Table caption"); sink.tableCaption_(); sink.table_();where the tableCaption element is optional.
However, NOTE that the order of tableCaption and
Sink.tableRows(int[],boolean)events is arbitrary, ie a parser may emit the tableCaption before or after the tableRows. Implementing sinks should be prepared to handle both possibilities.Supported attributes are the
base attributesplus:ALIGN,BGCOLOR,BORDER,CELLPADDING,CELLSPACING,FRAME,RULES,SUMMARY,WIDTH.- Specified by:
tablein interfaceSink- Overrides:
tablein classSinkAdapter- Parameters:
attributes- A set ofSinkEventAttributes, may benull.
-
table_
Ends a table element.- Specified by:
table_in interfaceSink- Overrides:
table_in classSinkAdapter- See Also:
-
tableRows
The default style class isbodyTable.- Specified by:
tableRowsin interfaceSink- Overrides:
tableRowsin classSinkAdapter- Parameters:
justification- the default justification of columns. This can be overridden by individual table rows or table cells. If null a left alignment is assumed by default. If this array has less elements than there are columns in the table then the value of the last array element will be taken as default for the remaining table cells. Each element of the array must be one of the following constants:Sink.JUSTIFY_LEFT,Sink.JUSTIFY_CENTER,Sink.JUSTIFY_RIGHTorSink.JUSTIFY_DEFAULT.grid- iftruethe style classbodyTableBorderwill be added true to render a grid, false otherwise.- See Also:
-
tableRows_
Description copied from interface:SinkEnds an element that contains rows of table data.- Specified by:
tableRows_in interfaceSink- Overrides:
tableRows_in classSinkAdapter
-
tableRow
Rows are striped with two colors by adding the classaorb. If the provided attributes specify thehiddenclass, the next call to tableRow will set the same striping class as this one. A style forhiddenortable.bodyTable hiddenmay need to be provided to actually hide such a row. Starts a table row.Supported attributes are the
base attributesplus:ALIGN,BGCOLOR,VALIGN.- Specified by:
tableRowin interfaceSink- Overrides:
tableRowin classSinkAdapter- Parameters:
attributes- A set ofSinkEventAttributes, may benull.- See Also:
-
tableRow_
Ends a row element.- Specified by:
tableRow_in interfaceSink- Overrides:
tableRow_in classSinkAdapter- See Also:
-
tableCell
Description copied from interface:SinkStarts a table cell.Supported attributes are the
base attributesplus:ABBRV,ALIGN,AXIS,BGCOLOR,COLSPAN,HEADERS,HEIGHT,NOWRAP,ROWSPAN,SCOPE,VALIGN,WIDTH.- Specified by:
tableCellin interfaceSink- Overrides:
tableCellin classSinkAdapter- Parameters:
attributes- A set ofSinkEventAttributes, may benull.
-
tableHeaderCell
Description copied from interface:SinkStarts a table header cell.Supported attributes are the same as for
tableCell.- Specified by:
tableHeaderCellin interfaceSink- Overrides:
tableHeaderCellin classSinkAdapter- Parameters:
attributes- A set ofSinkEventAttributes, may benull.
-
tableCell_
Description copied from interface:SinkEnds a cell element.- Specified by:
tableCell_in interfaceSink- Overrides:
tableCell_in classSinkAdapter
-
tableHeaderCell_
Description copied from interface:SinkEnds a cell header element.- Specified by:
tableHeaderCell_in interfaceSink- Overrides:
tableHeaderCell_in classSinkAdapter
-
tableCaption
Starts a table caption.Note that the order of tableCaption and
Sink.tableRows(int[],boolean)events is arbitrary, ie a parser may emit the tableCaption before or after the tableRows. Implementing sinks should be prepared to handle both possibilities.Supported attributes are the
base attributesplusALIGN.- Specified by:
tableCaptionin interfaceSink- Overrides:
tableCaptionin classSinkAdapter- Parameters:
attributes- A set ofSinkEventAttributes, may benull.- See Also:
-
tableCaption_
Ends a caption element of a table.- Specified by:
tableCaption_in interfaceSink- Overrides:
tableCaption_in classSinkAdapter- See Also:
-
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 classSinkAdapter- Parameters:
name- the name of the anchor. This has to be a valid SGML NAME token.attributes- A set ofSinkEventAttributes, may benull.- See Also:
-
anchor_
Ends an anchor element.- Specified by:
anchor_in interfaceSink- Overrides:
anchor_in classSinkAdapter- See Also:
-
link
The default style class for external link isexternalLink. Starts a link.The
nameparameter has to be a valid URI according to RFC 3986, i.e. for internal links (links to an anchor within the same source document),nameshould start with the character "#". This also implies that all unsafe characters are already encoded.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 classSinkAdapter- Parameters:
name- the name of the link.attributes- A set ofSinkEventAttributes, may benull.- See Also:
-
link_
Ends a link element.- Specified by:
link_in interfaceSink- Overrides:
link_in classSinkAdapter- See Also:
-
inline
Description copied from interface:SinkStarts an inline element.The inline method is similar to
Sink.text(String,SinkEventAttributes), but allows you to wrap arbitrary elements in addition to text.Supported attributes are the
base attributesplusSEMANTICS(values "emphasis", "strong", "small", "line-through", "citation", "quote", "definition", "abbreviation", "italic", "bold", "monospaced", "variable", "sample", "keyboard", "superscript", "subscript", "annotation", "highlight", "ruby", "rubyBase", "rubyText", "rubyTextContainer", "rubyParentheses", "bidirectionalIsolation", "bidirectionalOverride", "phrase", "insert", "delete").- Specified by:
inlinein interfaceSink- Overrides:
inlinein classSinkAdapter- Parameters:
attributes- A set ofSinkEventAttributes, may benull.
-
inline_
Description copied from interface:SinkEnds an inline element.- Specified by:
inline_in interfaceSink- Overrides:
inline_in classSinkAdapter
-
italic
Starts an italic element. Alternatively one may useSink.text(String,SinkEventAttributes)withSTYLEinstead.- Specified by:
italicin interfaceSink- Overrides:
italicin classSinkAdapter- See Also:
-
italic_
Ends an italic element. Alternatively one may useSink.text(String,SinkEventAttributes)withSTYLEinstead.- Specified by:
italic_in interfaceSink- Overrides:
italic_in classSinkAdapter- See Also:
-
bold
Starts a bold element. Alternatively one may useSink.text(String,SinkEventAttributes)withSTYLEinstead.- Specified by:
boldin interfaceSink- Overrides:
boldin classSinkAdapter- See Also:
-
bold_
Ends a bold element. Alternatively one may useSink.text(String,SinkEventAttributes)withSTYLEinstead.- Specified by:
bold_in interfaceSink- Overrides:
bold_in classSinkAdapter- See Also:
-
monospaced
Starts a monospaced element. Alternatively one may useSink.text(String,SinkEventAttributes)withSTYLEinstead.- Specified by:
monospacedin interfaceSink- Overrides:
monospacedin classSinkAdapter- See Also:
-
monospaced_
Ends a monospaced element. Alternatively one may useSink.text(String,SinkEventAttributes)withSTYLEinstead.- Specified by:
monospaced_in interfaceSink- Overrides:
monospaced_in classSinkAdapter- See Also:
-
lineBreak
- Specified by:
lineBreakin interfaceSink- Overrides:
lineBreakin classSinkAdapter- Parameters:
attributes- A set ofSinkEventAttributes, may benull.- See Also:
-
lineBreakOpportunity
Description copied from interface:Sink- Specified by:
lineBreakOpportunityin interfaceSink- Overrides:
lineBreakOpportunityin classSinkAdapter- Parameters:
attributes- A set ofSinkEventAttributes, may benull.
-
pageBreak
Description copied from interface:SinkAdds a new page separator.- Specified by:
pageBreakin interfaceSink- Overrides:
pageBreakin classSinkAdapter
-
nonBreakingSpace
Description copied from interface:SinkAdds a non breaking space, ie a space without any special formatting operations.- Specified by:
nonBreakingSpacein interfaceSink- Overrides:
nonBreakingSpacein classSinkAdapter
-
text
Description copied from interface:SinkAdds a text.The
textparameter should contain only real content, ie any ignorable/collapsable whitespace/EOLs or other pretty-printing should be removed/normalized by a parser.If
textcontains any variants of line terminators, they should be normalized to the System EOL by an implementing Sink.Supported attributes are the
base attributesplusSEMANTICS(values "emphasis", "strong", "small", "line-through", "citation", "quote", "definition", "abbreviation", "italic", "bold", "monospaced", "variable", "sample", "keyboard", "superscript", "subscript", "annotation", "highlight", "ruby", "rubyBase", "rubyText", "rubyTextContainer", "rubyParentheses", "bidirectionalIsolation", "bidirectionalOverride", "phrase", "insert", "delete").The following attributes are deprecated:
VALIGN(values "sub", "sup"),DECORATION(values "underline", "overline", "line-through"),STYLE(values "italic", "bold", "monospaced").- Specified by:
textin interfaceSink- Overrides:
textin classSinkAdapter- Parameters:
text- The text to write.attributes- A set ofSinkEventAttributes, may benull.
-
rawText
Description copied from interface:SinkAdds a raw text, ie a text without any special formatting operations.- Specified by:
rawTextin interfaceSink- Overrides:
rawTextin classSinkAdapter- Parameters:
text- The text to write.
-
comment
Description copied from interface:SinkAdds a comment (a text that should not be rendered but may be visible in the source of the output document).- Specified by:
commentin interfaceSink- Overrides:
commentin classSinkAdapter- Parameters:
comment- The comment to write.
-
encodeAsHtmlComment
-
markupLineBreak
Description copied from interface:SinkAdds a single line break with the specified indentation level. The default implementation does nothing. This is different from emitting a line break withSink.lineBreak(SinkEventAttributes)orSink.text(String, SinkEventAttributes)as those line breaks are part of the content (i.e. affect rendering) while this line break is purely for pretty-printing the Sink's output and should not affect the rendering of the content. This is useful for Sinks that emit text-based markup languages (e.g. HTML, XML, etc.) to produce more human-readable output.- Specified by:
markupLineBreakin interfaceSink- Parameters:
indentLevel- the indentation level, where 0 means no indentation, 1 means one level of indentation, etc. The sink can decide how many spaces/tabs to use for each level of indentation.
-
unknown
Adds an unknown event. This may be used by parsers to notify a general Sink about an event that doesn't fit into any event defined by the Sink API. Depending on the parameters, a Sink may decide whether or not to process the event, emit it as raw text, as a comment, log it, etc. Add an unknown event. This can be used to generate html tags for which no corresponding sink event exists.If
HtmlTools.getHtmlTag(name)does not return null, the corresponding tag will be written.For example, the div block
<div class="detail" style="display:inline">text</div>
can be generated via the following event sequence:
SinkEventAttributeSet atts = new SinkEventAttributeSet(); atts.addAttribute(SinkEventAttributes.CLASS, "detail"); atts.addAttribute(SinkEventAttributes.STYLE, "display:inline"); sink.unknown("div", new Object[]{new Integer(HtmlMarkup.TAG_TYPE_START)}, atts); sink.text("text"); sink.unknown("div", new Object[]{new Integer(HtmlMarkup.TAG_TYPE_END)}, null);- Specified by:
unknownin interfaceSink- Overrides:
unknownin classSinkAdapter- Parameters:
name- the name of the event. If this is not a valid xhtml tag name as defined inHtmlMarkupthen the event is ignored.requiredParams- If this is null or the first argument is not an Integer then the event is ignored. The first argument should indicate the type of the unknown event, its integer value should be one ofTAG_TYPE_START,TAG_TYPE_END,TAG_TYPE_SIMPLE,ENTITY_TYPE, orCDATA_TYPE, otherwise the event will be ignored.attributes- a set of attributes for the event. May be null. The attributes will always be written, no validity check is performed.
-
flush
Description copied from interface:SinkFlushes the writer or the stream, if needed. Flushing a previously-flushed Sink has no effect.- Specified by:
flushin interfaceSink- Overrides:
flushin classSinkAdapter
-
close
Description copied from interface:SinkCloses the writer or the stream, if needed. Closing a previously-closed Sink has no effect.- Specified by:
closein interfaceAutoCloseable- Specified by:
closein interfaceSink- Overrides:
closein classSinkAdapter
-
content
Write HTML escaped text to output.- Parameters:
text- The text to write.
-
verbatimContent
Write HTML escaped text to output.- Parameters:
text- The text to write.
-
escapeHTML
Forward to HtmlTools.escapeHTML(text).- Parameters:
text- the String to escape, may be null- Returns:
- the text escaped, "" if null String input
- See Also:
-
encodeURL
Forward to HtmlTools.encodeURL(text).- Parameters:
text- the String to encode, may be null.- Returns:
- the text encoded, null if null String input.
- See Also:
-
convertAndFilterAttributes
protected SinkEventAttributes convertAndFilterAttributes(SinkEventAttributes attributes, String[] valids) First converts the given attributes to their HTML5 compliant equivalent for the generally supported attribute values, then filters the attributes to only include those whose keys are in the given list of valid attribute keys.- Parameters:
attributes-valids-- Returns:
- the converted and filtered attributes
- See Also:
-
convertToHtml5CompliantAttributes
Some attributes have generally supported values as defined inSinkEventAttributes. This method converts them to their HTML5 compliant equivalent, e.g. the "underline" value of the "decoration" attribute is converted to a style attribute with value "text-decoration-line: underline". Other attributes with values outsides of the generally supported ones are passed as is (and may not be supported by all HTML output formats).- Parameters:
attributes-- Returns:
- a new set of attributes with HTML5 compliant values for the generally supported attribute values
-
write
Description copied from class:AbstractXmlSinkWrite a text to the sink.- Specified by:
writein classAbstractXmlSink- Parameters:
text- the given text to write
-
writeStartTag
Description copied from class:AbstractXmlSinkStarts a Tag with attributes. For instance:<tag attName="attValue">
- Overrides:
writeStartTagin classAbstractXmlSink- Parameters:
t- a non null tag.att- a set of attributes. May be null.isSimpleTag- boolean to write as tag for an empty element.
-
writeEndTag
Description copied from class:AbstractXmlSinkEnds a Tag without writing an EOL. For instance:</tag>
.- Overrides:
writeEndTagin classAbstractXmlSink- Parameters:
t- a tag.
-