javax.swing.text

Class AbstractWriter

public abstract class AbstractWriter extends Object

This is an abstract base class for writing Document instances to a Writer. A concrete subclass must implement a method to iterate over the Elements of the Document and correctly format them.
Field Summary
protected static charNEWLINE
The default line separator character.
Constructor Summary
protected AbstractWriter(Writer writer, Document doc)
Create a new AbstractWriter with the indicated Writer and Document.
protected AbstractWriter(Writer writer, Document doc, int pos, int len)
Create a new AbstractWriter with the indicated Writer and Document.
protected AbstractWriter(Writer writer, Element elt)
Create a new AbstractWriter with the indicated Writer and Element.
protected AbstractWriter(Writer writer, Element elt, int pos, int len)
Create a new AbstractWriter with the indicated Writer and Element.
Method Summary
protected voiddecrIndent()
Decrement the indent level.
protected booleangetCanWrapLines()
Return true if lines printed via write() will wrap, false otherwise.
protected intgetCurrentLineLength()
Return the current line length.
protected DocumentgetDocument()
Return this writer's Document.
protected ElementIteratorgetElementIterator()
Return the ElementIterator for this writer.
intgetEndOffset()
Return the index of the Document at which output ends.
protected intgetIndentLevel()
Return the current indent level.
protected intgetIndentSpace()
Return the number of spaces per indent level.
protected intgetLineLength()
Return the maximum line length.
StringgetLineSeparator()
Return the current line separator.
intgetStartOffset()
Return the index of the Document at which output starts.
protected StringgetText(Element elt)
Return the text of the Document that is associated with the given Element.
protected WritergetWriter()
Return the Writer to which we are writing.
protected voidincrIndent()
Increment the indent level.
protected voidindent()
Indent this line by emitting spaces, according to the current indent level and the current number of spaces per indent.
protected booleaninRange(Element elt)
Return true if the Element's range overlaps our desired output range; false otherwise.
protected booleanisLineEmpty()
Return true if the line is empty, false otherwise.
protected voidoutput(char[] data, int start, int len)
This method calls Writer.write on the indicated data, and updates the current line length.
protected voidsetCanWrapLines(boolean canWrapLines)
Set the flag indicating whether lines will wrap.
protected voidsetCurrentLineLength(int lineLength)
Set the current line length.
protected voidsetIndentSpace(int indentSpace)
Set the number of spaces per indent level.
protected voidsetLineLength(int maxLineLength)
Set the maximum line length.
voidsetLineSeparator(String lineSeparator)
Set the current line separator.
protected voidtext(Element elt)
Output the text of the indicated Element, properly clipping it to the range of the Document specified when the AbstractWriter was created.
protected abstract voidwrite()
This method must be overridden by a concrete subclass.
protected voidwrite(char ch)
Write a single character.
protected voidwrite(String s)
Write a String.
protected voidwrite(char[] data, int start, int len)
Write a character array to the output Writer, properly handling newlines and, if needed, wrapping lines as they are output.
protected voidwriteAttributes(AttributeSet attrs)
Print the given AttributeSet as a sequence of assignment-like strings, e.g.
protected voidwriteLineSeparator()
Write a line separator using the output method, and then reset the current line length.

Field Detail

NEWLINE

protected static final char NEWLINE
The default line separator character.

UNKNOWN: although this is a constant, it is not static in the JDK

Constructor Detail

AbstractWriter

protected AbstractWriter(Writer writer, Document doc)
Create a new AbstractWriter with the indicated Writer and Document. The full range of the Document will be used. The internal ElementIterator will be initialized with the Document's root node.

AbstractWriter

protected AbstractWriter(Writer writer, Document doc, int pos, int len)
Create a new AbstractWriter with the indicated Writer and Document. The full range of the Document will be used. The internal ElementIterator will be initialized with the Document's root node.

AbstractWriter

protected AbstractWriter(Writer writer, Element elt)
Create a new AbstractWriter with the indicated Writer and Element. The full range of the Element will be used.

AbstractWriter

protected AbstractWriter(Writer writer, Element elt, int pos, int len)
Create a new AbstractWriter with the indicated Writer and Element. The full range of the Element will be used. The range will be limited to the indicated range of the Document.

Method Detail

decrIndent

protected void decrIndent()
Decrement the indent level.

getCanWrapLines

protected boolean getCanWrapLines()
Return true if lines printed via write() will wrap, false otherwise.

Since: 1.3

getCurrentLineLength

protected int getCurrentLineLength()
Return the current line length.

Since: 1.3

getDocument

protected Document getDocument()
Return this writer's Document.

getElementIterator

protected ElementIterator getElementIterator()
Return the ElementIterator for this writer.

getEndOffset

public int getEndOffset()
Return the index of the Document at which output ends.

Since: 1.3

getIndentLevel

protected int getIndentLevel()
Return the current indent level.

Since: 1.3

getIndentSpace

protected int getIndentSpace()
Return the number of spaces per indent level.

Since: 1.3

getLineLength

protected int getLineLength()
Return the maximum line length.

Since: 1.3

getLineSeparator

public String getLineSeparator()
Return the current line separator.

Since: 1.3

getStartOffset

public int getStartOffset()
Return the index of the Document at which output starts.

Since: 1.3

getText

protected String getText(Element elt)
Return the text of the Document that is associated with the given Element. If the Element is not a leaf Element, this will throw BadLocationException.

Throws: BadLocationException if the element is not a leaf

getWriter

protected Writer getWriter()
Return the Writer to which we are writing.

Since: 1.3

incrIndent

protected void incrIndent()
Increment the indent level.

indent

protected void indent()
Indent this line by emitting spaces, according to the current indent level and the current number of spaces per indent. After this method is called, the current line is no longer considered to be empty, even if no spaces are actually written.

inRange

protected boolean inRange(Element elt)
Return true if the Element's range overlaps our desired output range; false otherwise.

isLineEmpty

protected boolean isLineEmpty()
Return true if the line is empty, false otherwise. The line is empty if nothing has been written since the last newline, and indent has not been invoked.

output

protected void output(char[] data, int start, int len)
This method calls Writer.write on the indicated data, and updates the current line length. This method does not look for newlines in the written data; the caller is responsible for that.

Since: 1.3

setCanWrapLines

protected void setCanWrapLines(boolean canWrapLines)
Set the flag indicating whether lines will wrap. This affects the behavior of write().

Since: 1.3

setCurrentLineLength

protected void setCurrentLineLength(int lineLength)
Set the current line length.

Since: 1.3

setIndentSpace

protected void setIndentSpace(int indentSpace)
Set the number of spaces per indent level.

Since: 1.3

setLineLength

protected void setLineLength(int maxLineLength)
Set the maximum line length.

setLineSeparator

public void setLineSeparator(String lineSeparator)
Set the current line separator.

Since: 1.3

text

protected void text(Element elt)
Output the text of the indicated Element, properly clipping it to the range of the Document specified when the AbstractWriter was created.

write

protected abstract void write()
This method must be overridden by a concrete subclass. It is responsible for iterating over the Elements of the Document and writing them out.

write

protected void write(char ch)
Write a single character.

write

protected void write(String s)
Write a String.

write

protected void write(char[] data, int start, int len)
Write a character array to the output Writer, properly handling newlines and, if needed, wrapping lines as they are output.

Since: 1.3

writeAttributes

protected void writeAttributes(AttributeSet attrs)
Print the given AttributeSet as a sequence of assignment-like strings, e.g. "key=value".

writeLineSeparator

protected void writeLineSeparator()
Write a line separator using the output method, and then reset the current line length.

Since: 1.3