|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object | +--javax.swing.text.AbstractWriter
Safe: AbstractWriter is an abstract class that actually does the work of writing out the element tree including the attributes. In terms of how much is written out per line, the writer defaults to 100. But this value can be set by subclasses.
Field Summary | |
private boolean |
canWrapLines
True indicates that when writing, the line can be split, false indicates that even if the line is > than max line length it should not be split. |
private int |
currLength
|
private Document |
doc
|
private int |
endOffset
|
private char[] |
indentChars
Used when indenting. |
private int |
indentLevel
|
private int |
indentSpace
|
private boolean |
isLineEmpty
True while the current line is empty. |
private ElementIterator |
it
|
private String |
lineSeparator
String used for end of line. |
private int |
maxLineLength
|
protected static char |
NEWLINE
How the text packages models newlines. |
private char[] |
newlineChars
This is used in writeLineSeparator instead of
tempChars. |
private int |
offsetIndent
|
private Writer |
out
|
private Segment |
segment
Used for writing text. |
private int |
startOffset
|
private char[] |
tempChars
Used when writing out a string. |
Constructor Summary | |
protected |
AbstractWriter(Writer w,
Document doc)
Creates a new AbstractWriter. |
protected |
AbstractWriter(Writer w,
Document doc,
int pos,
int len)
Creates a new AbstractWriter. |
protected |
AbstractWriter(Writer w,
Element root)
Creates a new AbstractWriter. |
protected |
AbstractWriter(Writer w,
Element root,
int pos,
int len)
Creates a new AbstractWriter. |
Method Summary | |
protected void |
decrIndent()
Decrements the indent level. |
protected boolean |
getCanWrapLines()
Returns whether or not the lines can be wrapped. |
protected int |
getCurrentLineLength()
Returns the current line length. |
protected Document |
getDocument()
Fetches the document. |
protected ElementIterator |
getElementIterator()
Fetches the ElementIterator. |
int |
getEndOffset()
Enabled: Returns the last offset to be output. |
protected int |
getIndentLevel()
Returns the current indentation level. |
protected int |
getIndentSpace()
Returns the amount of space to indent. |
protected int |
getLineLength()
Returns the maximum line length. |
String |
getLineSeparator()
Enabled: Returns the string used to represent newlines. |
int |
getStartOffset()
Enabled: Returns the first offset to be output. |
protected String |
getText(Element elem)
Returns the text associated with the element. |
protected Writer |
getWriter()
Returns the Writer that is used to output the content. |
protected void |
incrIndent()
Increments the indent level. |
protected void |
indent()
Does indentation. |
private int |
indexOf(char[] chars,
char sChar,
int startIndex,
int endIndex)
Support method to locate an occurence of a particular character. |
protected boolean |
inRange(Element next)
This method determines whether the current element is in the range specified. |
protected boolean |
isLineEmpty()
Returns true if the current line should be considered empty. |
protected void |
output(char[] content,
int start,
int length)
The last stop in writing out content. |
protected void |
setCanWrapLines(boolean newValue)
Sets whether or not lines can be wrapped. |
protected void |
setCurrentLineLength(int length)
Sets the current line length. |
protected void |
setIndentSpace(int space)
Enables subclasses to specify how many spaces an indent maps to. |
protected void |
setLineLength(int l)
Enables subclasses to set the number of characters they want written per line. |
void |
setLineSeparator(String value)
Enabled: Sets the String used to reprsent newlines. |
protected void |
text(Element elem)
Writes out text. |
protected abstract void |
write()
This abstract method needs to be implemented by subclasses. |
protected void |
write(char ch)
Writes out a character. |
protected void |
write(char[] chars,
int startIndex,
int length)
All write methods call into this one. |
protected void |
write(String content)
Writes out a string. |
protected void |
writeAttributes(AttributeSet attr)
Writes out the set of attributes as " |
protected void |
writeLineSeparator()
Writes the line separator. |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
private ElementIterator it
private Writer out
private int indentLevel
private int indentSpace
private Document doc
private int maxLineLength
private int currLength
private int startOffset
private int endOffset
private int offsetIndent
private String lineSeparator
private boolean canWrapLines
private boolean isLineEmpty
private char[] indentChars
private char[] tempChars
private char[] newlineChars
writeLineSeparator
instead of
tempChars. If tempChars were used it would mean write couldn't invoke
writeLineSeparator
as it might have been passed
tempChars.
private Segment segment
protected static final char NEWLINE
getLineSeparator()
Constructor Detail |
protected AbstractWriter(Writer w, Document doc)
protected AbstractWriter(Writer w, Document doc, int pos, int len)
pos
- The location in the document to fetch the
content.len
- The amount to write out.protected AbstractWriter(Writer w, Element root)
protected AbstractWriter(Writer w, Element root, int pos, int len)
pos
- The location in the document to fetch the
content.len
- The amount to write out.Method Detail |
public int getStartOffset()
public int getEndOffset()
protected ElementIterator getElementIterator()
protected Writer getWriter()
protected Document getDocument()
protected boolean inRange(Element next)
protected abstract void write() throws IOException, BadLocationException
IOException
BadLocationException
protected String getText(Element elem) throws BadLocationException
String
BadLocationException
protected void text(Element elem) throws BadLocationException, IOException
BadLocationException
IOException
protected void setLineLength(int l)
protected int getLineLength()
protected void setCurrentLineLength(int length)
protected int getCurrentLineLength()
protected boolean isLineEmpty()
getCurrentLineLength
== 0 ||
indent
has been invoked on an empty line.
protected void setCanWrapLines(boolean newValue)
protected boolean getCanWrapLines()
protected void setIndentSpace(int space)
protected int getIndentSpace()
public void setLineSeparator(String value)
public String getLineSeparator()
protected void incrIndent()
getIndentSpace()
*getIndentLevel()
to be >
than getLineLength()
this will not cause an indent.
protected void decrIndent()
protected int getIndentLevel()
incrIndent
has been invoked minus the number of times
decrIndent
has been invoked.
protected void indent() throws IOException
IOException
protected void write(char ch) throws IOException
write
method that takes a char[].
IOException
protected void write(String content) throws IOException
write
method that takes a char[].
IOException
protected void writeLineSeparator() throws IOException
output
directly
as well as setting the lineLength
to 0.
IOException
protected void write(char[] chars, int startIndex, int length) throws IOException
getCanWrapLines()
returns false, this will call output
with each sequence
of chars
that doesn't contain a NEWLINE, followed
by a call to writeLineSeparator
. On the other hand,
if getCanWrapLines()
returns true, this will split the
string, as necessary, so getLineLength
is honored.
The only exception is if the current string contains no whitespace,
and won't fit in which case the line length will exceed
getLineLength
.
IOException
protected void writeAttributes(AttributeSet attr) throws IOException
IOException
protected void output(char[] content, int start, int length) throws IOException
write
on the
Writer.
This method also updates the line length based on
length
. If this is invoked to output a newline, the
current line length will need to be reset as will no longer be
valid. If it is up to the caller to do this. Use
writeLineSeparator
to write out a newline, which will
property update the current line length.
IOException
private int indexOf(char[] chars, char sChar, int startIndex, int endIndex)
|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |