public class Xhtml5BaseSink extends AbstractXmlSink implements HtmlMarkup
Modifier and Type | Class and Description |
---|---|
protected static class |
Xhtml5BaseSink.VerbatimMode |
Modifier and Type | Field and Description |
---|---|
protected Stack<HTML.Tag> |
contentStack
Keep track of the main and div tags for content events.
|
protected Stack<List<HTML.Tag>> |
inlineStack
Keep track of the closing tags for inline events.
|
protected MutableAttributeSet |
tableAttributes
used to store attributes passed to table().
|
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, WBR
BANG, CDATA, DOCTYPE_START, ENTITY_START, XML_NAMESPACE
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, STAR
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_6
Constructor and Description |
---|
Xhtml5BaseSink(Writer out)
Constructor, initialize the PrintWriter.
|
Modifier and Type | Method and Description |
---|---|
void |
address_()
Ends an address element.
|
void |
address(SinkEventAttributes attributes)
Starts an address element.
|
void |
anchor_()
Ends an anchor element.
|
void |
anchor(String name,
SinkEventAttributes attributes)
Starts an element which defines an anchor.
|
void |
article_()
Ends the article element.
|
void |
article(SinkEventAttributes attributes)
Starts an article within a document.
|
void |
blockquote_()
Ends an blockquote element.
|
void |
blockquote(SinkEventAttributes attributes)
Starts a blockquote element.
|
void |
bold_()
Ends a bold element.
|
void |
bold()
Starts a bold element.
|
void |
close()
Close the writer or the stream, if needed.
|
void |
comment(String comment)
Add a comment.
|
void |
content_()
Ends a main content section.
|
void |
content(SinkEventAttributes attributes)
Start the main content section between the header and the
footer within the sections and/or body.
|
protected void |
content(String text)
Write HTML escaped text to output.
|
void |
data_()
Ends an data element.
|
void |
data(String value,
SinkEventAttributes attributes)
Starts a data element which groups together other elements representing microformats.
|
void |
definedTerm_()
Ends a definition term element within a definition list.
|
void |
definedTerm(SinkEventAttributes attributes)
Starts a definition term element within a definition list.
|
void |
definition_()
Ends a definition element within a definition list.
|
void |
definition(SinkEventAttributes attributes)
Starts a definition element within a definition list.
|
void |
definitionList_()
Ends a definition list element.
|
void |
definitionList(SinkEventAttributes attributes)
Starts a definition list.
|
void |
division_()
Ends a division element.
|
void |
division(SinkEventAttributes attributes)
Starts a division element grouping together other elements.
|
protected static String |
encodeURL(String text)
Forward to HtmlTools.encodeURL(text).
|
protected static String |
escapeHTML(String text)
Forward to HtmlTools.escapeHTML(text).
|
void |
figure_()
Ends a basic image embedding element.
|
void |
figure(SinkEventAttributes attributes)
Starts a basic image embedding element.
|
void |
figureCaption_()
Ends a caption of an image.
|
void |
figureCaption(SinkEventAttributes attributes)
Starts a figure caption.
|
void |
figureGraphics(String src,
SinkEventAttributes attributes)
Adds a graphic element.
|
void |
flush()
Flush the writer or the stream, if needed.
|
void |
footer_()
Ends a footer element.
|
void |
footer(SinkEventAttributes attributes)
Start a new footer within the section or body.
|
protected int |
getCellCount()
Getter for the field
cellCount . |
protected int[] |
getCellJustif()
Getter for the field
cellJustif . |
protected StringBuffer |
getTextBuffer()
To use mainly when playing with the head events.
|
protected Xhtml5BaseSink.VerbatimMode |
getVerbatimMode() |
void |
header_()
Ends a header element.
|
void |
header(SinkEventAttributes attributes)
Start a new header within the section or body.
|
void |
horizontalRule(SinkEventAttributes attributes)
Adds a horizontal separator rule.
|
protected void |
init()
This is called in
AbstractSink.head() or in Sink.close() , and can be used
to set the sink into a clear state so it can be re-used. |
void |
inline_()
Ends an inline element.
|
void |
inline(SinkEventAttributes attributes)
Starts an inline element.
|
protected boolean |
isHeadFlag()
isHeadFlag.
|
protected boolean |
isVerbatim() |
void |
italic_()
Ends an italic element.
|
void |
italic()
Starts an italic element.
|
void |
lineBreak(SinkEventAttributes attributes)
Adds a line break.
|
void |
lineBreakOpportunity(SinkEventAttributes attributes)
Adds a line break opportunity.
|
void |
link_()
Ends a link element.
|
void |
link(String name,
SinkEventAttributes attributes)
The default style class for external link is
externalLink . |
void |
list_()
Ends an unordered list element.
|
void |
list(SinkEventAttributes attributes)
Starts an unordered list.
|
void |
listItem_()
Ends a list item element within an unordered list.
|
void |
listItem(SinkEventAttributes attributes)
Starts a list item element within an unordered list.
|
void |
monospaced_()
Ends a monospaced element.
|
void |
monospaced()
Starts a monospaced element.
|
void |
navigation_()
Ends the navigation element.
|
void |
navigation(SinkEventAttributes attributes)
Starts a navigation section within a document.
|
void |
nonBreakingSpace()
Adding a non breaking space, ie a space without any special formatting operations.
|
void |
numberedList_()
Ends an ordered list element.
|
void |
numberedList(int numbering,
SinkEventAttributes attributes)
The default list style depends on the numbering.
|
void |
numberedListItem_()
Ends a list item element within an ordered list.
|
void |
numberedListItem(SinkEventAttributes attributes)
Starts a list item element within an ordered list.
|
protected void |
onSection_(int depth)
Ends a section.
|
protected void |
onSection(int depth,
SinkEventAttributes attributes)
Starts a section.
|
protected void |
onSectionTitle_(int depth)
Ends a section title.
|
protected void |
onSectionTitle(int depth,
SinkEventAttributes attributes)
Starts a section title.
|
void |
pageBreak()
Adding a new page separator.
|
void |
paragraph_()
Ends a paragraph element.
|
void |
paragraph(SinkEventAttributes attributes)
Starts a paragraph.
|
void |
rawText(String text)
Adding a raw text, ie a text without any special formatting operations.
|
protected void |
resetTextBuffer()
Reset the text buffer.
|
void |
section_(int level)
Ends a section at the given level.
|
void |
section(int level,
SinkEventAttributes attributes)
Start a new section at the given level.
|
void |
sectionTitle_(int level)
Ends a section title at the given level.
|
void |
sectionTitle(int level,
SinkEventAttributes attributes)
Start a new section title at the given level.
|
protected void |
setCellCount(int count)
Setter for the field
cellCount . |
protected void |
setCellJustif(int[] justif)
Setter for the field
cellJustif . |
protected void |
setHeadFlag(boolean headFlag)
Setter for the field
headFlag . |
protected void |
setVerbatimMode(Xhtml5BaseSink.VerbatimMode mode)
Setter for the field
verbatimMode . |
void |
sidebar_()
Ends the sidebar element.
|
void |
sidebar(SinkEventAttributes attributes)
Starts a sidebar section within a document.
|
void |
table_()
Ends a table element.
|
void |
table(SinkEventAttributes attributes)
Starts a table.
|
void |
tableCaption_()
Ends a caption element of a table.
|
void |
tableCaption(SinkEventAttributes attributes)
Starts a table caption.
|
void |
tableCell_()
Ends a cell element.
|
void |
tableCell(SinkEventAttributes attributes)
Starts a table cell.
|
void |
tableHeaderCell_()
Ends a cell header element.
|
void |
tableHeaderCell(SinkEventAttributes attributes)
Starts a table header cell.
|
void |
tableRow_()
Ends a row element.
|
void |
tableRow(SinkEventAttributes attributes)
Rows are striped with two colors by adding the class
a or b . |
void |
tableRows_()
Ends an element that contains rows of table data.
|
void |
tableRows(int[] justification,
boolean grid)
The default style class is
bodyTable . |
void |
text(String text,
SinkEventAttributes attributes)
Adds a text.
|
void |
time_()
Ends a time element.
|
void |
time(String datetime,
SinkEventAttributes attributes)
Starts a time element which groups together other elements representing a time.
|
void |
unknown(String name,
Object[] requiredParams,
SinkEventAttributes attributes)
Add an unknown event.
|
void |
verbatim_()
Ends a verbatim element.
|
void |
verbatim(SinkEventAttributes attributes)
Depending on whether the decoration attribute is "source" or not, this leads
to either emitting {@code
|
protected void |
verbatimContent(String text)
Write HTML escaped text to output.
|
protected void |
write(String text)
Write a text to the sink.
|
protected void |
writeEndTag(HTML.Tag t)
Ends a Tag without writing an EOL.
|
protected void |
writeStartTag(HTML.Tag t,
MutableAttributeSet att,
boolean isSimpleTag)
Starts a Tag with attributes.
|
getNameSpace, setInsertNewline, setNameSpace, writeEOL, writeSimpleTag, writeSimpleTag, writeStartTag, writeStartTag
author_, author, body_, body, date_, date, definitionListItem_, definitionListItem, head_, head, title_, title
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
protected Stack<HTML.Tag> contentStack
protected Stack<List<HTML.Tag>> inlineStack
protected MutableAttributeSet tableAttributes
public Xhtml5BaseSink(Writer out)
out
- The writer to write the result.protected StringBuffer getTextBuffer()
protected void setHeadFlag(boolean headFlag)
Setter for the field headFlag
.
headFlag
- an header flag.protected boolean isHeadFlag()
isHeadFlag.
protected Xhtml5BaseSink.VerbatimMode getVerbatimMode()
protected void setVerbatimMode(Xhtml5BaseSink.VerbatimMode mode)
Setter for the field verbatimMode
.
mode
- a verbatim mode.protected boolean isVerbatim()
true
if inside verbatim section, false
otherwiseprotected void setCellJustif(int[] justif)
Setter for the field cellJustif
.
justif
- the new cell justification array.protected int[] getCellJustif()
Getter for the field cellJustif
.
protected void setCellCount(int count)
Setter for the field cellCount
.
count
- the new cell count.protected int getCellCount()
Getter for the field cellCount
.
protected void init()
AbstractSink.head()
or in Sink.close()
, and can be used
to set the sink into a clear state so it can be re-used.init
in class AbstractSink
protected void resetTextBuffer()
public void article(SinkEventAttributes attributes)
Supported attributes are the base attributes
.
article
in interface Sink
article
in class SinkAdapter
attributes
- A set of SinkEventAttributes
, may be null
.public void article_()
article_
in interface Sink
article_
in class SinkAdapter
public void navigation(SinkEventAttributes attributes)
Supported attributes are the base attributes
.
navigation
in interface Sink
navigation
in class SinkAdapter
attributes
- A set of SinkEventAttributes
, may be null
.Sink.navigation(SinkEventAttributes)
public void navigation_()
navigation_
in interface Sink
navigation_
in class SinkAdapter
public void sidebar(SinkEventAttributes attributes)
Supported attributes are the base attributes
.
sidebar
in interface Sink
sidebar
in class SinkAdapter
attributes
- A set of SinkEventAttributes
, may be null
.public void sidebar_()
sidebar_
in interface Sink
sidebar_
in class SinkAdapter
public void section(int level, SinkEventAttributes attributes)
Sections with higher level have to be entirely contained within sections of lower level.
Supported attributes are the base attributes
.
section
in interface Sink
section
in class SinkAdapter
level
- the section level (must be a value between 1 and 6).attributes
- A set of SinkEventAttributes
, may be null
.public void sectionTitle(int level, SinkEventAttributes attributes)
This element is optional, but if it exists, it has to be contained, and be the first
element, within a corresponding section
element 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 attributes
plus
ALIGN
.
sectionTitle
in interface Sink
sectionTitle
in class SinkAdapter
level
- the section title level (must be a value between 1 and 6).attributes
- A set of SinkEventAttributes
, may be null
.public void sectionTitle_(int level)
sectionTitle_
in interface Sink
sectionTitle_
in class SinkAdapter
level
- the section title level (must be a value between 1 and 6).public void section_(int level)
protected void onSection(int depth, SinkEventAttributes attributes)
depth
- The level of the section.attributes
- some attributes. May be null.protected void onSection_(int depth)
depth
- The level of the section.HtmlMarkup.SECTION
protected void onSectionTitle(int depth, SinkEventAttributes attributes)
depth
- The level of the section title.attributes
- some attributes. May be null.HtmlMarkup.H1
,
HtmlMarkup.H2
,
HtmlMarkup.H3
,
HtmlMarkup.H4
,
HtmlMarkup.H5
,
HtmlMarkup.H6
protected void onSectionTitle_(int depth)
depth
- The level of the section title.HtmlMarkup.H1
,
HtmlMarkup.H2
,
HtmlMarkup.H3
,
HtmlMarkup.H4
,
HtmlMarkup.H5
,
HtmlMarkup.H6
public void header(SinkEventAttributes attributes)
Supported attributes are the base attributes
.
header
in interface Sink
header
in class SinkAdapter
attributes
- A set of SinkEventAttributes
, may be null
.public void header_()
header_
in interface Sink
header_
in class SinkAdapter
public void content(SinkEventAttributes attributes)
Supported attributes are the base attributes
.
content
in interface Sink
content
in class SinkAdapter
attributes
- A set of SinkEventAttributes
, may be null
.public void content_()
content_
in interface Sink
content_
in class SinkAdapter
public void footer(SinkEventAttributes attributes)
Supported attributes are the base attributes
.
footer
in interface Sink
footer
in class SinkAdapter
attributes
- A set of SinkEventAttributes
, may be null
.public void footer_()
footer_
in interface Sink
footer_
in class SinkAdapter
public void list(SinkEventAttributes attributes)
Supported attributes are the base attributes
.
list
in interface Sink
list
in class SinkAdapter
attributes
- A set of SinkEventAttributes
, may be null
.HTML.Tag.UL
public void list_()
list_
in interface Sink
list_
in class SinkAdapter
HTML.Tag.UL
public void listItem(SinkEventAttributes attributes)
Supported attributes are the base attributes
.
listItem
in interface Sink
listItem
in class SinkAdapter
attributes
- A set of SinkEventAttributes
, may be null
.HTML.Tag.LI
public void listItem_()
listItem_
in interface Sink
listItem_
in class SinkAdapter
HTML.Tag.LI
public void numberedList(int numbering, SinkEventAttributes attributes)
Supported attributes are the base attributes
.
numberedList
in interface Sink
numberedList
in class SinkAdapter
numbering
- the numbering style.attributes
- A set of SinkEventAttributes
, may be null
.HTML.Tag.OL
public void numberedList_()
numberedList_
in interface Sink
numberedList_
in class SinkAdapter
HTML.Tag.OL
public void numberedListItem(SinkEventAttributes attributes)
Supported attributes are the base attributes
.
numberedListItem
in interface Sink
numberedListItem
in class SinkAdapter
attributes
- A set of SinkEventAttributes
, may be null
.HTML.Tag.LI
public void numberedListItem_()
numberedListItem_
in interface Sink
numberedListItem_
in class SinkAdapter
HTML.Tag.LI
public void definitionList(SinkEventAttributes attributes)
Supported attributes are the base attributes
.
definitionList
in interface Sink
definitionList
in class SinkAdapter
attributes
- A set of SinkEventAttributes
, may be null
.HTML.Tag.DL
public void definitionList_()
definitionList_
in interface Sink
definitionList_
in class SinkAdapter
HTML.Tag.DL
public void definedTerm(SinkEventAttributes attributes)
Supported attributes are the base attributes
.
definedTerm
in interface Sink
definedTerm
in class SinkAdapter
attributes
- A set of SinkEventAttributes
, may be null
.HTML.Tag.DT
public void definedTerm_()
definedTerm_
in interface Sink
definedTerm_
in class SinkAdapter
HTML.Tag.DT
public void definition(SinkEventAttributes attributes)
Supported attributes are the base attributes
.
definition
in interface Sink
definition
in class SinkAdapter
attributes
- A set of SinkEventAttributes
, may be null
.HTML.Tag.DD
public void definition_()
definition_
in interface Sink
definition_
in class SinkAdapter
HTML.Tag.DD
public void figure(SinkEventAttributes attributes)
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
.
figure
in interface Sink
figure
in class SinkAdapter
attributes
- A set of SinkEventAttributes
, may be null
.public void figure_()
figure_
in interface Sink
figure_
in class SinkAdapter
public void figureGraphics(String src, SinkEventAttributes attributes)
The src
parameter 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 attributes
plus:
SRC
,ALT
,WIDTH
,HEIGHT
,ALIGN
,BORDER
,HSPACE
,VSPACE
,ISMAP
,USEMAP
.
If the SRC
attribute is specified in SinkEventAttributes,
it will be overridden by the src
parameter.
figureGraphics
in interface Sink
figureGraphics
in class SinkAdapter
src
- the image source, a valid URL.attributes
- A set of SinkEventAttributes
, may be null
.Sink.figure(SinkEventAttributes)
public void figureCaption(SinkEventAttributes attributes)
Supported attributes are the base attributes
.
figureCaption
in interface Sink
figureCaption
in class SinkAdapter
attributes
- A set of SinkEventAttributes
, may be null
.Sink.figure(SinkEventAttributes)
public void figureCaption_()
figureCaption_
in interface Sink
figureCaption_
in class SinkAdapter
public void paragraph(SinkEventAttributes attributes)
Supported attributes are the base attributes
plus ALIGN
.
paragraph
in interface Sink
paragraph
in class SinkAdapter
attributes
- A set of SinkEventAttributes
, may be null
.HTML.Tag.P
public void paragraph_()
paragraph_
in interface Sink
paragraph_
in class SinkAdapter
HTML.Tag.P
public void data(String value, SinkEventAttributes attributes)
Supported attributes are the base attributes
plus VALUE
.
data
in interface Sink
data
in class SinkAdapter
value
- the machine readable value of the data, may be null
.attributes
- A set of SinkEventAttributes
, may be null
.public void data_()
data_
in interface Sink
data_
in class SinkAdapter
public void time(String datetime, SinkEventAttributes attributes)
Supported attributes are the base attributes
plus DATETIME
.
time
in interface Sink
time
in class SinkAdapter
datetime
- the machine readable value of the time, may be null
.attributes
- A set of SinkEventAttributes
, may be null
.public void time_()
time_
in interface Sink
time_
in class SinkAdapter
public void address(SinkEventAttributes attributes)
address
in interface Sink
address
in class SinkAdapter
attributes
- A set of SinkEventAttributes
, may be null
.HTML.Tag.ADDRESS
public void address_()
address_
in interface Sink
address_
in class SinkAdapter
HTML.Tag.ADDRESS
public void blockquote(SinkEventAttributes attributes)
Supported attributes are the base attributes
.
blockquote
in interface Sink
blockquote
in class SinkAdapter
attributes
- A set of SinkEventAttributes
, may be null
.HTML.Tag.BLOCKQUOTE
public void blockquote_()
blockquote_
in interface Sink
blockquote_
in class SinkAdapter
HTML.Tag.BLOCKQUOTE
public void division(SinkEventAttributes attributes)
Supported attributes are the base attributes
plus ALIGN
.
division
in interface Sink
division
in class SinkAdapter
attributes
- A set of SinkEventAttributes
, may be null
.HTML.Tag.DIV
public void division_()
division_
in interface Sink
division_
in class SinkAdapter
HTML.Tag.DIV
public void verbatim(SinkEventAttributes attributes)
<pre><code>
or just <pre>
.
No default classes are emitted but the given attributes are always added to the pre
element 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 attributes
plus:
DECORATION
(values: "source"),ALIGN
,WIDTH
.
verbatim
in interface Sink
verbatim
in class SinkAdapter
attributes
- A set of SinkEventAttributes
, may be null
.HTML.Tag.PRE
,
HTML.Tag.CODE
public void verbatim_()
verbatim_
in interface Sink
verbatim_
in class SinkAdapter
HTML.Tag.CODE
,
HTML.Tag.PRE
public void horizontalRule(SinkEventAttributes attributes)
Supported attributes are the base attributes
plus:
ALIGN
,NOSHADE
,SIZE
,WIDTH
.
horizontalRule
in interface Sink
horizontalRule
in class SinkAdapter
attributes
- A set of SinkEventAttributes
, may be null
.HTML.Tag.HR
public void table(SinkEventAttributes attributes)
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 attributes
plus:
ALIGN
,BGCOLOR
,BORDER
,CELLPADDING
,CELLSPACING
,FRAME
,RULES
,SUMMARY
,WIDTH
.
table
in interface Sink
table
in class SinkAdapter
attributes
- A set of SinkEventAttributes
, may be null
.public void table_()
table_
in interface Sink
table_
in class SinkAdapter
HTML.Tag.TABLE
public void tableRows(int[] justification, boolean grid)
bodyTable
.tableRows
in interface Sink
tableRows
in class SinkAdapter
grid
- if true
the style class bodyTableBorder
will be added
true to provide a grid, false otherwise.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.HTML.Tag.TABLE
public void tableRows_()
tableRows_
in interface Sink
tableRows_
in class SinkAdapter
public void tableRow(SinkEventAttributes attributes)
a
or b
. If the provided attributes
specify the hidden
class, the next call to tableRow will set the same striping class as this one. A
style for hidden
or table.bodyTable hidden
may need to be provided to actually hide
such a row. Starts a table row.
Supported attributes are the base attributes
plus:
ALIGN
,BGCOLOR
,VALIGN
.
tableRow
in interface Sink
tableRow
in class SinkAdapter
attributes
- A set of SinkEventAttributes
, may be null
.HTML.Tag.TR
public void tableRow_()
tableRow_
in interface Sink
tableRow_
in class SinkAdapter
HTML.Tag.TR
public void tableCell(SinkEventAttributes attributes)
Supported attributes are the base attributes
plus:
ABBRV
,ALIGN
,AXIS
,BGCOLOR
,COLSPAN
,HEADERS
,HEIGHT
,NOWRAP
,ROWSPAN
,SCOPE
,VALIGN
,WIDTH
.
tableCell
in interface Sink
tableCell
in class SinkAdapter
attributes
- A set of SinkEventAttributes
, may be null
.public void tableHeaderCell(SinkEventAttributes attributes)
Supported attributes are the same as for tableCell
.
tableHeaderCell
in interface Sink
tableHeaderCell
in class SinkAdapter
attributes
- A set of SinkEventAttributes
, may be null
.public void tableCell_()
tableCell_
in interface Sink
tableCell_
in class SinkAdapter
public void tableHeaderCell_()
tableHeaderCell_
in interface Sink
tableHeaderCell_
in class SinkAdapter
public void tableCaption(SinkEventAttributes attributes)
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 attributes
plus ALIGN
.
tableCaption
in interface Sink
tableCaption
in class SinkAdapter
attributes
- A set of SinkEventAttributes
, may be null
.HTML.Tag.CAPTION
public void tableCaption_()
tableCaption_
in interface Sink
tableCaption_
in class SinkAdapter
HTML.Tag.CAPTION
public void anchor(String name, SinkEventAttributes attributes)
The name
parameter 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
.
If NAME
is specified in the SinkEventAttributes,
it will be overwritten by the name
parameter.
anchor
in interface Sink
anchor
in class SinkAdapter
name
- the name of the anchor. This has to be a valid SGML NAME token.attributes
- A set of SinkEventAttributes
, may be null
.HTML.Tag.A
public void anchor_()
anchor_
in interface Sink
anchor_
in class SinkAdapter
HTML.Tag.A
public void link(String name, SinkEventAttributes attributes)
externalLink
.
Starts a link.
The name
parameter has to be a valid URI according to
RFC 3986,
i.e. for internal links (links to an anchor within the same source
document), name
should start with the character "#".
This also implies that all unsafe characters are already encoded.
Supported attributes are the base attributes
plus:
CHARSET
,COORDS
,HREF
,HREFLANG
,REL
,REV
,SHAPE
,TARGET
,TYPE
.
If HREF
is specified in the
SinkEventAttributes, it will be overwritten by the name
parameter.
link
in interface Sink
link
in class SinkAdapter
name
- the name of the link.attributes
- A set of SinkEventAttributes
, may be null
.HTML.Tag.A
public void link_()
link_
in interface Sink
link_
in class SinkAdapter
HTML.Tag.A
public void inline(SinkEventAttributes attributes)
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 attributes
plus
SEMANTICS
(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").
inline
in interface Sink
inline
in class SinkAdapter
attributes
- A set of SinkEventAttributes
, may be null
.public void inline_()
inline_
in interface Sink
inline_
in class SinkAdapter
public void italic()
Sink.text(String,SinkEventAttributes)
with
STYLE
instead.italic
in interface Sink
italic
in class SinkAdapter
HTML.Tag.I
public void italic_()
Sink.text(String,SinkEventAttributes)
with
STYLE
instead.italic_
in interface Sink
italic_
in class SinkAdapter
HTML.Tag.I
public void bold()
Sink.text(String,SinkEventAttributes)
with
STYLE
instead.bold
in interface Sink
bold
in class SinkAdapter
HTML.Tag.B
public void bold_()
Sink.text(String,SinkEventAttributes)
with
STYLE
instead.bold_
in interface Sink
bold_
in class SinkAdapter
HTML.Tag.B
public void monospaced()
Sink.text(String,SinkEventAttributes)
with
STYLE
instead.monospaced
in interface Sink
monospaced
in class SinkAdapter
HTML.Tag.CODE
public void monospaced_()
Sink.text(String,SinkEventAttributes)
with
STYLE
instead.monospaced_
in interface Sink
monospaced_
in class SinkAdapter
HTML.Tag.CODE
public void lineBreak(SinkEventAttributes attributes)
lineBreak
in interface Sink
lineBreak
in class SinkAdapter
attributes
- A set of SinkEventAttributes
, may be null
.HTML.Tag.BR
public void lineBreakOpportunity(SinkEventAttributes attributes)
lineBreakOpportunity
in interface Sink
lineBreakOpportunity
in class SinkAdapter
attributes
- A set of SinkEventAttributes
, may be null
.public void pageBreak()
pageBreak
in interface Sink
pageBreak
in class SinkAdapter
public void nonBreakingSpace()
nonBreakingSpace
in interface Sink
nonBreakingSpace
in class SinkAdapter
public void text(String text, SinkEventAttributes attributes)
The text
parameter should contain only real content, ie any
ignorable/collapsable whitespace/EOLs or other pretty-printing should
be removed/normalized by a parser.
If text
contains any variants of line terminators, they should
be normalized to the System EOL by an implementing Sink.
Supported attributes are the base attributes
plus
SEMANTICS
(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").
text
in interface Sink
text
in class SinkAdapter
text
- The text to write.attributes
- A set of SinkEventAttributes
, may be null
.public void rawText(String text)
rawText
in interface Sink
rawText
in class SinkAdapter
text
- The text to write.public void comment(String comment)
comment
in interface Sink
comment
in class SinkAdapter
comment
- The comment to write.public void unknown(String name, Object[] requiredParams, SinkEventAttributes attributes)
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);
unknown
in interface Sink
unknown
in class SinkAdapter
name
- the name of the event. If this is not a valid xhtml tag name
as defined in HtmlMarkup
then 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 of
TAG_TYPE_START
,
TAG_TYPE_END
,
TAG_TYPE_SIMPLE
,
ENTITY_TYPE
, or
CDATA_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.public void flush()
flush
in interface Sink
flush
in class SinkAdapter
public void close()
close
in interface AutoCloseable
close
in interface Sink
close
in class SinkAdapter
protected void content(String text)
text
- The text to write.protected void verbatimContent(String text)
text
- The text to write.protected static String escapeHTML(String text)
text
- the String to escape, may be nullHtmlTools.escapeHTML(String)
protected static String encodeURL(String text)
text
- the String to encode, may be null.HtmlTools.encodeURL(String)
protected void write(String text)
write
in class AbstractXmlSink
text
- the given text to writeprotected void writeStartTag(HTML.Tag t, MutableAttributeSet att, boolean isSimpleTag)
<tag attName="attValue">
writeStartTag
in class AbstractXmlSink
t
- a non null tag.att
- a set of attributes. May be null.isSimpleTag
- boolean to write as a simple tag.protected void writeEndTag(HTML.Tag t)
</tag>.
writeEndTag
in class AbstractXmlSink
t
- a tag.Copyright © 2005–2024 The Apache Software Foundation. All rights reserved.