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

クラスAbstractWriter

java.lang.Object
javax.swing.text.AbstractWriter
直系の既知のサブクラス:
HTMLWriter, MinimalHTMLWriter

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

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

    コンストラクタ
    修飾子 コンストラクタ 説明
    protected AbstractWriter​(Writer w, Document doc)
    新しいAbstractWriterを作成します。
    protected AbstractWriter​(Writer w, Document doc, int pos, int len)
    新しいAbstractWriterを作成します。
    protected AbstractWriter​(Writer w, Element root)
    新しいAbstractWriterを作成します。
    protected AbstractWriter​(Writer w, Element root, int pos, int len)
    新しいAbstractWriterを作成します。
  • メソッドのサマリー

    修飾子と型 メソッド 説明
    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()
    行区切り文字を書き出します。

    クラス java.lang.Objectで宣言されたメソッド

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • フィールド詳細

  • コンストラクタの詳細

    • 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