Class Xhtml5BaseSink
- All Implemented Interfaces:
AutoCloseable, HtmlMarkup, Markup, XmlMarkup, Sink
- Direct Known Subclasses:
XdocSink, Xhtml5Sink
-
Nested Class Summary
Nested Classes -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final LinkedList<Integer> Stack of current table cell.private final LinkedList<int[]> Stack of alignment int[] of table cells.Keep track of the main and div tags for content events.private booleanUsed to style successive table rows differently.private booleanAn indication on if we're inside a head.private static final PatternUsed to identify if a class string contains `hidden`Keep track of the closing tags for inline events.private final LinkedList<Boolean> Stack of justification of table cells.private static final org.slf4j.Loggerprivate booleanAn indication on if we're inside a paragraph flag.protected MutableAttributeSetused to store attributes passed to table().private final LinkedList<String> The stack of table captionprivate final LinkedList<StringWriter> private final LinkedList<org.codehaus.plexus.util.xml.PrettyPrintXMLWriter> private final LinkedList<StringWriter> The stack of StringWriter to write the table result temporary, so we could play with the output DOXIA-177.private StringBufferUsed to collect text events mainly for the head events.private Xhtml5BaseSink.VerbatimModeAn indication on if we're in verbatim mode and if so, surrounded by which tags.private final PrintWriterThe PrintWriter to write the result.Fields inherited from interface 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 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 Sink
JUSTIFY_CENTER, 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 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()Close the writer or the stream, if needed.voidAdd a comment.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.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.protected static StringForward to HtmlTools.encodeURL(text).private SinkEventAttributesescapeAttributeValues(SinkEventAttributes attributes) 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()Flush 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.private voidinlineSemantics(SinkEventAttributes attributes, String semantic, List<HTML.Tag> tags, HTML.Tag tag) 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.voidStarts a monospaced element.voidEnds a monospaced element.voidnavigation(SinkEventAttributes attributes) Starts a navigation section within a document.voidEnds the navigation element.voidAdding 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.voidAdding a new page separator.voidparagraph(SinkEventAttributes attributes) Starts a paragraph.voidEnds a paragraph element.voidAdding 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.private voidtableCell(boolean headerRow, MutableAttributeSet attributes) voidtableCell(SinkEventAttributes attributes) Starts a table cell.voidEnds a cell element.private voidtableCell_(boolean headerRow) Ends a table cell.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) Add 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 AbstractXmlSink
getNameSpace, setInsertNewline, setNameSpace, writeEOL, writeSimpleTag, writeSimpleTag, writeStartTag, writeStartTagMethods inherited from class SinkAdapter
author, author_, body, body_, date, date_, definitionListItem, definitionListItem_, head, head_, title, title_Methods inherited from class 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
-
LOGGER
private static final org.slf4j.Logger LOGGER -
writer
The PrintWriter to write the result. -
HIDDEN_CLASS_PATTERN
Used to identify if a class string contains `hidden` -
textBuffer
Used to collect text events mainly for the head events. -
headFlag
private boolean headFlagAn indication on if we're inside a head. -
contentStack
-
inlineStack
-
paragraphFlag
private boolean paragraphFlagAn indication on if we're inside a paragraph flag. -
verbatimMode
An indication on if we're in verbatim mode and if so, surrounded by which tags. -
cellJustifStack
Stack of alignment int[] of table cells. -
isCellJustifStack
Stack of justification of table cells. -
cellCountStack
Stack of current table cell. -
evenTableRow
private boolean evenTableRowUsed to style successive table rows differently. -
tableContentWriterStack
The stack of StringWriter to write the table result temporary, so we could play with the output DOXIA-177. -
tableCaptionWriterStack
-
tableCaptionXMLWriterStack
private final LinkedList<org.codehaus.plexus.util.xml.PrettyPrintXMLWriter> tableCaptionXMLWriterStack -
tableCaptionStack
The stack of table caption -
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
protected void setHeadFlag(boolean headFlag) Setter for the field
headFlag.- Parameters:
headFlag- an header flag.
-
isHeadFlag
protected boolean isHeadFlag()isHeadFlag.
- Returns:
- the current headFlag.
-
getVerbatimMode
- Returns:
- the current verbatim mode.
-
setVerbatimMode
Setter for the field
verbatimMode.- Parameters:
mode- a verbatim mode.
-
isVerbatim
protected boolean isVerbatim()- Returns:
trueif inside verbatim section,falseotherwise
-
setCellJustif
protected void setCellJustif(int[] justif) Setter for the field
cellJustif.- Parameters:
justif- the new cell justification array.
-
getCellJustif
protected int[] getCellJustif()Getter for the field
cellJustif.- Returns:
- the current cell justification array.
-
setCellCount
protected void setCellCount(int count) Setter for the field
cellCount.- Parameters:
count- the new cell count.
-
getCellCount
protected int getCellCount()Getter for the field
cellCount.- Returns:
- the current cell count.
-
init
protected void init()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.- Overrides:
initin classAbstractSink
-
resetTextBuffer
protected void resetTextBuffer()Reset the text buffer. -
article
Starts 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_
public void article_()Ends the article element.- Specified by:
article_in interfaceSink- Overrides:
article_in classSinkAdapter
-
sidebar
Starts 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_
public void sidebar_()Ends the sidebar element.- Specified by:
sidebar_in interfaceSink- Overrides:
sidebar_in classSinkAdapter
-
section
Start 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
Start 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_
public void sectionTitle_(int level) Ends 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_
-
onSection
Starts a section.- Parameters:
depth- The level of the section.attributes- some attributes. May be null.
-
onSection_
protected void onSection_(int depth) 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_
protected void onSectionTitle_(int depth) Ends a section title.- Parameters:
depth- The level of the section title.- See Also:
-
header
Start 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_
public void header_()Ends a header element.- Specified by:
header_in interfaceSink- Overrides:
header_in classSinkAdapter
-
content
Start 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_
public void content_()Ends a main content section.- Specified by:
content_in interfaceSink- Overrides:
content_in classSinkAdapter
-
list
Starts an unordered list.Supported attributes are the
base attributes.- Specified by:
listin interfaceSink- Overrides:
listin classSinkAdapter- Parameters:
attributes- A set ofSinkEventAttributes, may benull.- See Also:
-
list_
public void 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
base attributes.- Specified by:
listItemin interfaceSink- Overrides:
listItemin classSinkAdapter- Parameters:
attributes- A set ofSinkEventAttributes, may benull.- See Also:
-
listItem_
public void 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
base attributes.- Specified by:
numberedListin interfaceSink- Overrides:
numberedListin classSinkAdapter- Parameters:
numbering- the numbering style.attributes- A set ofSinkEventAttributes, may benull.- See Also:
-
numberedList_
public void 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
base attributes.- Specified by:
numberedListItemin interfaceSink- Overrides:
numberedListItemin classSinkAdapter- Parameters:
attributes- A set ofSinkEventAttributes, may benull.- See Also:
-
numberedListItem_
public void 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_
public void 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_
public void 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_
public void definition_()Ends a definition element within a definition list.- Specified by:
definition_in interfaceSink- Overrides:
definition_in classSinkAdapter- See Also:
-
figure
Starts 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_
public void figure_()Ends a basic image embedding element.- Specified by:
figure_in interfaceSink- Overrides:
figure_in classSinkAdapter
-
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 classSinkAdapter- Parameters:
src- the image source, a valid URL.attributes- A set ofSinkEventAttributes, may benull.- See Also:
-
figureCaption
Starts 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_
public void figureCaption_()Ends 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_
public void paragraph_()Ends a paragraph element.- Specified by:
paragraph_in interfaceSink- Overrides:
paragraph_in classSinkAdapter- See Also:
-
data
Starts 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_
public void data_()Ends an data element.- Specified by:
data_in interfaceSink- Overrides:
data_in classSinkAdapter
-
time
Starts 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_
public void time_()Ends 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_
public void 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_
public void 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_
public void 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_
public void 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
Starts 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_
public void table_()Ends a table element.- Specified by:
table_in interfaceSink- Overrides:
table_in classSinkAdapter- See Also:
-
tableRows
public void tableRows(int[] justification, boolean grid) 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.grid- iftruethe style classbodyTableBorderwill be added true to provide a grid, false otherwise.- See Also:
-
tableRows_
public void tableRows_()Ends 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_
public void tableRow_()Ends a row element.- Specified by:
tableRow_in interfaceSink- Overrides:
tableRow_in classSinkAdapter- See Also:
-
tableCell
Starts 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
Starts 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
- Parameters:
headerRow- true if it is an header rowattributes- the cell attributes- See Also:
-
tableCell_
public void tableCell_()Ends a cell element.- Specified by:
tableCell_in interfaceSink- Overrides:
tableCell_in classSinkAdapter
-
tableHeaderCell_
public void tableHeaderCell_()Ends a cell header element.- Specified by:
tableHeaderCell_in interfaceSink- Overrides:
tableHeaderCell_in classSinkAdapter
-
tableCell_
private void tableCell_(boolean headerRow) Ends a table cell.- Parameters:
headerRow- true if it is an header row- See Also:
-
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_
public void 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_
public void 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_
public void link_()Ends a link element.- Specified by:
link_in interfaceSink- Overrides:
link_in classSinkAdapter- See Also:
-
inlineSemantics
private void inlineSemantics(SinkEventAttributes attributes, String semantic, List<HTML.Tag> tags, HTML.Tag tag) -
inline
Starts 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_
public void inline_()Ends an inline element.- Specified by:
inline_in interfaceSink- Overrides:
inline_in classSinkAdapter
-
italic
public void italic()Starts an italic element. Alternatively one may useSink.text(String,SinkEventAttributes)withSTYLEinstead.- Specified by:
italicin interfaceSink- Overrides:
italicin classSinkAdapter- See Also:
-
italic_
public void 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
public void bold()Starts a bold element. Alternatively one may useSink.text(String,SinkEventAttributes)withSTYLEinstead.- Specified by:
boldin interfaceSink- Overrides:
boldin classSinkAdapter- See Also:
-
bold_
public void 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
public void monospaced()Starts a monospaced element. Alternatively one may useSink.text(String,SinkEventAttributes)withSTYLEinstead.- Specified by:
monospacedin interfaceSink- Overrides:
monospacedin classSinkAdapter- See Also:
-
monospaced_
public void 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
- Specified by:
lineBreakOpportunityin interfaceSink- Overrides:
lineBreakOpportunityin classSinkAdapter- Parameters:
attributes- A set ofSinkEventAttributes, may benull.
-
pageBreak
public void pageBreak()Adding a new page separator.- Specified by:
pageBreakin interfaceSink- Overrides:
pageBreakin classSinkAdapter
-
nonBreakingSpace
public void nonBreakingSpace()Adding a non breaking space, ie a space without any special formatting operations.- Specified by:
nonBreakingSpacein interfaceSink- Overrides:
nonBreakingSpacein classSinkAdapter
-
text
Adds 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
Adding 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
Add a comment.- Specified by:
commentin interfaceSink- Overrides:
commentin classSinkAdapter- Parameters:
comment- The comment to write.
-
unknown
Add 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.
-
escapeAttributeValues
-
flush
public void flush()Flush the writer or the stream, if needed. Flushing a previously-flushed Sink has no effect.- Specified by:
flushin interfaceSink- Overrides:
flushin classSinkAdapter
-
close
public void close()Close 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
-
encodeURL
-
write
Write a text to the sink.- Specified by:
writein classAbstractXmlSink- Parameters:
text- the given text to write
-
writeStartTag
Starts 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 a simple tag.
-
writeEndTag
Ends a Tag without writing an EOL. For instance:</tag>
.- Overrides:
writeEndTagin classAbstractXmlSink- Parameters:
t- a tag.
-