org.eclipse.mylyn.internal.wikitext.core.parser.builder
Class DitaTopicDocumentBuilder

java.lang.Object
  extended by org.eclipse.mylyn.wikitext.core.parser.DocumentBuilder
      extended by org.eclipse.mylyn.wikitext.core.parser.builder.AbstractXmlDocumentBuilder
          extended by org.eclipse.mylyn.internal.wikitext.core.parser.builder.DitaTopicDocumentBuilder

public class DitaTopicDocumentBuilder
extends AbstractXmlDocumentBuilder

A document builder that creates an OASIS DITA topic

Author:
David Green
See Also:
DitaBookMapDocumentBuilder

Nested Class Summary
 
Nested classes/interfaces inherited from class org.eclipse.mylyn.wikitext.core.parser.DocumentBuilder
DocumentBuilder.BlockType, DocumentBuilder.SpanType
 
Field Summary
 
Fields inherited from class org.eclipse.mylyn.wikitext.core.parser.builder.AbstractXmlDocumentBuilder
base, baseInHead, writer
 
Fields inherited from class org.eclipse.mylyn.wikitext.core.parser.DocumentBuilder
locator
 
Constructor Summary
DitaTopicDocumentBuilder(Writer out)
          Create a DitaTopicDocumentBuilder that writes formatted output to the given writer.
DitaTopicDocumentBuilder(XmlStreamWriter writer)
          Equivalent to new DitaTopicDocumentBuilder(writer,true)
DitaTopicDocumentBuilder(XmlStreamWriter writer, boolean formatting)
           
 
Method Summary
 void acronym(String text, String definition)
          Emit an acronym
 void beginBlock(DocumentBuilder.BlockType type, Attributes attributes)
          Begin a block of the specified type.
 void beginDocument()
          Begin a document.
 void beginHeading(int level, Attributes attributes)
          Begin a heading of the specified level (usually 1-6).
 void beginSpan(DocumentBuilder.SpanType type, Attributes attributes)
          Begin a span of the specified type.
 void characters(String text)
          Emit the given text as characters where special characters are encoded according to the output format rules.
 void charactersUnescaped(String literal)
          Create unescaped characters, usually with some embedded HTML markup.
static String computeName(String headingId, String topicFilenameSuffix)
           
protected  XmlStreamWriter createXmlStreamWriter(Writer out)
           
 void endBlock()
          End a block that was started.
 void endDocument()
          End a document.
 void endHeading()
          End a span that was started.
 void endSpan()
          End a span that was started.
 void entityReference(String entity)
          An XML entity reference.
 String getDoctype()
           
 String getFilename()
           
 OutlineItem getOutline()
          the outline if available, otherwise null setOutline(OutlineItem)
 String getRootTopicTitle()
          The title of the root topic if there should be one.
 int getTopicBreakLevel()
          the heading level at which topics are determined
 void image(Attributes attributes, String url)
          Build the image with the given attributes
 void imageLink(Attributes linkAttributes, Attributes imageAttributes, String href, String imageUrl)
          Create a hyperlink whose visual representation is an image.
 void lineBreak()
          Create a line break (eg: br in html).
 void link(Attributes attributes, String hrefOrHashName, String text)
          Create a hyperlink to the given url.
 void setDoctype(String doctype)
           
 void setFilename(String filename)
           
 void setOutline(OutlineItem outline)
          Set the outline of the document being parsed if xref URLs are to be correctly computed.
 void setRootTopicTitle(String rootTitle)
          The title of the root topic if there should be one.
 void setTopicBreakLevel(int topicBreakLevel)
          the heading level at which topics are determined
 
Methods inherited from class org.eclipse.mylyn.wikitext.core.parser.builder.AbstractXmlDocumentBuilder
getBase, getElementNestLevel, isBaseInHead, isExternalLink, makeUrlAbsolute, setBase, setBaseInHead
 
Methods inherited from class org.eclipse.mylyn.wikitext.core.parser.DocumentBuilder
annotation, beginLink, endLink, getLocator, imageLink, imageLink, link, setLocator
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

DitaTopicDocumentBuilder

public DitaTopicDocumentBuilder(Writer out)
Create a DitaTopicDocumentBuilder that writes formatted output to the given writer. Output without formatting can be created using DitaTopicDocumentBuilder(XmlStreamWriter, boolean).

Parameters:
out - the writer to which formatted XML content output

DitaTopicDocumentBuilder

public DitaTopicDocumentBuilder(XmlStreamWriter writer)
Equivalent to new DitaTopicDocumentBuilder(writer,true)

See Also:
DitaTopicDocumentBuilder(XmlStreamWriter, boolean)

DitaTopicDocumentBuilder

public DitaTopicDocumentBuilder(XmlStreamWriter writer,
                                boolean formatting)
Parameters:
writer - the writer to which output is written
formatting - indicate if the writer should format output
Method Detail

createXmlStreamWriter

protected XmlStreamWriter createXmlStreamWriter(Writer out)
Overrides:
createXmlStreamWriter in class AbstractXmlDocumentBuilder

setDoctype

public void setDoctype(String doctype)

getDoctype

public String getDoctype()

acronym

public void acronym(String text,
                    String definition)
Description copied from class: DocumentBuilder
Emit an acronym

Specified by:
acronym in class DocumentBuilder
Parameters:
text - the acronym to emit
definition - the definition of the acronym, which is typically displayed on mouse hover

beginBlock

public void beginBlock(DocumentBuilder.BlockType type,
                       Attributes attributes)
Description copied from class: DocumentBuilder
Begin a block of the specified type. Builder implementations may do a best-effort application of the provided attributes. Note that the provided attributes *may* be a subclass of the Attributes class, in which case the builder may attempt to apply the attributes specified. Builders may choose to ignore attributes, and should fail silently if the given attributes are not as expected. Each call to this method must be matched by a corresponding call to DocumentBuilder.endBlock().

Specified by:
beginBlock in class DocumentBuilder
attributes - the attributes to apply to the block. Callers may choose to specify a more specialized set of attributes by providing a subclass instance.
See Also:
DocumentBuilder.endBlock()

endBlock

public void endBlock()
Description copied from class: DocumentBuilder
End a block that was started.

Specified by:
endBlock in class DocumentBuilder

beginDocument

public void beginDocument()
Description copied from class: DocumentBuilder
Begin a document. Calling this method is optional for some builders, however if called then it must be matched by a corresponding call to DocumentBuilder.endDocument().

Specified by:
beginDocument in class DocumentBuilder
See Also:
DocumentBuilder.endDocument()

beginHeading

public void beginHeading(int level,
                         Attributes attributes)
Description copied from class: DocumentBuilder
Begin a heading of the specified level (usually 1-6). Builder implementations may do a best-effort application of the provided attributes. Each call to this method must be matched by a corresponding call to DocumentBuilder.endHeading().

Specified by:
beginHeading in class DocumentBuilder
Parameters:
level - the level of the heading, usually 1-6
attributes - the attributes to apply to the heading
See Also:
DocumentBuilder.endHeading()

beginSpan

public void beginSpan(DocumentBuilder.SpanType type,
                      Attributes attributes)
Description copied from class: DocumentBuilder
Begin a span of the specified type. Builder implementations may do a best-effort application of the provided attributes. Each call to this method must be matched by a corresponding call to DocumentBuilder.endSpan().

Specified by:
beginSpan in class DocumentBuilder
attributes - the attributes to apply to the span
See Also:
DocumentBuilder.endSpan()

endSpan

public void endSpan()
Description copied from class: DocumentBuilder
End a span that was started.

Specified by:
endSpan in class DocumentBuilder
See Also:
#beginSpan(org.eclipse.mylyn.wikitext.parser.DocumentBuilder.SpanType, Attributes)

charactersUnescaped

public void charactersUnescaped(String literal)
Description copied from class: DocumentBuilder
Create unescaped characters, usually with some embedded HTML markup. Note that using this method causes the output to be HTML-centric

Specified by:
charactersUnescaped in class DocumentBuilder
Parameters:
literal - the literal characters to emit

endDocument

public void endDocument()
Description copied from class: DocumentBuilder
End a document.

Specified by:
endDocument in class DocumentBuilder
See Also:
DocumentBuilder.endDocument()

endHeading

public void endHeading()
Description copied from class: DocumentBuilder
End a span that was started.

Specified by:
endHeading in class DocumentBuilder
See Also:
DocumentBuilder.beginHeading(int, Attributes)

image

public void image(Attributes attributes,
                  String url)
Description copied from class: DocumentBuilder
Build the image with the given attributes

Specified by:
image in class DocumentBuilder
Parameters:
attributes - the attributes, which may be an ImageAttributes.
url - the URL to the image, possibly relative

imageLink

public void imageLink(Attributes linkAttributes,
                      Attributes imageAttributes,
                      String href,
                      String imageUrl)
Description copied from class: DocumentBuilder
Create a hyperlink whose visual representation is an image. Implementations must apply the attributes to the image tag. For example, if the builder constructs HTML, the builder would emit <a href="..."><img src="..."/></a>. In this case if the attributes define a css class then the resulting HTML should look like this: <a href="..."><img src="..." class="..."/></a>

Specified by:
imageLink in class DocumentBuilder
Parameters:
linkAttributes - the attributes of the link, which may be LinkAttributes
imageAttributes - the attributes of the image , which may be ImageAttributes
href - the url (which may be internal to the page if prefixed with a hash '#')
imageUrl - the url of the image, which may be relative

lineBreak

public void lineBreak()
Description copied from class: DocumentBuilder
Create a line break (eg: br in html). Not all builders need support line breaks.

Specified by:
lineBreak in class DocumentBuilder

link

public void link(Attributes attributes,
                 String hrefOrHashName,
                 String text)
Description copied from class: DocumentBuilder
Create a hyperlink to the given url. If LinkAttributes are used, the attributes must not have the href attribute set.

Specified by:
link in class DocumentBuilder
Parameters:
attributes - the attributes of the link
hrefOrHashName - the url (which may be internal to the page if prefixed with a hash '#')
text - the text of the hyperlink

characters

public void characters(String text)
Description copied from class: DocumentBuilder
Emit the given text as characters where special characters are encoded according to the output format rules.

Overrides:
characters in class AbstractXmlDocumentBuilder
Parameters:
text - the text to emit.

entityReference

public void entityReference(String entity)
Description copied from class: DocumentBuilder
An XML entity reference.

Specified by:
entityReference in class DocumentBuilder
Parameters:
entity - the entity

getOutline

public OutlineItem getOutline()
the outline if available, otherwise null setOutline(OutlineItem)


setOutline

public void setOutline(OutlineItem outline)
Set the outline of the document being parsed if xref URLs are to be correctly computed. OASIS DITA has its own URL syntax for DITA-specific links, which need some translation at the time that we build the document.


getFilename

public String getFilename()

setFilename

public void setFilename(String filename)

computeName

public static String computeName(String headingId,
                                 String topicFilenameSuffix)

getTopicBreakLevel

public int getTopicBreakLevel()
the heading level at which topics are determined


setTopicBreakLevel

public void setTopicBreakLevel(int topicBreakLevel)
the heading level at which topics are determined


setRootTopicTitle

public void setRootTopicTitle(String rootTitle)
The title of the root topic if there should be one. If specified, the topic file is created with a 'wrapper' root topic with the given title.


getRootTopicTitle

public String getRootTopicTitle()
The title of the root topic if there should be one. If specified, the topic file is created with a 'wrapper' root topic with the given title.



Copyright © 2011 FuseSource, Corp.. All Rights Reserved.