Java™ Platform
Standard Ed. 8
javax.swing.text

Class AbstractWriter

  • Direct Known Subclasses:
    HTMLWriter, MinimalHTMLWriter


    public abstract class AbstractWriter
    extends Object
    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.
    • Constructor Detail

      • AbstractWriter

        protected AbstractWriter(Writer w,
                                 Document doc)
        Creates a new AbstractWriter. Initializes the ElementIterator with the default root of the document.
        Parameters:
        w - a Writer.
        doc - a Document
      • AbstractWriter

        protected AbstractWriter(Writer w,
                                 Document doc,
                                 int pos,
                                 int len)
        Creates a new AbstractWriter. Initializes the ElementIterator with the element passed in.
        Parameters:
        w - a Writer
        doc - an Element
        pos - The location in the document to fetch the content.
        len - The amount to write out.
      • AbstractWriter

        protected AbstractWriter(Writer w,
                                 Element root)
        Creates a new AbstractWriter. Initializes the ElementIterator with the element passed in.
        Parameters:
        w - a Writer
        root - an Element
      • AbstractWriter

        protected AbstractWriter(Writer w,
                                 Element root,
                                 int pos,
                                 int len)
        Creates a new AbstractWriter. Initializes the ElementIterator with the element passed in.
        Parameters:
        w - a Writer
        root - an Element
        pos - The location in the document to fetch the content.
        len - The amount to write out.
    • Method Detail

      • getStartOffset

        public int getStartOffset()
        Returns the first offset to be output.
        Since:
        1.3
      • getEndOffset

        public int getEndOffset()
        Returns the last offset to be output.
        Since:
        1.3
      • getElementIterator

        protected ElementIterator getElementIterator()
        Fetches the ElementIterator.
        Returns:
        the ElementIterator.
      • getWriter

        protected Writer getWriter()
        Returns the Writer that is used to output the content.
        Since:
        1.3
      • getDocument

        protected Document getDocument()
        Fetches the document.
        Returns:
        the Document.
      • inRange

        protected boolean inRange(Element next)
        This method determines whether the current element is in the range specified. When no range is specified, the range is initialized to be the entire document. inRange() returns true if the range specified intersects with the element's range.
        Parameters:
        next - an Element.
        Returns:
        boolean that indicates whether the element is in the range.
      • getText

        protected String getText(Element elem)
                          throws BadLocationException
        Returns the text associated with the element. The assumption here is that the element is a leaf element. Throws a BadLocationException when encountered.
        Parameters:
        elem - an Element
        Returns:
        the text as a String
        Throws:
        BadLocationException - if pos represents an invalid location within the document
      • text

        protected void text(Element elem)
                     throws BadLocationException,
                            IOException
        Writes out text. If a range is specified when the constructor is invoked, then only the appropriate range of text is written out.
        Parameters:
        elem - an Element.
        Throws:
        IOException - on any I/O error
        BadLocationException - if pos represents an invalid location within the document.
      • setLineLength

        protected void setLineLength(int l)
        Enables subclasses to set the number of characters they want written per line. The default is 100.
        Parameters:
        l - the maximum line length.
      • getLineLength

        protected int getLineLength()
        Returns the maximum line length.
        Since:
        1.3
      • setCurrentLineLength

        protected void setCurrentLineLength(int length)
        Sets the current line length.
        Since:
        1.3
      • getCurrentLineLength

        protected int getCurrentLineLength()
        Returns the current line length.
        Since:
        1.3
      • isLineEmpty

        protected boolean isLineEmpty()
        Returns true if the current line should be considered empty. This is true when getCurrentLineLength == 0 || indent has been invoked on an empty line.
        Since:
        1.3
      • setCanWrapLines

        protected void setCanWrapLines(boolean newValue)
        Sets whether or not lines can be wrapped. This can be toggled during the writing of lines. For example, outputting HTML might set this to false when outputting a quoted string.
        Since:
        1.3
      • getCanWrapLines

        protected boolean getCanWrapLines()
        Returns whether or not the lines can be wrapped. If this is false no lineSeparator's will be output.
        Since:
        1.3
      • setIndentSpace

        protected void setIndentSpace(int space)
        Enables subclasses to specify how many spaces an indent maps to. When indentation takes place, the indent level is multiplied by this mapping. The default is 2.
        Parameters:
        space - an int representing the space to indent mapping.
      • getIndentSpace

        protected int getIndentSpace()
        Returns the amount of space to indent.
        Since:
        1.3
      • setLineSeparator

        public void setLineSeparator(String value)
        Sets the String used to represent newlines. This is initialized in the constructor from either the Document, or the System property line.separator.
        Since:
        1.3
      • getLineSeparator

        public String getLineSeparator()
        Returns the string used to represent newlines.
        Since:
        1.3
      • incrIndent

        protected void incrIndent()
        Increments the indent level. If indenting would cause getIndentSpace() *getIndentLevel() to be > than getLineLength() this will not cause an indent.
      • decrIndent

        protected void decrIndent()
        Decrements the indent level.
      • getIndentLevel

        protected int getIndentLevel()
        Returns the current indentation level. That is, the number of times incrIndent has been invoked minus the number of times decrIndent has been invoked.
        Since:
        1.3
      • indent

        protected void indent()
                       throws IOException
        Does indentation. The number of spaces written out is indent level times the space to map mapping. If the current line is empty, this will not make it so that the current line is still considered empty.
        Throws:
        IOException - on any I/O error
      • write

        protected void write(char ch)
                      throws IOException
        Writes out a character. This is implemented to invoke the write method that takes a char[].
        Parameters:
        ch - a char.
        Throws:
        IOException - on any I/O error
      • write

        protected void write(String content)
                      throws IOException
        Writes out a string. This is implemented to invoke the write method that takes a char[].
        Parameters:
        content - a String.
        Throws:
        IOException - on any I/O error
      • writeLineSeparator

        protected void writeLineSeparator()
                                   throws IOException
        Writes the line separator. This invokes output directly as well as setting the lineLength to 0.
        Throws:
        IOException
        Since:
        1.3
      • write

        protected void write(char[] chars,
                             int startIndex,
                             int length)
                      throws IOException
        All write methods call into this one. If 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.
        Throws:
        IOException
        Since:
        1.3
      • writeAttributes

        protected void writeAttributes(AttributeSet attr)
                                throws IOException
        Writes out the set of attributes as " <name>=<value>" pairs. It throws an IOException when encountered.
        Parameters:
        attr - an AttributeSet.
        Throws:
        IOException - on any I/O error
      • output

        protected void output(char[] content,
                              int start,
                              int length)
                       throws IOException
        The last stop in writing out content. All the write methods eventually make it to this method, which invokes 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.

        Throws:
        IOException
        Since:
        1.3
Java™ Platform
Standard Ed. 8

Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2022, Oracle and/or its affiliates. All rights reserved. Use is subject to license terms. Also see the documentation redistribution policy.

微信小程序

微信扫一扫体验

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部