モジュール java.desktop
パッケージ javax.swing.text

クラスAbstractWriter

  • 直系の既知のサブクラス:
    HTMLWriter, MinimalHTMLWriter


    public abstract class AbstractWriter
    extends Object
    AbstractWriterは、属性を含む要素ツリーを実際に書き出すabstractクラスです。 1行あたりに書き出す文字数のデフォルトは100です。 ただし、この値はサブクラスで設定することができます。
    • フィールドのサマリー

      フィールド 
      修飾子と型 フィールド 説明
      protected static char NEWLINE
      テキスト・パッケージ・モデルの改行法です。
    • メソッドのサマリー

      すべてのメソッド インスタンス・メソッド 抽象メソッド 具象メソッド 
      修飾子と型 メソッド 説明
      protected void decrIndent​()
      インデント・レベルを減分します。
      protected boolean getCanWrapLines​()
      行がラップ可能かどうかを返します。
      protected int getCurrentLineLength​()
      現在の行の長さを返します。
      protected Document getDocument​()
      ドキュメントを取得します。
      protected ElementIterator getElementIterator​()
      ElementIteratorを取得します。
      int getEndOffset​()
      出力対象の最後のオフセットを返します。
      protected int getIndentLevel​()
      現在のインデント・レベルを返します。
      protected int getIndentSpace​()
      インデントするスペースの量を返します。
      protected int getLineLength​()
      行の長さの最大値を返します。
      String getLineSeparator​()
      改行を表すときに使用する文字列を返します。
      int getStartOffset​()
      出力対象の最初のオフセットを返します。
      protected String getText​(Element elem)
      要素に関連したテキストを返します。
      protected Writer getWriter​()
      コンテンツを出力するときに使用するライターを返します。
      protected void incrIndent​()
      インデント・レベルを増分します。
      protected void indent​()
      インデントを行います。
      protected boolean inRange​(Element next)
      このメソッドは、現在の要素が指定された範囲内にあるかどうかを判定します。
      protected boolean isLineEmpty​()
      現在の行の長さが空の場合は、trueを返します。
      protected void output​(char[] content, int start, int length)
      コンテンツ書込み時の最後の停止です。
      protected void setCanWrapLines​(boolean newValue)
      行をラップできるかどうかを設定します。
      protected void setCurrentLineLength​(int length)
      現在の行の長さを設定します。
      protected void setIndentSpace​(int space)
      インデントにマッピングするスペースの数をサブクラスから指定できるようにします。
      protected void setLineLength​(int l)
      1行あたりに書き込むことのできる文字数をサブクラスから設定できるようにします。
      void setLineSeparator​(String value)
      改行を表すときに使用する文字列を設定します。
      protected void text​(Element elem)
      テキストを書き出します。
      protected abstract void write​()
      この抽象メソッドは、サブクラスによって実装される必要があります。
      protected void write​(char ch)
      文字を書き出します。
      protected void write​(char[] chars, int startIndex, int length)
      すべての書出しメソッドはこれを呼び出します。
      protected void write​(String content)
      文字列を書き出します。
      protected void writeAttributes​(AttributeSet attr)
      属性セットを<name>=<value>のペアとして書き出します。
      protected void writeLineSeparator​()
      行区切り文字を書き出します。
    • コンストラクタの詳細

      • AbstractWriter

        protected AbstractWriter​(Writer w,
                                 Document doc)
        新しいAbstractWriterを作成します。 デフォルトのドキュメント・ルートを使ってElementIteratorを初期化します。
        パラメータ:
        w - Writer。
        doc - Document
      • AbstractWriter

        protected AbstractWriter​(Writer w,
                                 Document doc,
                                 int pos,
                                 int len)
        新しいAbstractWriterを作成します。 渡された要素を使ってElementIteratorを初期化します。
        パラメータ:
        w - Writer
        doc - Element
        pos - コンテンツを取得するドキュメント内の位置。
        len - 書き出す量。
      • AbstractWriter

        protected AbstractWriter​(Writer w,
                                 Element root)
        新しいAbstractWriterを作成します。 渡された要素を使ってElementIteratorを初期化します。
        パラメータ:
        w - Writer
        root - Element
      • AbstractWriter

        protected AbstractWriter​(Writer w,
                                 Element root,
                                 int pos,
                                 int len)
        新しいAbstractWriterを作成します。 渡された要素を使ってElementIteratorを初期化します。
        パラメータ:
        w - Writer
        root - Element
        pos - コンテンツを取得するドキュメント内の位置。
        len - 書き出す量。
    • メソッドの詳細

      • getStartOffset

        public int getStartOffset​()
        出力対象の最初のオフセットを返します。
        戻り値:
        出力される最初のオフセット
        導入されたバージョン:
        1.3
      • getEndOffset

        public int getEndOffset​()
        出力対象の最後のオフセットを返します。
        戻り値:
        出力する最後のオフセット
        導入されたバージョン:
        1.3
      • getElementIterator

        protected ElementIterator getElementIterator​()
        ElementIteratorを取得します。
        戻り値:
        ElementIterator
      • getWriter

        protected Writer getWriter​()
        コンテンツを出力するときに使用するライターを返します。
        戻り値:
        コンテンツの出力に使用されるWriter
        導入されたバージョン:
        1.3
      • getDocument

        protected Document getDocument​()
        ドキュメントを取得します。
        戻り値:
        Document
      • inRange

        protected boolean inRange​(Element next)
        このメソッドは、現在の要素が指定された範囲内にあるかどうかを判定します。 範囲が指定されなかった場合は、ドキュメント全体が範囲として初期化されます。inRange()は、指定された範囲が要素の範囲と交差している場合にtrueを返します。
        パラメータ:
        next - Element。
        戻り値:
        要素が範囲内かどうかを示すboolean型の値
      • write

        protected abstract void write​()
                               throws IOException,
                                      BadLocationException
        この抽象メソッドは、サブクラスによって実装される必要があります。 この抽象メソッドの役割は、要素を反復し、write()メソッドを使って必要な形式の出力を生成することです。
        例外:
        IOException - I/Oの問題が発生した場合
        BadLocationException - ドキュメント内の無効なロケーション
      • getText

        protected String getText​(Element elem)
                          throws BadLocationException
        要素に関連したテキストを返します。 このメソッドは、渡された要素が葉の要素であると仮定します。 例外が発生するとBadLocationExceptionをスローします。
        パラメータ:
        elem - Element
        戻り値:
        Stringとしてのテキスト
        例外:
        BadLocationException - posがドキュメント内の無効な位置を表す場合
      • text

        protected void text​(Element elem)
                     throws BadLocationException,
                            IOException
        テキストを書き出します。 コンストラクタの呼出し時に範囲が指定されている場合は、対応する範囲のテキストだけが書き出されます。
        パラメータ:
        elem - Element。
        例外:
        IOException - 入出力エラーが発生した場合
        BadLocationException - posがドキュメント内の無効な位置を表す場合。
      • setLineLength

        protected void setLineLength​(int l)
        1行あたりに書き込むことのできる文字数をサブクラスから設定できるようにします。 デフォルトは100です。
        パラメータ:
        l - 行の長さの最大値。
      • getLineLength

        protected int getLineLength​()
        行の長さの最大値を返します。
        戻り値:
        最大行長
        導入されたバージョン:
        1.3
      • setCurrentLineLength

        protected void setCurrentLineLength​(int length)
        現在の行の長さを設定します。
        パラメータ:
        length - 新しい行の長さ
        導入されたバージョン:
        1.3
      • getCurrentLineLength

        protected int getCurrentLineLength​()
        現在の行の長さを返します。
        戻り値:
        現在の行の長さ
        導入されたバージョン:
        1.3
      • isLineEmpty

        protected boolean isLineEmpty​()
        現在の行の長さが空の場合は、trueを返します。 getCurrentLineLength == 0||indentが空の行上で呼び出された場合にはtrueです。
        戻り値:
        現在の行が空であるとみなされる場合はtrue
        導入されたバージョン:
        1.3
      • setCanWrapLines

        protected void setCanWrapLines​(boolean newValue)
        行をラップできるかどうかを設定します。 行に書込み中は切替え可能です。 たとえば、HTMLの出力は引用文字列を出力するときには、この設定はfalseとなります。
        パラメータ:
        newValue - 改行の新しい値
        導入されたバージョン:
        1.3
      • getCanWrapLines

        protected boolean getCanWrapLines​()
        行がラップ可能かどうかを返します。 falseの場合は、lineSeparatorは出力されません。
        戻り値:
        ラインをラップできるかどうか
        導入されたバージョン:
        1.3
      • setIndentSpace

        protected void setIndentSpace​(int space)
        インデントにマッピングするスペースの数をサブクラスから指定できるようにします。 インデントを行うと、インデント・レベルとマッピングの積が計算されます。 デフォルトは2です。
        パラメータ:
        space - インデントにマッピングするスペースを表すint値。
      • getIndentSpace

        protected int getIndentSpace​()
        インデントするスペースの量を返します。
        戻り値:
        インデントするスペースの量
        導入されたバージョン:
        1.3
      • setLineSeparator

        public void setLineSeparator​(String value)
        改行を表すときに使用する文字列を設定します。 これは、コンストラクタ内のDocumentまたはSystemプロパティline.separatorで初期化されます。
        パラメータ:
        value - 新しい行セパレータ
        導入されたバージョン:
        1.3
      • getLineSeparator

        public String getLineSeparator​()
        改行を表すときに使用する文字列を返します。
        戻り値:
        改行を表すために使用される文字列
        導入されたバージョン:
        1.3
      • incrIndent

        protected void incrIndent​()
        インデント・レベルを増分します。 インデントがgetLineLength()よりも大きくなるようなgetIndentSpace() *getIndentLevel()となるとインデントしません。
      • decrIndent

        protected void decrIndent​()
        インデント・レベルを減分します。
      • getIndentLevel

        protected int getIndentLevel​()
        現在のインデント・レベルを返します。 つまり、incrIndentが呼び出された回数からdecrIndentが呼び出された回数を引いた数です。
        戻り値:
        現在のインデント・レベル
        導入されたバージョン:
        1.3
      • indent

        protected void indent​()
                       throws IOException
        インデントを行います。 書き出されるスペースの数は、インデント・レベルとマッピングされたスペースの数の積になります。 現在の行が空の場合は、何も行われず行は空のままです。
        例外:
        IOException - 入出力エラーが発生した場合
      • write

        protected void write​(char ch)
                      throws IOException
        文字を書き出します。 これはchar[]を取り出すwriteメソッドを呼び出すときに実装されます。
        パラメータ:
        ch - char。
        例外:
        IOException - 入出力エラーが発生した場合
      • write

        protected void write​(String content)
                      throws IOException
        文字列を書き出します。 これはchar[]を取り出すwriteメソッドを呼び出すときに実装されます。
        パラメータ:
        content - 文字列。
        例外:
        IOException - 入出力エラーが発生した場合
      • writeLineSeparator

        protected void writeLineSeparator​()
                                   throws IOException
        行区切り文字を書き出します。 これはoutputを直接呼び出して、lineLengthを0に設定します。
        例外:
        IOException - 入出力エラーが発生した場合
        導入されたバージョン:
        1.3
      • write

        protected void write​(char[] chars,
                             int startIndex,
                             int length)
                      throws IOException
        すべての書出しメソッドはこれを呼び出します。 getCanWrapLines()がfalseを返すとNEWLINEを含まないcharsの各シーケンス付きoutputを呼び出し、続いてwriteLineSeparatorを呼び出します。 一方、getCanWrapLines()がtrueを返すと、必要に応じて文字列を分割してgetLineLengthを受け取ります。 唯一の例外は現在の文字列に空白が含まれない場合で、行の長さがgetLineLengthを超えるため収まりません。
        パラメータ:
        chars - 出力する文字
        startIndex - 開始インデックス
        length - 出力の長さ
        例外:
        IOException - 入出力エラーが発生した場合
        導入されたバージョン:
        1.3
      • writeAttributes

        protected void writeAttributes​(AttributeSet attr)
                                throws IOException
        属性セットを<name>=<value>のペアとして書き出します。 入出力エラーが発生するとIOExceptionをスローします。
        パラメータ:
        attr - AttributeSet。
        例外:
        IOException - 入出力エラーが発生した場合
      • output

        protected void output​(char[] content,
                              int start,
                              int length)
                       throws IOException
        コンテンツ書込み時の最後の停止です。 すべての書込みメソッドは最終的にはこのメソッドとなり、ライターでwriteを呼び出します。

        このメソッドは、lengthに基づいて行の長さも更新します。 改行を出力するためにこれが呼び出される場合は、現在の行の長さをリセットして無効にする必要があります。 この実行が呼出し側に依存する場合は、 writeLineSeparatorを使用して改行を書き出し、現在の行の長さのプロパティを更新します。

        パラメータ:
        content - 出力する文字
        start - 開始インデックス
        length - 出力の長さ
        例外:
        IOException - 入出力エラーが発生した場合
        導入されたバージョン:
        1.3