org.apache.maven.doxia.module.fo
Class FoSink

java.lang.Object
  extended by org.apache.maven.doxia.sink.AbstractSink
      extended by org.apache.maven.doxia.sink.SinkAdapter
          extended by org.apache.maven.doxia.sink.AbstractXmlSink
              extended by org.apache.maven.doxia.module.fo.FoSink
All Implemented Interfaces:
LogEnabled, Markup, XmlMarkup, FoMarkup, Sink
Direct Known Subclasses:
FoAggregateSink

public class FoSink
extends AbstractXmlSink
implements FoMarkup

A Doxia Sink that produces a FO model. The usage is similar to the following:

 FoSink sink = new FoSink( writer );
 sink.beginDocument();
 ...
 sink.endDocument();
 

Since:
1.1
Version:
$Id: FoSink.java 1091053 2011-04-11 12:55:07Z ltheussl $
Author:
ltheussl

Field Summary
protected  Map<String,Set<String>> warnMessages
          Map of warn messages with a String as key to describe the error type and a Set as value.
 
Fields inherited from interface org.apache.maven.doxia.module.fo.FoMarkup
BASIC_LINK_TAG, BLOCK_TAG, BOOKMARK_TAG, BOOKMARK_TITLE_TAG, BOOKMARK_TREE_TAG, FLOW_TAG, FO_NAMESPACE, INLINE_TAG, LAYOUT_MASTER_SET_TAG, LEADER_TAG, LIST_BLOCK_TAG, LIST_ITEM_BODY_TAG, LIST_ITEM_LABEL_TAG, LIST_ITEM_TAG, PAGE_NUMBER_CITATION_TAG, PAGE_NUMBER_TAG, PAGE_SEQUENCE_TAG, REGION_AFTER_TAG, REGION_BEFORE_TAG, REGION_BODY_TAG, ROOT_TAG, SIMPLE_PAGE_MASTER_TAG, STATIC_CONTENT_TAG, TABLE_AND_CAPTION_TAG, TABLE_BODY_TAG, TABLE_CAPTION_TAG, TABLE_CELL_TAG, TABLE_COLUMN_TAG, TABLE_ROW_TAG, TABLE_TAG
 
Fields inherited from interface org.apache.maven.doxia.markup.XmlMarkup
BANG, CDATA, DOCTYPE_START, ENTITY_START, XML_NAMESPACE
 
Fields inherited from interface org.apache.maven.doxia.markup.Markup
COLON, EOL, EQUAL, GREATER_THAN, LEFT_CURLY_BRACKET, LEFT_SQUARE_BRACKET, LESS_THAN, MINUS, PLUS, QUOTE, RIGHT_CURLY_BRACKET, RIGHT_SQUARE_BRACKET, SEMICOLON, SLASH, SPACE, STAR
 
Fields inherited from interface org.apache.maven.doxia.sink.Sink
JUSTIFY_CENTER, JUSTIFY_LEFT, JUSTIFY_RIGHT, NUMBERING_DECIMAL, NUMBERING_LOWER_ALPHA, NUMBERING_LOWER_ROMAN, NUMBERING_UPPER_ALPHA, NUMBERING_UPPER_ROMAN, ROLE, SECTION_LEVEL_1, SECTION_LEVEL_2, SECTION_LEVEL_3, SECTION_LEVEL_4, SECTION_LEVEL_5
 
Constructor Summary
protected FoSink(Writer writer)
          Constructor, initialize the Writer.
protected FoSink(Writer writer, String encoding)
          Constructor, initialize the Writer and tells which encoding is used.
protected FoSink(Writer writer, String encoding, String languageId)
          Constructor, initialize the Writer and tells which encoding and languageId are used.
 
Method Summary
 void anchor_()
          Ends an anchor element.
 void anchor(String name)
          Starts an element which defines an anchor.
 void anchor(String name, SinkEventAttributes attributes)
          Starts an element which defines an anchor.

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.

 void author_()
          Ends an author element.
 void author()
          Starts an author element.
 void author(SinkEventAttributes attributes)
          Starts an author element. This is used to identify the author of the document.

Supported attributes are: EMAIL.

 void beginDocument()
          Writes the beginning of a FO document.
 void body_()
          Ends the body element.
 void body()
          Starts the body of a document.
 void body(SinkEventAttributes attributes)
          Starts the body of a document. This contains the document's content.

Supported attributes are the base attributes.

 void bold_()
          Ends a bold element. Alternatively one may use Sink.text(String,SinkEventAttributes) with STYLE instead.
 void bold()
          Starts a bold element. Alternatively one may use Sink.text(String,SinkEventAttributes) with STYLE instead.
protected  void chapterHeading(String headerText, boolean chapterNumber)
          Writes a chapter heading.
 void close()
          Close the writer or the stream, if needed. Closing a previously-closed Sink has no effect.
 void comment(String comment)
          Add a comment.
protected  void content(String text)
          Writes content, escaping special characters.
 void date_()
          Ends the date element.
 void date()
          Starts the date element.
The date is recommended (but it is not a requirement) to be align to the ISO-8601 standard, i.e.:
 YYYY-MM-DD
 
where
  • YYYY is the year in the Gregorian calendar
  • MM is the month of the year between 01 (January) and 12 (December)
  • and DD is the day of the month between 01 and 31
 void date(SinkEventAttributes attributes)
          Starts the date element. This is used to identify the date of the document.

Supported attributes are: none.

 void definedTerm_()
          Starts a definition term element within a definition list.
 void definedTerm()
          Starts a definition term element within a definition list.
 void definedTerm(SinkEventAttributes attributes)
          Starts a definition term element within a definition list.

Supported attributes are the base attributes.

 void definition_()
          Ends a definition element within a definition list.
 void definition()
          Starts a definition element within a definition list.
 void definition(SinkEventAttributes attributes)
          Starts a definition element within a definition list.

Supported attributes are the base attributes.

 void definitionList_()
          Ends a definition list element.
 void definitionList()
          Starts a definition list element.
 void definitionList(SinkEventAttributes attributes)
          Starts a definition list.

Supported attributes are the base attributes.

 void definitionListItem_()
          Ends a list item element within a definition list.
 void definitionListItem()
          Starts a list item element within a definition list.
 void definitionListItem(SinkEventAttributes attributes)
          Starts a list item element within a definition list.

Every definitionListItem has to contain exactly one Sink.definedTerm(SinkEventAttributes) and one Sink.definition(SinkEventAttributes), in this order.

Supported attributes are the base attributes.

 void endDocument()
          Writes the end of a FO document, flushes and closes the stream.
static String escaped(String text, boolean verb)
          Escapes special characters so that the text can be included in a fo file.
 void figure_()
          Ends a basic image embedding element.
 void figure()
          Starts a basic image embedding element.
 void figure(SinkEventAttributes attributes)
          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.

 void figureCaption_()
          Ends a caption of an image.
 void figureCaption()
          Starts a caption of an image element.
 void figureCaption(SinkEventAttributes attributes)
          Starts a figure caption.

Supported attributes are the base attributes.

 void figureGraphics(String name)
          Adding a source of a graphic.
 void figureGraphics(String src, SinkEventAttributes attributes)
          Adds a graphic element.

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.

 void flush()
          Flush the writer or the stream, if needed. Flushing a previously-flushed Sink has no effect.
protected  String getChapterString()
          Returns the current chapter number as a string.
protected  FoConfiguration getFoConfiguration()
          Returns the configuration object of this sink.
 void head_()
          Ends the head element.
 void head()
          Starts the head element.
 void head(SinkEventAttributes attributes)
          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.
 void horizontalRule()
          Adding a separator of sections from a text to each other.
 void horizontalRule(SinkEventAttributes attributes)
          Adds a horizontal separator rule.

Supported attributes are the base attributes plus:

ALIGN, NOSHADE, SIZE, WIDTH.
protected  void init()
          This is called in Sink.head() or in Sink.close(), and can be used to set the sink into a clear state so it can be re-used.
protected  boolean isFigure()
          Flags if we are inside a figure.
 void italic_()
          Ends an italic element. Alternatively one may use Sink.text(String,SinkEventAttributes) with STYLE instead.
 void italic()
          Starts an italic element. Alternatively one may use Sink.text(String,SinkEventAttributes) with STYLE instead.
 void lineBreak()
          Adds a line break.
 void lineBreak(SinkEventAttributes attributes)
          Adds a line break.

Supported attributes are:

ID, CLASS, TITLE, STYLE.
 void link_()
          Ends a link element.
 void link(String name)
          Starts an element which defines a link.
 void link(String name, SinkEventAttributes attributes)
          Starts a link.

The name parameter has to be a valid html href parameter, ie for internal links (links to an anchor within the same source document), name should start with the character "#".

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.

 void list_()
          Ends an unordered list element.
 void list()
          Starts an unordered list element.
 void list(SinkEventAttributes attributes)
          Starts an unordered list.

Supported attributes are the base attributes.

 void listItem_()
          Ends a list item element within an unordered list.
 void listItem()
          Starts a list item element within an unordered list.
 void listItem(SinkEventAttributes attributes)
          Starts a list item element within an unordered list.

Supported attributes are the base attributes.

 void load(File configFile)
          Load configuration parameters from a File.
protected  void logMessage(String key, String msg)
          If debug mode is enabled, log the msg as is, otherwise add unique msg in warnMessages.
 void monospaced_()
          Ends a monospaced element. Alternatively one may use Sink.text(String,SinkEventAttributes) with STYLE instead.
 void monospaced()
          Starts a monospaced element. Alternatively one may use Sink.text(String,SinkEventAttributes) with STYLE instead.
 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)
          Starts an ordered list element.
 void numberedList(int numbering, SinkEventAttributes attributes)
          Starts an ordered list element.

Supported attributes are the base attributes.

 void numberedListItem_()
          Ends a list item element within an ordered list.
 void numberedListItem()
          Starts a list item element within an ordered list.
 void numberedListItem(SinkEventAttributes attributes)
          Starts a list item element within an ordered list.

Supported attributes are the base attributes.

 void pageBreak()
          Adding a new page separator.
 void paragraph_()
          Ends a paragraph element.
 void paragraph()
          Starts an element which represents a paragraph.
 void paragraph(SinkEventAttributes attributes)
          Starts a paragraph.

Supported attributes are the base attributes plus ALIGN.

protected  void pdfBookmarks()
          Writes a fo:bookmark-tree.
 void rawText(String text)
          Adding a raw text, ie a text without any special formatting operations.
protected  void regionAfter(String footerText)
          Writes a 'xsl-region-after' block.
protected  void regionBefore(String headerText)
          Writes a 'xsl-region-before' block.
protected  void resetSectionCounter()
          Resets the section counter to 0.
 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.

Sections with higher level have to be entirely contained within sections of lower level.

Supported attributes are the base attributes.

 void section1_()
          Ends a first heading element.
 void section1()
          Starts a first heading element which contains the topic of the section.
 void section2_()
          Ends a second heading element.
 void section2()
          Starts a second heading element which contains the topic of the section. This has to be contained within a Sink.section1() element.
 void section3_()
          Ends a third heading element.
 void section3()
          Starts a third heading element which contains the topic of the section. This has to be contained within a Sink.section2() element.
 void section4_()
          Ends a 4th heading element.
 void section4()
          Starts a 4th heading element which contains the topic of the section. This has to be contained within a Sink.section3() element.
 void section5_()
          Ends a 5th heading element.
 void section5()
          Starts a 5th heading element which contains the topic of the section. This has to be contained within a Sink.section4() element.
 void sectionTitle_()
          Ends a title heading element.
 void sectionTitle_(int level)
          Ends a section title at the given level.
 void sectionTitle()
          Starts a title heading element.
 void sectionTitle(int level, SinkEventAttributes attributes)
          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 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.

 void sectionTitle1_()
          Ends a first title heading element.
 void sectionTitle1()
          Starts a first title heading element. This element is optional, but if it exists, it has to be contained, and be the first element, within a Sink.section1() element.
 void sectionTitle2_()
          Ends a second title heading element.
 void sectionTitle2()
          Starts a second title heading element. This element is optional, but if it exists, it has to be contained, and be the first element, within a Sink.section2() element.
 void sectionTitle3_()
          Ends a third title heading element.
 void sectionTitle3()
          Starts a third title heading element. This element is optional, but if it exists, it has to be contained, and be the first element, within a Sink.section3() element.
 void sectionTitle4_()
          Ends a 4th title heading element.
 void sectionTitle4()
          Starts a 4th title heading element. This element is optional, but if it exists, it has to be contained, and be the first element, within a Sink.section4() element.
 void sectionTitle5_()
          Ends a 5th title heading element.
 void sectionTitle5()
          Starts a 5th title heading element. This element is optional, but if it exists, it has to be contained, and be the first element, within a Sink.section5() element.
protected  void startPageSequence(String initPageNumber, String headerText, String footerText)
          Starts a page sequence.
 void table_()
          Ends a table element.
 void table()
          Starts a table element for marking up tabular information in a document.
 void table(SinkEventAttributes attributes)
          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 attributes plus:

ALIGN, BGCOLOR, BORDER, CELLPADDING, CELLSPACING, FRAME, RULES, SUMMARY, WIDTH.
 void tableCaption_()
          Ends a caption element of a table.
 void tableCaption()
          Starts a caption element of a table.
 void tableCaption(SinkEventAttributes attributes)
          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 attributes plus ALIGN.

 void tableCell_()
          Ends a cell element.
 void tableCell()
          Starts a cell element which defines a cell that contains data.
 void tableCell(SinkEventAttributes attributes)
          Starts a table cell.

Supported attributes are the base attributes plus:

ABBRV, ALIGN, AXIS, BGCOLOR, COLSPAN, HEADERS, HEIGHT, NOWRAP, ROWSPAN, SCOPE, VALIGN, WIDTH.
 void tableCell(String width)
          Starts a cell element which defines a cell that contains data.
 void tableHeaderCell_()
          Ends a cell header element.
 void tableHeaderCell()
          Starts a cell element which defines a cell that contains header information.
 void tableHeaderCell(SinkEventAttributes attributes)
          Starts a table header cell.

Supported attributes are the same as for tableCell.

 void tableHeaderCell(String width)
          Starts a cell element which defines a cell that contains header information.
 void tableRow_()
          Ends a row element.
 void tableRow()
          Starts a row element which acts as a container for a row of table cells.
 void tableRow(SinkEventAttributes attributes)
          Starts a table row.

Supported attributes are the base attributes plus:

ALIGN, BGCOLOR, VALIGN.
 void tableRows_()
          Ends an element that contains rows of table data.
 void tableRows(int[] justification, boolean grid)
          Starts an element that contains rows of table data.
 void text(String text)
          Adding a text.
 void text(String text, SinkEventAttributes attributes)
          Adds a text.

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

VALIGN (values "sub", "sup"), DECORATION (values "underline", "overline", "line-through"), STYLE (values "italic", "bold", "monospaced").
 void title_()
          Ends the title element.
 void title()
          Starts the title element.
 void title(SinkEventAttributes attributes)
          Starts the title element. This is used to identify the document.

Supported attributes are the base attributes.

 void unknown(String name, Object[] requiredParams, SinkEventAttributes attributes)
          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. Unkown events just log a warning message but are ignored otherwise.
 void verbatim_()
          Ends a verbatim element.
 void verbatim(boolean boxed)
          Starts an element which indicates that whitespace in the enclosed text has semantic relevance.
 void verbatim(SinkEventAttributes attributes)
          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 (value: "boxed"), ALIGN, WIDTH.
protected  void write(String text)
          Write a text to the sink. Writes a text, swallowing any exceptions.
protected  void writeEmptyTag(HTML.Tag tag, String attributeId)
          Writes a simple tag, appending EOL.
protected  void writeEmptyTag(HTML.Tag tag, String id, String name)
          Writes an empty tag, prepending EOL.
protected  void writeEndTag(HTML.Tag t)
          Ends a Tag without writing an EOL.
protected  void writeln(String text)
          Writes a text, appending EOL.
protected  void writeStartTag(HTML.Tag t, MutableAttributeSet att, boolean isSimpleTag)
          Starts a Tag with attributes.
protected  void writeStartTag(HTML.Tag tag, String attributeId)
          Writes a start tag, prepending EOL.
protected  void writeStartTag(HTML.Tag tag, String id, String name)
          Writes a start tag, prepending EOL.
protected  void writeStartTag(HTML.Tag tag, String id, String name, String attributeId)
          Writes a start tag, prepending EOL.
 
Methods inherited from class org.apache.maven.doxia.sink.AbstractXmlSink
getNameSpace, setNameSpace, writeEOL, writeSimpleTag, writeSimpleTag, writeStartTag, writeStartTag
 
Methods inherited from class org.apache.maven.doxia.sink.AbstractSink
enableLogging, getLog, unifyEOLs
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

warnMessages

protected Map<String,Set<String>> warnMessages
Map of warn messages with a String as key to describe the error type and a Set as value. Using to reduce warn messages.

Constructor Detail

FoSink

protected FoSink(Writer writer)
Constructor, initialize the Writer.

Parameters:
writer - not null writer to write the result. Should be an UTF-8 Writer. You could use newXmlWriter methods from WriterFactory.

FoSink

protected FoSink(Writer writer,
                 String encoding)
Constructor, initialize the Writer and tells which encoding is used.

Parameters:
writer - not null writer to write the result.
encoding - the encoding used, that should be written to the generated HTML content if not null.

FoSink

protected FoSink(Writer writer,
                 String encoding,
                 String languageId)
Constructor, initialize the Writer and tells which encoding and languageId are used.

Parameters:
writer - not null writer to write the result.
encoding - the encoding used, that should be written to the generated HTML content if not null.
languageId - language identifier for the root element as defined by IETF BCP 47, Tags for the Identification of Languages; in addition, the empty string may be specified.
Method Detail

load

public void load(File configFile)
          throws IOException
Load configuration parameters from a File.

Parameters:
configFile - the configuration file.
Throws:
IOException - if the File cannot be read or some error occurs when initializing the configuration parameters.
Since:
1.1.1

head

public void head(SinkEventAttributes attributes)
Starts the head element.

This contains information about the current document, (eg its title) that is not considered document content. The head element is optional but if it exists, it has to be unique within a sequence of Sink events that produces one output document, and it has to come before the Sink.body(SinkEventAttributes) element.

The canonical sequence of events for the head element is:

   sink.head();

   sink.title();
   sink.text( "Title" );
   sink.title_();

   sink.author();
   sink.text( "Author" );
   sink.author_();

   sink.date();
   sink.text( "Date" );
   sink.date_();

   sink.head_();
 

but none of the enclosed events is required. However, if they exist they have to occur in the order shown, and the title() and date() events have to be unique (author() events may occur any number of times).

Supported attributes are:

PROFILE, LANG.

Specified by:
head in interface Sink
Overrides:
head in class SinkAdapter
Parameters:
attributes - A set of SinkEventAttributes, may be null.

head

public void head()
Starts the head element.

Specified by:
head in interface Sink
Overrides:
head in class SinkAdapter
See Also:
Sink.head(SinkEventAttributes)

head_

public void head_()
Ends the head element.

Specified by:
head_ in interface Sink
Overrides:
head_ in class SinkAdapter

title

public void title(SinkEventAttributes attributes)
Starts the title element. This is used to identify the document.

Supported attributes are the base attributes.

Specified by:
title in interface Sink
Overrides:
title in class SinkAdapter
Parameters:
attributes - A set of SinkEventAttributes, may be null.
See Also:
Sink.head(SinkEventAttributes)

title

public void title()
Starts the title element.

Specified by:
title in interface Sink
Overrides:
title in class SinkAdapter
See Also:
Sink.title(SinkEventAttributes)

title_

public void title_()
Ends the title element.

Specified by:
title_ in interface Sink
Overrides:
title_ in class SinkAdapter

author

public void author(SinkEventAttributes attributes)
Starts an author element. This is used to identify the author of the document.

Supported attributes are: EMAIL.

Specified by:
author in interface Sink
Overrides:
author in class SinkAdapter
Parameters:
attributes - A set of SinkEventAttributes, may be null.
See Also:
Sink.head(SinkEventAttributes)

author

public void author()
Starts an author element.

Specified by:
author in interface Sink
Overrides:
author in class SinkAdapter
See Also:
Sink.author(SinkEventAttributes)

author_

public void author_()
Ends an author element.

Specified by:
author_ in interface Sink
Overrides:
author_ in class SinkAdapter

date

public void date(SinkEventAttributes attributes)
Starts the date element. This is used to identify the date of the document.

Supported attributes are: none.

Specified by:
date in interface Sink
Overrides:
date in class SinkAdapter
Parameters:
attributes - A set of SinkEventAttributes, may be null.
See Also:
Sink.head(SinkEventAttributes)

date

public void date()
Starts the date element.
The date is recommended (but it is not a requirement) to be align to the ISO-8601 standard, i.e.:
 YYYY-MM-DD
 
where

Specified by:
date in interface Sink
Overrides:
date in class SinkAdapter
See Also:
Sink.date(SinkEventAttributes)

date_

public void date_()
Ends the date element.

Specified by:
date_ in interface Sink
Overrides:
date_ in class SinkAdapter

body

public void body(SinkEventAttributes attributes)
Starts the body of a document. This contains the document's content.

Supported attributes are the base attributes.

Specified by:
body in interface Sink
Overrides:
body in class SinkAdapter
Parameters:
attributes - A set of SinkEventAttributes, may be null.
See Also:
Sink.head(SinkEventAttributes)

body

public void body()
Starts the body of a document.

Specified by:
body in interface Sink
Overrides:
body in class SinkAdapter
See Also:
Sink.body(SinkEventAttributes)

body_

public void body_()
Ends the body element.

Specified by:
body_ in interface Sink
Overrides:
body_ in class SinkAdapter

sectionTitle

public void sectionTitle()
Starts a title heading element.

Specified by:
sectionTitle in interface Sink
Overrides:
sectionTitle in class SinkAdapter

sectionTitle_

public void sectionTitle_()
Ends a title heading element.

Specified by:
sectionTitle_ in interface Sink
Overrides:
sectionTitle_ in class SinkAdapter

section

public void section(int level,
                    SinkEventAttributes attributes)
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:
section in interface Sink
Overrides:
section in class SinkAdapter
Parameters:
level - the section level.
attributes - A set of SinkEventAttributes, may be null.

section_

public void section_(int level)
Ends a section at the given level.

Specified by:
section_ in interface Sink
Overrides:
section_ in class SinkAdapter
Parameters:
level - the section level.

sectionTitle

public void sectionTitle(int level,
                         SinkEventAttributes attributes)
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 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.

Specified by:
sectionTitle in interface Sink
Overrides:
sectionTitle in class SinkAdapter
Parameters:
level - the section title level.
attributes - A set of SinkEventAttributes, may be null.

sectionTitle_

public void sectionTitle_(int level)
Ends a section title at the given level.

Specified by:
sectionTitle_ in interface Sink
Overrides:
sectionTitle_ in class SinkAdapter
Parameters:
level - the section title level.

section1

public void section1()
Starts a first heading element which contains the topic of the section.

Specified by:
section1 in interface Sink
Overrides:
section1 in class SinkAdapter
See Also:
Sink.section(int,SinkEventAttributes)

sectionTitle1

public void sectionTitle1()
Starts a first title heading element. This element is optional, but if it exists, it has to be contained, and be the first element, within a Sink.section1() element.

Specified by:
sectionTitle1 in interface Sink
Overrides:
sectionTitle1 in class SinkAdapter
See Also:
Sink.sectionTitle(int,SinkEventAttributes)

sectionTitle1_

public void sectionTitle1_()
Ends a first title heading element.

Specified by:
sectionTitle1_ in interface Sink
Overrides:
sectionTitle1_ in class SinkAdapter

section1_

public void section1_()
Ends a first heading element.

Specified by:
section1_ in interface Sink
Overrides:
section1_ in class SinkAdapter

section2

public void section2()
Starts a second heading element which contains the topic of the section. This has to be contained within a Sink.section1() element.

Specified by:
section2 in interface Sink
Overrides:
section2 in class SinkAdapter
See Also:
Sink.section(int,SinkEventAttributes)

sectionTitle2

public void sectionTitle2()
Starts a second title heading element. This element is optional, but if it exists, it has to be contained, and be the first element, within a Sink.section2() element.

Specified by:
sectionTitle2 in interface Sink
Overrides:
sectionTitle2 in class SinkAdapter
See Also:
Sink.sectionTitle(int,SinkEventAttributes)

sectionTitle2_

public void sectionTitle2_()
Ends a second title heading element.

Specified by:
sectionTitle2_ in interface Sink
Overrides:
sectionTitle2_ in class SinkAdapter

section2_

public void section2_()
Ends a second heading element.

Specified by:
section2_ in interface Sink
Overrides:
section2_ in class SinkAdapter

section3

public void section3()
Starts a third heading element which contains the topic of the section. This has to be contained within a Sink.section2() element.

Specified by:
section3 in interface Sink
Overrides:
section3 in class SinkAdapter
See Also:
Sink.section(int,SinkEventAttributes)

sectionTitle3

public void sectionTitle3()
Starts a third title heading element. This element is optional, but if it exists, it has to be contained, and be the first element, within a Sink.section3() element.

Specified by:
sectionTitle3 in interface Sink
Overrides:
sectionTitle3 in class SinkAdapter
See Also:
Sink.sectionTitle(int,SinkEventAttributes)

sectionTitle3_

public void sectionTitle3_()
Ends a third title heading element.

Specified by:
sectionTitle3_ in interface Sink
Overrides:
sectionTitle3_ in class SinkAdapter

section3_

public void section3_()
Ends a third heading element.

Specified by:
section3_ in interface Sink
Overrides:
section3_ in class SinkAdapter

section4

public void section4()
Starts a 4th heading element which contains the topic of the section. This has to be contained within a Sink.section3() element.

Specified by:
section4 in interface Sink
Overrides:
section4 in class SinkAdapter
See Also:
Sink.section(int,SinkEventAttributes)

sectionTitle4

public void sectionTitle4()
Starts a 4th title heading element. This element is optional, but if it exists, it has to be contained, and be the first element, within a Sink.section4() element.

Specified by:
sectionTitle4 in interface Sink
Overrides:
sectionTitle4 in class SinkAdapter
See Also:
Sink.sectionTitle(int,SinkEventAttributes)

sectionTitle4_

public void sectionTitle4_()
Ends a 4th title heading element.

Specified by:
sectionTitle4_ in interface Sink
Overrides:
sectionTitle4_ in class SinkAdapter

section4_

public void section4_()
Ends a 4th heading element.

Specified by:
section4_ in interface Sink
Overrides:
section4_ in class SinkAdapter

section5

public void section5()
Starts a 5th heading element which contains the topic of the section. This has to be contained within a Sink.section4() element.

Specified by:
section5 in interface Sink
Overrides:
section5 in class SinkAdapter
See Also:
Sink.section(int,SinkEventAttributes)

sectionTitle5

public void sectionTitle5()
Starts a 5th title heading element. This element is optional, but if it exists, it has to be contained, and be the first element, within a Sink.section5() element.

Specified by:
sectionTitle5 in interface Sink
Overrides:
sectionTitle5 in class SinkAdapter
See Also:
Sink.sectionTitle(int,SinkEventAttributes)

sectionTitle5_

public void sectionTitle5_()
Ends a 5th title heading element.

Specified by:
sectionTitle5_ in interface Sink
Overrides:
sectionTitle5_ in class SinkAdapter

section5_

public void section5_()
Ends a 5th heading element.

Specified by:
section5_ in interface Sink
Overrides:
section5_ in class SinkAdapter

resetSectionCounter

protected void resetSectionCounter()
Resets the section counter to 0. Only useful for overriding classes, like AggregateSink, the FoSink puts everything into one chapter.


getChapterString

protected String getChapterString()
Returns the current chapter number as a string. By default does nothing, gets overridden by AggregateSink.

Returns:
an empty String.

list

public void list(SinkEventAttributes attributes)
Starts an unordered list.

Supported attributes are the base attributes.

Specified by:
list in interface Sink
Overrides:
list in class SinkAdapter
Parameters:
attributes - A set of SinkEventAttributes, may be null.

list

public void list()
Starts an unordered list element.

Specified by:
list in interface Sink
Overrides:
list in class SinkAdapter
See Also:
Sink.list(SinkEventAttributes)

list_

public void list_()
Ends an unordered list element.

Specified by:
list_ in interface Sink
Overrides:
list_ in class SinkAdapter

listItem

public void listItem(SinkEventAttributes attributes)
Starts a list item element within an unordered list.

Supported attributes are the base attributes.

Specified by:
listItem in interface Sink
Overrides:
listItem in class SinkAdapter
Parameters:
attributes - A set of SinkEventAttributes, may be null.

listItem

public void listItem()
Starts a list item element within an unordered list.

Specified by:
listItem in interface Sink
Overrides:
listItem in class SinkAdapter
See Also:
Sink.listItem(SinkEventAttributes)

listItem_

public void listItem_()
Ends a list item element within an unordered list.

Specified by:
listItem_ in interface Sink
Overrides:
listItem_ in class SinkAdapter

numberedList

public void numberedList(int numbering,
                         SinkEventAttributes attributes)
Starts an ordered list element.

Supported attributes are the base attributes.

Specified by:
numberedList in interface Sink
Overrides:
numberedList in class SinkAdapter
Parameters:
numbering - the numbering style.
attributes - A set of SinkEventAttributes, may be null.
See Also:
Sink.NUMBERING_DECIMAL, Sink.NUMBERING_LOWER_ALPHA, Sink.NUMBERING_LOWER_ROMAN, Sink.NUMBERING_UPPER_ALPHA, Sink.NUMBERING_UPPER_ROMAN

numberedList

public void numberedList(int numbering)
Starts an ordered list element.

Specified by:
numberedList in interface Sink
Overrides:
numberedList in class SinkAdapter
Parameters:
numbering - the numbering style.
See Also:
Sink.numberedList(int,SinkEventAttributes)

numberedList_

public void numberedList_()
Ends an ordered list element.

Specified by:
numberedList_ in interface Sink
Overrides:
numberedList_ in class SinkAdapter

numberedListItem

public void numberedListItem(SinkEventAttributes attributes)
Starts a list item element within an ordered list.

Supported attributes are the base attributes.

Specified by:
numberedListItem in interface Sink
Overrides:
numberedListItem in class SinkAdapter
Parameters:
attributes - A set of SinkEventAttributes, may be null.

numberedListItem

public void numberedListItem()
Starts a list item element within an ordered list.

Specified by:
numberedListItem in interface Sink
Overrides:
numberedListItem in class SinkAdapter
See Also:
Sink.numberedListItem(SinkEventAttributes)

numberedListItem_

public void numberedListItem_()
Ends a list item element within an ordered list.

Specified by:
numberedListItem_ in interface Sink
Overrides:
numberedListItem_ in class SinkAdapter

definitionList

public void definitionList(SinkEventAttributes attributes)
Starts a definition list.

Supported attributes are the base attributes.

Specified by:
definitionList in interface Sink
Overrides:
definitionList in class SinkAdapter
Parameters:
attributes - A set of SinkEventAttributes, may be null.

definitionList

public void definitionList()
Starts a definition list element.

Specified by:
definitionList in interface Sink
Overrides:
definitionList in class SinkAdapter
See Also:
Sink.definitionList(SinkEventAttributes)

definitionList_

public void definitionList_()
Ends a definition list element.

Specified by:
definitionList_ in interface Sink
Overrides:
definitionList_ in class SinkAdapter

definitionListItem

public void definitionListItem(SinkEventAttributes attributes)
Starts a list item element within a definition list.

Every definitionListItem has to contain exactly one Sink.definedTerm(SinkEventAttributes) and one Sink.definition(SinkEventAttributes), in this order.

Supported attributes are the base attributes.

Specified by:
definitionListItem in interface Sink
Overrides:
definitionListItem in class SinkAdapter
Parameters:
attributes - A set of SinkEventAttributes, may be null.

definitionListItem

public void definitionListItem()
Starts a list item element within a definition list.

Specified by:
definitionListItem in interface Sink
Overrides:
definitionListItem in class SinkAdapter
See Also:
Sink.definitionListItem(SinkEventAttributes)

definitionListItem_

public void definitionListItem_()
Ends a list item element within a definition list.

Specified by:
definitionListItem_ in interface Sink
Overrides:
definitionListItem_ in class SinkAdapter

definedTerm

public void definedTerm(SinkEventAttributes attributes)
Starts a definition term element within a definition list.

Supported attributes are the base attributes.

Specified by:
definedTerm in interface Sink
Overrides:
definedTerm in class SinkAdapter
Parameters:
attributes - A set of SinkEventAttributes, may be null.

definedTerm

public void definedTerm()
Starts a definition term element within a definition list.

Specified by:
definedTerm in interface Sink
Overrides:
definedTerm in class SinkAdapter
See Also:
Sink.definedTerm(SinkEventAttributes)

definedTerm_

public void definedTerm_()
Starts a definition term element within a definition list.

Specified by:
definedTerm_ in interface Sink
Overrides:
definedTerm_ in class SinkAdapter

definition

public void definition(SinkEventAttributes attributes)
Starts a definition element within a definition list.

Supported attributes are the base attributes.

Specified by:
definition in interface Sink
Overrides:
definition in class SinkAdapter
Parameters:
attributes - A set of SinkEventAttributes, may be null.

definition

public void definition()
Starts a definition element within a definition list.

Specified by:
definition in interface Sink
Overrides:
definition in class SinkAdapter
See Also:
Sink.definition(SinkEventAttributes)

definition_

public void definition_()
Ends a definition element within a definition list.

Specified by:
definition_ in interface Sink
Overrides:
definition_ in class SinkAdapter

figure

public void figure(SinkEventAttributes attributes)
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:
figure in interface Sink
Overrides:
figure in class SinkAdapter
Parameters:
attributes - A set of SinkEventAttributes, may be null.

figure

public void figure()
Starts a basic image embedding element.

Specified by:
figure in interface Sink
Overrides:
figure in class SinkAdapter
See Also:
Sink.figure(SinkEventAttributes)

figure_

public void figure_()
Ends a basic image embedding element.

Specified by:
figure_ in interface Sink
Overrides:
figure_ in class SinkAdapter

figureGraphics

public void figureGraphics(String name)
Adding a source of a graphic.

Specified by:
figureGraphics in interface Sink
Overrides:
figureGraphics in class SinkAdapter
Parameters:
name - the source

figureGraphics

public void figureGraphics(String src,
                           SinkEventAttributes attributes)
Adds a graphic element.

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.

Specified by:
figureGraphics in interface Sink
Overrides:
figureGraphics in class SinkAdapter
Parameters:
src - the image source, a valid URL.
attributes - A set of SinkEventAttributes, may be null.
See Also:
Sink.figure(SinkEventAttributes)

isFigure

protected boolean isFigure()
Flags if we are inside a figure.

Returns:
True if we are between figure() and figure_() calls.

figureCaption

public void figureCaption(SinkEventAttributes attributes)
Starts a figure caption.

Supported attributes are the base attributes.

Specified by:
figureCaption in interface Sink
Overrides:
figureCaption in class SinkAdapter
Parameters:
attributes - A set of SinkEventAttributes, may be null.
See Also:
Sink.figure(SinkEventAttributes)

figureCaption

public void figureCaption()
Starts a caption of an image element.

Specified by:
figureCaption in interface Sink
Overrides:
figureCaption in class SinkAdapter
See Also:
Sink.figureCaption(SinkEventAttributes)

figureCaption_

public void figureCaption_()
Ends a caption of an image.

Specified by:
figureCaption_ in interface Sink
Overrides:
figureCaption_ in class SinkAdapter

paragraph

public void paragraph()
Starts an element which represents a paragraph.

Specified by:
paragraph in interface Sink
Overrides:
paragraph in class SinkAdapter
See Also:
Sink.paragraph(SinkEventAttributes)

paragraph

public void paragraph(SinkEventAttributes attributes)
Starts a paragraph.

Supported attributes are the base attributes plus ALIGN.

Specified by:
paragraph in interface Sink
Overrides:
paragraph in class SinkAdapter
Parameters:
attributes - A set of SinkEventAttributes, may be null.

paragraph_

public void paragraph_()
Ends a paragraph element.

Specified by:
paragraph_ in interface Sink
Overrides:
paragraph_ in class SinkAdapter

verbatim

public void verbatim(SinkEventAttributes attributes)
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 (value: "boxed"), ALIGN, WIDTH.

Specified by:
verbatim in interface Sink
Overrides:
verbatim in class SinkAdapter
Parameters:
attributes - A set of SinkEventAttributes, may be null.

verbatim

public void verbatim(boolean boxed)
Starts an element which indicates that whitespace in the enclosed text has semantic relevance.

Specified by:
verbatim in interface Sink
Overrides:
verbatim in class SinkAdapter
Parameters:
boxed - true to add a box, false otherwise

verbatim_

public void verbatim_()
Ends a verbatim element.

Specified by:
verbatim_ in interface Sink
Overrides:
verbatim_ in class SinkAdapter

horizontalRule

public void horizontalRule(SinkEventAttributes attributes)
Adds a horizontal separator rule.

Supported attributes are the base attributes plus:

ALIGN, NOSHADE, SIZE, WIDTH.

Specified by:
horizontalRule in interface Sink
Overrides:
horizontalRule in class SinkAdapter
Parameters:
attributes - A set of SinkEventAttributes, may be null.

horizontalRule

public void horizontalRule()
Adding a separator of sections from a text to each other.

Specified by:
horizontalRule in interface Sink
Overrides:
horizontalRule in class SinkAdapter
See Also:
Sink.horizontalRule(SinkEventAttributes)

pageBreak

public void pageBreak()
Adding a new page separator.

Specified by:
pageBreak in interface Sink
Overrides:
pageBreak in class SinkAdapter

table

public void table(SinkEventAttributes attributes)
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 attributes plus:

ALIGN, BGCOLOR, BORDER, CELLPADDING, CELLSPACING, FRAME, RULES, SUMMARY, WIDTH.

Specified by:
table in interface Sink
Overrides:
table in class SinkAdapter
Parameters:
attributes - A set of SinkEventAttributes, may be null.

table

public void table()
Starts a table element for marking up tabular information in a document.

Specified by:
table in interface Sink
Overrides:
table in class SinkAdapter
See Also:
Sink.table(SinkEventAttributes)

table_

public void table_()
Ends a table element.

Specified by:
table_ in interface Sink
Overrides:
table_ in class SinkAdapter

tableRows

public void tableRows(int[] justification,
                      boolean grid)
Starts an element that contains rows of table data.

Specified by:
tableRows in interface Sink
Overrides:
tableRows in class SinkAdapter
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:
Sink.table(SinkEventAttributes), Sink.JUSTIFY_CENTER, Sink.JUSTIFY_LEFT, Sink.JUSTIFY_RIGHT

tableRows_

public void tableRows_()
Ends an element that contains rows of table data.

Specified by:
tableRows_ in interface Sink
Overrides:
tableRows_ in class SinkAdapter

tableRow

public void tableRow(SinkEventAttributes attributes)
Starts a table row.

Supported attributes are the base attributes plus:

ALIGN, BGCOLOR, VALIGN.

Specified by:
tableRow in interface Sink
Overrides:
tableRow in class SinkAdapter
Parameters:
attributes - A set of SinkEventAttributes, may be null.

tableRow

public void tableRow()
Starts a row element which acts as a container for a row of table cells.

Specified by:
tableRow in interface Sink
Overrides:
tableRow in class SinkAdapter
See Also:
Sink.tableRow(SinkEventAttributes)

tableRow_

public void tableRow_()
Ends a row element.

Specified by:
tableRow_ in interface Sink
Overrides:
tableRow_ in class SinkAdapter

tableCell

public void tableCell(SinkEventAttributes attributes)
Starts a table cell.

Supported attributes are the base attributes plus:

ABBRV, ALIGN, AXIS, BGCOLOR, COLSPAN, HEADERS, HEIGHT, NOWRAP, ROWSPAN, SCOPE, VALIGN, WIDTH.

Specified by:
tableCell in interface Sink
Overrides:
tableCell in class SinkAdapter
Parameters:
attributes - A set of SinkEventAttributes, may be null.

tableCell

public void tableCell()
Starts a cell element which defines a cell that contains data.

Specified by:
tableCell in interface Sink
Overrides:
tableCell in class SinkAdapter
See Also:
Sink.tableCell(SinkEventAttributes)

tableCell

public void tableCell(String width)
Starts a cell element which defines a cell that contains data.

Specified by:
tableCell in interface Sink
Overrides:
tableCell in class SinkAdapter
Parameters:
width - the size of the cell.

tableHeaderCell

public void tableHeaderCell(SinkEventAttributes attributes)
Starts a table header cell.

Supported attributes are the same as for tableCell.

Specified by:
tableHeaderCell in interface Sink
Overrides:
tableHeaderCell in class SinkAdapter
Parameters:
attributes - A set of SinkEventAttributes, may be null.

tableHeaderCell

public void tableHeaderCell()
Starts a cell element which defines a cell that contains header information.

Specified by:
tableHeaderCell in interface Sink
Overrides:
tableHeaderCell in class SinkAdapter
See Also:
Sink.tableHeaderCell(SinkEventAttributes)

tableHeaderCell

public void tableHeaderCell(String width)
Starts a cell element which defines a cell that contains header information.

Specified by:
tableHeaderCell in interface Sink
Overrides:
tableHeaderCell in class SinkAdapter
Parameters:
width - the size of the header cell.

tableCell_

public void tableCell_()
Ends a cell element.

Specified by:
tableCell_ in interface Sink
Overrides:
tableCell_ in class SinkAdapter

tableHeaderCell_

public void tableHeaderCell_()
Ends a cell header element.

Specified by:
tableHeaderCell_ in interface Sink
Overrides:
tableHeaderCell_ in class SinkAdapter

tableCaption

public void tableCaption(SinkEventAttributes attributes)
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 attributes plus ALIGN.

Specified by:
tableCaption in interface Sink
Overrides:
tableCaption in class SinkAdapter
Parameters:
attributes - A set of SinkEventAttributes, may be null.
See Also:
Sink.table(SinkEventAttributes)

tableCaption

public void tableCaption()
Starts a caption element of a table.

Specified by:
tableCaption in interface Sink
Overrides:
tableCaption in class SinkAdapter
See Also:
Sink.tableCaption(SinkEventAttributes)

tableCaption_

public void tableCaption_()
Ends a caption element of a table.

Specified by:
tableCaption_ in interface Sink
Overrides:
tableCaption_ in class SinkAdapter

anchor

public void anchor(String name,
                   SinkEventAttributes attributes)
Starts an element which defines an anchor.

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.

Specified by:
anchor in interface Sink
Overrides:
anchor in class SinkAdapter
Parameters:
name - the name of the anchor. This has to be a valid SGML NAME token.
attributes - A set of SinkEventAttributes, may be null.

anchor

public void anchor(String name)
Starts an element which defines an anchor.

Specified by:
anchor in interface Sink
Overrides:
anchor in class SinkAdapter
Parameters:
name - the name of the anchor.
See Also:
Sink.anchor(String,SinkEventAttributes)

anchor_

public void anchor_()
Ends an anchor element.

Specified by:
anchor_ in interface Sink
Overrides:
anchor_ in class SinkAdapter

link

public void link(String name,
                 SinkEventAttributes attributes)
Starts a link.

The name parameter has to be a valid html href parameter, ie for internal links (links to an anchor within the same source document), name should start with the character "#".

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.

Specified by:
link in interface Sink
Overrides:
link in class SinkAdapter
Parameters:
name - the name of the link.
attributes - A set of SinkEventAttributes, may be null.

link

public void link(String name)
Starts an element which defines a link.

Specified by:
link in interface Sink
Overrides:
link in class SinkAdapter
Parameters:
name - the name of the link.
See Also:
Sink.link(String,SinkEventAttributes)

link_

public void link_()
Ends a link element.

Specified by:
link_ in interface Sink
Overrides:
link_ in class SinkAdapter

italic

public void italic()
Starts an italic element. Alternatively one may use Sink.text(String,SinkEventAttributes) with STYLE instead.

Specified by:
italic in interface Sink
Overrides:
italic in class SinkAdapter

italic_

public void italic_()
Ends an italic element. Alternatively one may use Sink.text(String,SinkEventAttributes) with STYLE instead.

Specified by:
italic_ in interface Sink
Overrides:
italic_ in class SinkAdapter

bold

public void bold()
Starts a bold element. Alternatively one may use Sink.text(String,SinkEventAttributes) with STYLE instead.

Specified by:
bold in interface Sink
Overrides:
bold in class SinkAdapter

bold_

public void bold_()
Ends a bold element. Alternatively one may use Sink.text(String,SinkEventAttributes) with STYLE instead.

Specified by:
bold_ in interface Sink
Overrides:
bold_ in class SinkAdapter

monospaced

public void monospaced()
Starts a monospaced element. Alternatively one may use Sink.text(String,SinkEventAttributes) with STYLE instead.

Specified by:
monospaced in interface Sink
Overrides:
monospaced in class SinkAdapter

monospaced_

public void monospaced_()
Ends a monospaced element. Alternatively one may use Sink.text(String,SinkEventAttributes) with STYLE instead.

Specified by:
monospaced_ in interface Sink
Overrides:
monospaced_ in class SinkAdapter

lineBreak

public void lineBreak(SinkEventAttributes attributes)
Adds a line break.

Supported attributes are:

ID, CLASS, TITLE, STYLE.

Specified by:
lineBreak in interface Sink
Overrides:
lineBreak in class SinkAdapter
Parameters:
attributes - A set of SinkEventAttributes, may be null.

lineBreak

public void lineBreak()
Adds a line break.

Specified by:
lineBreak in interface Sink
Overrides:
lineBreak in class SinkAdapter
See Also:
Sink.lineBreak(SinkEventAttributes)

nonBreakingSpace

public void nonBreakingSpace()
Adding a non breaking space, ie a space without any special formatting operations.

Specified by:
nonBreakingSpace in interface Sink
Overrides:
nonBreakingSpace in class SinkAdapter

text

public void text(String text,
                 SinkEventAttributes attributes)
Adds a text.

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

VALIGN (values "sub", "sup"), DECORATION (values "underline", "overline", "line-through"), STYLE (values "italic", "bold", "monospaced").

Specified by:
text in interface Sink
Overrides:
text in class SinkAdapter
Parameters:
text - The text to write.
attributes - A set of SinkEventAttributes, may be null.

text

public void text(String text)
Adding a text.

Specified by:
text in interface Sink
Overrides:
text in class SinkAdapter
Parameters:
text - The text to write.
See Also:
Sink.text(String,SinkEventAttributes)

rawText

public void rawText(String text)
Adding a raw text, ie a text without any special formatting operations.

Specified by:
rawText in interface Sink
Overrides:
rawText in class SinkAdapter
Parameters:
text - The text to write.

flush

public void flush()
Flush the writer or the stream, if needed. Flushing a previously-flushed Sink has no effect.

Specified by:
flush in interface Sink
Overrides:
flush in class SinkAdapter

close

public void close()
Close the writer or the stream, if needed. Closing a previously-closed Sink has no effect.

Specified by:
close in interface Sink
Overrides:
close in class SinkAdapter

unknown

public void unknown(String name,
                    Object[] requiredParams,
                    SinkEventAttributes attributes)
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. Unkown events just log a warning message but are ignored otherwise.

Specified by:
unknown in interface Sink
Overrides:
unknown in class SinkAdapter
Parameters:
name - The name of the event.
requiredParams - An optional array of required parameters to the event. May be null.
attributes - A set of SinkEventAttributes, may be null.
See Also:
Sink.unknown(String,Object[],SinkEventAttributes)

comment

public void comment(String comment)
Add a comment.

Specified by:
comment in interface Sink
Overrides:
comment in class SinkAdapter
Parameters:
comment - The comment to write.

beginDocument

public void beginDocument()
Writes the beginning of a FO document.


endDocument

public void endDocument()
Writes the end of a FO document, flushes and closes the stream.


getFoConfiguration

protected FoConfiguration getFoConfiguration()
Returns the configuration object of this sink.

Returns:
The configuration object of this sink.

writeStartTag

protected void writeStartTag(HTML.Tag tag,
                             String attributeId)
Writes a start tag, prepending EOL.

Parameters:
tag - The tag.
attributeId - An id identifying the attribute set.

writeStartTag

protected void writeStartTag(HTML.Tag tag,
                             String id,
                             String name)
Writes a start tag, prepending EOL.

Parameters:
tag - The tag.
id - An id to add.
name - The name (value) of the id.

writeStartTag

protected void writeStartTag(HTML.Tag tag,
                             String id,
                             String name,
                             String attributeId)
Writes a start tag, prepending EOL.

Parameters:
tag - The tag.
id - An id to add.
name - The name (value) of the id.
attributeId - An id identifying the attribute set.

writeEmptyTag

protected void writeEmptyTag(HTML.Tag tag,
                             String id,
                             String name)
Writes an empty tag, prepending EOL.

Parameters:
tag - The tag.
id - An id to add.
name - The name (value) of the id.

writeEmptyTag

protected void writeEmptyTag(HTML.Tag tag,
                             String attributeId)
Writes a simple tag, appending EOL.

Parameters:
tag - The tag name.
attributeId - An id identifying the attribute set.

write

protected void write(String text)
Write a text to the sink. Writes a text, swallowing any exceptions.

Specified by:
write in class AbstractXmlSink
Parameters:
text - the given text to write

writeln

protected void writeln(String text)
Writes a text, appending EOL.

Parameters:
text - The text to write.

content

protected void content(String text)
Writes content, escaping special characters.

Parameters:
text - The text to write.

escaped

public static String escaped(String text,
                             boolean verb)
Escapes special characters so that the text can be included in a fo file.

Parameters:
text - The text to process.
verb - In verbatim mode, white space and newlines are escaped.
Returns:
The text with special characters escaped.

writeStartTag

protected void writeStartTag(HTML.Tag t,
                             MutableAttributeSet att,
                             boolean isSimpleTag)
Starts a Tag with attributes. For instance:
 <tag attName="attValue">
 

Overrides:
writeStartTag in class AbstractXmlSink
Parameters:
t - a non null tag.
att - a set of attributes. May be null.
isSimpleTag - boolean to write as a simple tag.

writeEndTag

protected void writeEndTag(HTML.Tag t)
Ends a Tag without writing an EOL. For instance:
</tag>
.

Overrides:
writeEndTag in class AbstractXmlSink
Parameters:
t - a tag.

startPageSequence

protected void startPageSequence(String initPageNumber,
                                 String headerText,
                                 String footerText)
Starts a page sequence.

Parameters:
initPageNumber - The initial page number. Should be either "0" (for the first page) or "auto".
headerText - The text to write in the header, if null, nothing is written.
footerText - The text to write in the footer, if null, nothing is written.

regionBefore

protected void regionBefore(String headerText)
Writes a 'xsl-region-before' block.

Parameters:
headerText - The text to write in the header, if null, nothing is written.

regionAfter

protected void regionAfter(String footerText)
Writes a 'xsl-region-after' block. By default does nothing, gets overridden by AggregateSink.

Parameters:
footerText - The text to write in the footer, if null, nothing is written.

chapterHeading

protected void chapterHeading(String headerText,
                              boolean chapterNumber)
Writes a chapter heading. By default does nothing, gets overridden by AggregateSink.

Parameters:
headerText - The text to write in the header, if null, the current document title is written.
chapterNumber - True if the chapter number should be written in front of the text.

pdfBookmarks

protected void pdfBookmarks()
Writes a fo:bookmark-tree. By default does nothing, gets overridden by AggregateSink.


logMessage

protected void logMessage(String key,
                          String msg)
If debug mode is enabled, log the msg as is, otherwise add unique msg in warnMessages.

Parameters:
key - not null
msg - not null
Since:
1.1.1
See Also:
close()

init

protected void init()
This is called in Sink.head() or in Sink.close(), and can be used to set the sink into a clear state so it can be re-used.

Overrides:
init in class AbstractSink


Copyright © 2005-2012 The Apache Software Foundation. All Rights Reserved.