Class SinkAdapter
- All Implemented Interfaces:
AutoCloseable, Markup, Sink
- Direct Known Subclasses:
AbstractTextSink, AbstractXhtml5Sink, AbstractXmlSink
Sink interface. Useful for testing purposes.- Since:
- 1.0
-
Field Summary
Fields 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_6 -
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.voidauthor(SinkEventAttributes attributes) Starts an author element.voidauthor_()Ends an author element.voidblockquote(SinkEventAttributes attributes) Starts a blockquote element.voidEnds an blockquote element.voidbody(SinkEventAttributes attributes) Starts the body of a document.voidbody_()Ends the body element.voidbold()Starts a bold element.voidbold_()Ends a bold element.voidclose()Close the writer or the stream, if needed.voidAdd a comment.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.voiddate(SinkEventAttributes attributes) Starts the date element.voiddate_()Ends the date 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.voiddefinitionListItem(SinkEventAttributes attributes) Starts a list item element within a definition list.voidEnds a list item element within a definition list.voiddivision(SinkEventAttributes attributes) Starts a division element grouping together other elements.voidEnds a division element.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.voidhead(SinkEventAttributes attributes) Starts the head element.voidhead_()Ends the head element.voidheader(SinkEventAttributes attributes) Start a new header within the section or body.voidheader_()Ends a header element.voidhorizontalRule(SinkEventAttributes attributes) Adds a horizontal separator rule.voidinline(SinkEventAttributes attributes) Starts an inline element.voidinline_()Ends an inline element.voiditalic()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) Starts a link.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) Starts an ordered list element.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.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.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.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) Starts a table row.voidEnds a row element.voidtableRows(int[] justification, boolean grid) Starts an element that contains rows of table data.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.voidtitle(SinkEventAttributes attributes) Starts the title element.voidtitle_()Ends the title element.voidunknown(String name, Object[] requiredParams, SinkEventAttributes attributes) Add an unknown event.voidverbatim(SinkEventAttributes attributes) Starts a verbatim block, ie a block where whitespace has semantic relevance.voidEnds a verbatim element.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, init, 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
-
Constructor Details
-
SinkAdapter
public SinkAdapter()
-
-
Method Details
-
head_
public void head_()Ends the head element. -
body_
public void body_()Ends the body element. -
article_
public void article_()Ends the article element. -
sidebar_
public void sidebar_()Ends the sidebar element. -
list_
public void list_()Ends an unordered list element. -
listItem_
public void listItem_()Ends a list item element within an unordered list. -
numberedList_
public void numberedList_()Ends an ordered list element. -
numberedListItem_
public void numberedListItem_()Ends a list item element within an ordered list. -
definitionList_
public void definitionList_()Ends a definition list element. -
definitionListItem_
public void definitionListItem_()Ends a list item element within a definition list. -
definition_
public void definition_()Ends a definition element within a definition list. -
figure_
public void figure_()Ends a basic image embedding element. -
table_
public void table_()Ends a table element. -
tableRows_
public void tableRows_()Ends an element that contains rows of table data. -
tableRow_
public void tableRow_()Ends a row element. -
title_
public void title_()Ends the title element. -
author_
public void author_()Ends an author element. -
date_
public void date_()Ends the date element. -
header_
public void header_()Ends a header element. -
content_
public void content_()Ends a main content section. -
paragraph_
public void paragraph_()Ends a paragraph element. -
data_
public void data_()Ends an data element. -
time_
public void time_()Ends a time element. -
address_
public void address_()Ends an address element. -
blockquote_
public void blockquote_()Ends an blockquote element. -
division_
public void division_()Ends a division element. -
verbatim_
public void verbatim_()Ends a verbatim element. -
definedTerm_
public void definedTerm_()Ends a definition term element within a definition list. -
figureCaption_
public void figureCaption_()Ends a caption of an image. -
tableCell_
public void tableCell_()Ends a cell element. -
tableHeaderCell_
public void tableHeaderCell_()Ends a cell header element. -
tableCaption_
public void tableCaption_()Ends a caption element of a table. -
pageBreak
public void pageBreak()Adding a new page separator. -
anchor_
public void anchor_()Ends an anchor element. -
link_
public void link_()Ends a link element. -
inline_
public void inline_()Ends an inline element. -
italic
public void italic()Starts an italic element. Alternatively one may useSink.text(String,SinkEventAttributes)withSTYLEinstead. -
italic_
public void italic_()Ends an italic element. Alternatively one may useSink.text(String,SinkEventAttributes)withSTYLEinstead. -
bold
public void bold()Starts a bold element. Alternatively one may useSink.text(String,SinkEventAttributes)withSTYLEinstead. -
bold_
public void bold_()Ends a bold element. Alternatively one may useSink.text(String,SinkEventAttributes)withSTYLEinstead. -
monospaced
public void monospaced()Starts a monospaced element. Alternatively one may useSink.text(String,SinkEventAttributes)withSTYLEinstead. -
monospaced_
public void monospaced_()Ends a monospaced element. Alternatively one may useSink.text(String,SinkEventAttributes)withSTYLEinstead. -
nonBreakingSpace
public void nonBreakingSpace()Adding a non breaking space, ie a space without any special formatting operations. -
rawText
Adding a raw text, ie a text without any special formatting operations.- Parameters:
text- The text to write.
-
comment
-
flush
public void flush()Flush the writer or the stream, if needed. Flushing a previously-flushed Sink has no effect. -
close
public void close()Close the writer or the stream, if needed. Closing a previously-closed Sink has no effect. -
head
Starts the head element.This contains information about the current document, (eg its title) that is not considered document content. The head element is optional but if it exists, it has to be unique within a sequence of Sink events that produces one output document, and it has to come before the
Sink.body(SinkEventAttributes)element.The canonical sequence of events for the head element is:
sink.head(); sink.title(); sink.text("Title"); sink.title_(); sink.author(); sink.text("Author"); sink.author_(); sink.date(); sink.text("Date"); sink.date_(); sink.head_();but none of the enclosed events is required. However, if they exist they have to occur in the order shown, and the title() and date() events have to be unique (author() events may occur any number of times).
Supported attributes are:
PROFILE,LANG.- Parameters:
attributes- A set ofSinkEventAttributes, may benull.
-
title
Starts the title element. This is used to identify the document.Supported attributes are the
base attributes.- Parameters:
attributes- A set ofSinkEventAttributes, may benull.- See Also:
-
author
Starts an author element. This is used to identify the author of the document.Supported attributes are:
EMAIL.- Parameters:
attributes- A set ofSinkEventAttributes, may benull.- See Also:
-
date
Starts the date element. This is used to identify the date of the document: there is no strict definition if it is creation date or last modification date, which are the 2 classical semantics. There is no formal formatting requirements either.
The date is recommended (but it is not a requirement) to be aligned to the ISO-8601 standard, i.e.:YYYY-MM-DD
whereYYYYis the year in the Gregorian calendar,MMis the month of the year between 01 (January) and 12 (December),- and
DDis the day of the month between 01 and 31.
Supported attributes are: none.
- Parameters:
attributes- A set ofSinkEventAttributes, may benull.- See Also:
-
body
Starts the body of a document. This contains the document's content.Supported attributes are the
base attributes.- Parameters:
attributes- A set ofSinkEventAttributes, may benull.- See Also:
-
article
Starts an article within a document.Supported attributes are the
base attributes.- Parameters:
attributes- A set ofSinkEventAttributes, may benull.
-
sidebar
Starts a sidebar section within a document.Supported attributes are the
base attributes.- Parameters:
attributes- A set ofSinkEventAttributes, may benull.
-
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.- Parameters:
level- the section level (must be a value between 1 and 6).attributes- A set ofSinkEventAttributes, may benull.
-
section_
-
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.- Parameters:
level- the section title level (must be a value between 1 and 6).attributes- A set ofSinkEventAttributes, may benull.
-
sectionTitle_
-
header
Start a new header within the section or body.Supported attributes are the
base attributes.- Parameters:
attributes- A set ofSinkEventAttributes, may benull.
-
content
Start the main content section between the header and the footer within the sections and/or body.Supported attributes are the
base attributes.- Parameters:
attributes- A set ofSinkEventAttributes, may benull.
-
list
Starts an unordered list.Supported attributes are the
base attributes.- Parameters:
attributes- A set ofSinkEventAttributes, may benull.
-
listItem
Starts a list item element within an unordered list.Supported attributes are the
base attributes.- Parameters:
attributes- A set ofSinkEventAttributes, may benull.
-
numberedList
Starts an ordered list element.Supported attributes are the
base attributes.- Parameters:
numbering- the numbering style.attributes- A set ofSinkEventAttributes, may benull.- See Also:
-
numberedListItem
Starts a list item element within an ordered list.Supported attributes are the
base attributes.- Parameters:
attributes- A set ofSinkEventAttributes, may benull.
-
definitionList
Starts a definition list.Supported attributes are the
base attributes.- Parameters:
attributes- A set ofSinkEventAttributes, may benull.
-
definitionListItem
Starts a list item element within a definition list.Every definitionListItem has to contain exactly one
Sink.definedTerm(SinkEventAttributes)and oneSink.definition(SinkEventAttributes), in this order.Supported attributes are the
base attributes.- Parameters:
attributes- A set ofSinkEventAttributes, may benull.
-
definition
Starts a definition element within a definition list.Supported attributes are the
base attributes.- Parameters:
attributes- A set ofSinkEventAttributes, may benull.
-
definedTerm
Starts a definition term element within a definition list.Supported attributes are the
base attributes.- Parameters:
attributes- A set ofSinkEventAttributes, may benull.
-
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.- Parameters:
attributes- A set ofSinkEventAttributes, may benull.
-
figureCaption
Starts a figure caption.Supported attributes are the
base attributes.- Parameters:
attributes- A set ofSinkEventAttributes, may benull.- See Also:
-
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.- Parameters:
src- the image source, a valid URL.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.- Parameters:
attributes- A set ofSinkEventAttributes, may benull.
-
tableRows
public void tableRows(int[] justification, boolean grid) Starts an element that contains rows of table data.- 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- true to provide a grid, false otherwise.- See Also:
-
tableRow
Starts a table row.Supported attributes are the
base attributesplus:ALIGN,BGCOLOR,VALIGN.- Parameters:
attributes- A set ofSinkEventAttributes, may benull.
-
tableCell
-
tableHeaderCell
Starts a table header cell.Supported attributes are the same as for
tableCell.- Parameters:
attributes- A set ofSinkEventAttributes, may benull.
-
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.- Parameters:
attributes- A set ofSinkEventAttributes, may benull.- See Also:
-
paragraph
Starts a paragraph.Supported attributes are the
base attributesplusALIGN.- Parameters:
attributes- A set ofSinkEventAttributes, may benull.
-
data
Starts a data element which groups together other elements representing microformats.Supported attributes are the
base attributesplusVALUE.- Parameters:
value- the machine readable value of the data, may benull.attributes- A set ofSinkEventAttributes, may benull.
-
time
Starts a time element which groups together other elements representing a time.Supported attributes are the
base attributesplusDATETIME.- Parameters:
datetime- the machine readable value of the time, may benull.attributes- A set ofSinkEventAttributes, may benull.
-
address
Starts an address element.- Parameters:
attributes- A set ofSinkEventAttributes, may benull.
-
blockquote
Starts a blockquote element.Supported attributes are the
base attributes.- Parameters:
attributes- A set ofSinkEventAttributes, may benull.
-
division
Starts a division element grouping together other elements.Supported attributes are the
base attributesplusALIGN.- Parameters:
attributes- A set ofSinkEventAttributes, may benull.
-
verbatim
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.- Parameters:
attributes- A set ofSinkEventAttributes, may benull.
-
horizontalRule
Adds a horizontal separator rule.Supported attributes are the
base attributesplus:ALIGN,NOSHADE,SIZE,WIDTH.- Parameters:
attributes- A set ofSinkEventAttributes, may benull.
-
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.- Parameters:
name- the name of the anchor. This has to be a valid SGML NAME token.attributes- A set ofSinkEventAttributes, may benull.
-
link
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.- Parameters:
name- the name of the link.attributes- A set ofSinkEventAttributes, may benull.- See Also:
-
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").- Parameters:
attributes- A set ofSinkEventAttributes, may benull.
-
lineBreak
- Parameters:
attributes- A set ofSinkEventAttributes, may benull.
-
lineBreakOpportunity
- Parameters:
attributes- A set ofSinkEventAttributes, may benull.
-
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").- Parameters:
text- The text to write.attributes- A set ofSinkEventAttributes, may benull.
-
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.- Parameters:
name- The name of the event.requiredParams- An optional array of required parameters to the event. May benull.attributes- A set ofSinkEventAttributes, may benull.
-