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.
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 void | decrIndent()
Decrement the indent level. |
protected boolean | getCanWrapLines()
Return true if lines printed via write() will wrap, false
otherwise. |
protected int | getCurrentLineLength()
Return the current line length. |
protected Document | getDocument()
Return this writer's Document. |
protected ElementIterator | getElementIterator()
Return the ElementIterator for this writer. |
int | getEndOffset()
Return the index of the Document at which output ends. |
protected int | getIndentLevel()
Return the current indent level. |
protected int | getIndentSpace()
Return the number of spaces per indent level. |
protected int | getLineLength()
Return the maximum line length. |
String | getLineSeparator()
Return the current line separator. |
int | getStartOffset()
Return the index of the Document at which output starts. |
protected String | getText(Element elt)
Return the text of the Document that is associated with the given
Element. |
protected Writer | getWriter()
Return the Writer to which we are writing. |
protected void | incrIndent()
Increment the indent level. |
protected void | indent()
Indent this line by emitting spaces, according to the current
indent level and the current number of spaces per indent. |
protected boolean | inRange(Element elt)
Return true if the Element's range overlaps our desired output
range; false otherwise. |
protected boolean | isLineEmpty()
Return true if the line is empty, false otherwise. |
protected void | output(char[] data, int start, int len)
This method calls Writer.write on the indicated data, and updates
the current line length. |
protected void | setCanWrapLines(boolean canWrapLines)
Set the flag indicating whether lines will wrap. |
protected void | setCurrentLineLength(int lineLength)
Set the current line length. |
protected void | setIndentSpace(int indentSpace)
Set the number of spaces per indent level. |
protected void | setLineLength(int maxLineLength)
Set the maximum line length. |
void | setLineSeparator(String lineSeparator)
Set the current line separator. |
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. |
protected abstract void | write()
This method must be overridden by a concrete subclass. |
protected void | write(char ch)
Write a single character. |
protected void | write(String s)
Write a String. |
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. |
protected void | writeAttributes(AttributeSet attrs)
Print the given AttributeSet as a sequence of assignment-like
strings, e.g. |
protected void | writeLineSeparator()
Write a line separator using the output method, and then reset
the current line length.
|
protected static final char NEWLINE
The default line separator character.
UNKNOWN: although this is a constant, it is not static in the JDK
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.
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.
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.
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.
protected void decrIndent()
Decrement the indent level.
protected boolean getCanWrapLines()
Return true if lines printed via write() will wrap, false
otherwise.
Since: 1.3
protected int getCurrentLineLength()
Return the current line length.
Since: 1.3
Return this writer's Document.
Return the ElementIterator for this writer.
public int getEndOffset()
Return the index of the Document at which output ends.
Since: 1.3
protected int getIndentLevel()
Return the current indent level.
Since: 1.3
protected int getIndentSpace()
Return the number of spaces per indent level.
Since: 1.3
protected int getLineLength()
Return the maximum line length.
Since: 1.3
public String getLineSeparator()
Return the current line separator.
Since: 1.3
public int getStartOffset()
Return the index of the Document at which output starts.
Since: 1.3
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
protected Writer getWriter()
Return the Writer to which we are writing.
Since: 1.3
protected void incrIndent()
Increment the indent level.
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.
protected boolean inRange(
Element elt)
Return true if the Element's range overlaps our desired output
range; false otherwise.
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.
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
protected void setCanWrapLines(boolean canWrapLines)
Set the flag indicating whether lines will wrap. This affects
the behavior of write().
Since: 1.3
protected void setCurrentLineLength(int lineLength)
Set the current line length.
Since: 1.3
protected void setIndentSpace(int indentSpace)
Set the number of spaces per indent level.
Since: 1.3
protected void setLineLength(int maxLineLength)
Set the maximum line length.
public void setLineSeparator(String lineSeparator)
Set the current line separator.
Since: 1.3
Output the text of the indicated Element, properly clipping it to
the range of the Document specified when the AbstractWriter was
created.
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.
protected void write(char ch)
Write a single character.
protected void write(String s)
Write a String.
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
Print the given AttributeSet as a sequence of assignment-like
strings, e.g. "key=value".
protected void writeLineSeparator()
Write a line separator using the output method, and then reset
the current line length.
Since: 1.3