org.opengion.hayabusa.report

## クラス AbstractDBTableReport

- java.lang.Object
- - org.opengion.hayabusa.report.AbstractDBTableReport

- すべての実装されたインタフェース:
    DBTableReport
  直系の既知のサブクラス:
    DBTableReport_Excel, DBTableReport_HTML

      public abstract class AbstractDBTableReport
      extends Object
      implements DBTableReport

       DBTableReport インターフェース のデフォルト実装クラスです。
       writeReport() を、オーバーライドすれば，各種出力フォーマットに合わせた
       サブクラスを実現する事が可能です。

  機能分類
    帳票システム
  バージョン
    4.0
  作成者
    Kazuhiko Hasegawa
  導入されたバージョン:
    JDK5.0,

- - ### フィールドのサマリー

    フィールド
    修飾子とタイプ | フィールドと説明
    --- | ---
    `protected boolean` | `dataOver`
    `protected File` | `firstTemplateFile`
    `protected String[]` | `footerKeys`
    `protected String[]` | `footerVals`
    `protected String[]` | `headerKeys`
    `protected String[]` | `headerVals`
    `protected String` | `htmlDir`
    `protected String` | `htmlFileKey`
    `protected int` | `lineCopyCnt`
    `protected String` | `listId`
    `protected int` | `maxPageCount`
    `protected int` | `maxRowCount`
    `protected int` | `pageCount`
    `protected boolean` | `pageEndCut`
    `protected int` | `pageRowCount`
    `protected BufferedReader` | `reader`
    `protected ResourceManager` | `resource`
    `protected boolean` | `rowOver`
    `protected DBTableModel` | `table`
    `protected File` | `templateFile`
    `protected PrintWriter` | `writer`
    `protected String` | `ykno`

  - ### コンストラクタのサマリー

    コンストラクタ
    修飾子 | コンストラクタと説明
    --- | ---
    `protected` | `AbstractDBTableReport()` デフォルトコンストラクター

  - ### メソッドのサマリー

    すべてのメソッド インスタンス・メソッド abstractメソッド concreteメソッド
    修飾子とタイプ | メソッドと説明
    --- | ---
    `protected abstract String` | `changeData(String inLine)` 入力文字列 を加工して、出力します。
    `protected int` | `getRealRow(int row)` 雛型帳票に対する、実際の行番号を求めます。
    `protected String` | `getValue(String key)` 指定のキーについて、その値を取得します。
    `protected void` | `initReader()` BufferedReader を、初期化します。
    `protected void` | `initWriter()` PrintWriter を、初期化します。
    `protected abstract void` | `println(String line)` 入力文字列 を読み取って、出力します。
    `protected abstract String` | `readLine()` 入力文字列 を読み取って、出力します。
    `void` | `setDBTableModel(DBTableModel table)` DBTableModel をセットします。
    `void` | `setFirstTemplateFile(File inFile)` 最初のページのみに使用する雛型ファイル名をセットします。
    `void` | `setFooterKeys(String[] fKeys)` 繰り返し部の終了後に表示する key 部分を指定します。
    `void` | `setFooterVals(String[] fVals)` 固定部のkey に対応する値を指定します。
    `protected void` | `setHeaderFooter()` ヘッダーフッターのレンデラーデータを設定します。
    `void` | `setHeaderKeys(String[] hKeys)` 固定部の key 部分を指定します。
    `void` | `setHeaderVals(String[] hVals)` 固定部のkey に対応する値を指定します。
    `void` | `setListId(String listId)` 帳票ＩＤ をセットします。
    `void` | `setOutputDir(String outDir)` 変換後ファイルを出力するディレクトリ名をセットします。
    `void` | `setOutputFileKey(String outFile)` 変換後ファイルキーをセットします。
    `void` | `setPageEndCut(boolean pageEndCut)` ボディー部(繰り返し部)がなくなったときに、それ以降を表示するかどうかを指定します。
    `void` | `setResourceManager(ResourceManager resource)` リソースマネージャーをセットします。
    `void` | `setTemplateFile(File inFile)` 雛型ファイル名をセットします。
    `void` | `setYkno(String ykno)` 帳票起動された要求番号をセットします。
    `void` | `writeReport()` DBTableModel から データを作成して,PrintWriter に書き出します。

    - ### クラスから継承されたメソッド java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### フィールドの詳細

    - #### headerKeys

          protected String[] headerKeys

    - #### headerVals

          protected String[] headerVals

    - #### footerKeys

          protected String[] footerKeys

    - #### footerVals

          protected String[] footerVals

    - #### pageEndCut

          protected boolean pageEndCut

    - #### maxRowCount

          protected int maxRowCount

    - #### pageRowCount

          protected int pageRowCount

    - #### lineCopyCnt

          protected int lineCopyCnt

    - #### resource

          protected ResourceManager resource

    - #### writer

          protected PrintWriter writer

    - #### reader

          protected BufferedReader reader

    - #### templateFile

          protected File templateFile

    - #### firstTemplateFile

          protected File firstTemplateFile

    - #### htmlDir

          protected String htmlDir

    - #### htmlFileKey

          protected String htmlFileKey

    - #### ykno

          protected String ykno

    - #### table

          protected DBTableModel table

    - #### pageCount

          protected int pageCount

    - #### maxPageCount

          protected int maxPageCount

    - #### rowOver

          protected boolean rowOver

    - #### dataOver

          protected boolean dataOver

    - #### listId

          protected String listId

  - ### コンストラクタの詳細

    - #### AbstractDBTableReport

          protected AbstractDBTableReport()

      デフォルトコンストラクター
      変更履歴:

        6.4.2.0 (2016/01/29) PMD refactoring. Each class should declare at least one constructor.

  - ### メソッドの詳細

    - #### writeReport

          public void writeReport()

      DBTableModel から データを作成して,PrintWriter に書き出します。
      定義:
        `writeReport` インタフェース内 `DBTableReport`

    - #### readLine

          protected abstract String readLine()

      入力文字列 を読み取って、出力します。 tr タグを目印に、１行(trタグ間)ずつ取り出します。 読み取りを終了する場合は、null を返します。 各サブクラスで実装してください。
      戻り値:
        出力文字列

    - #### changeData

          protected abstract String changeData(String inLine)

      入力文字列 を加工して、出力します。 {@XXXX} をテーブルモデルより読み取り、値をセットします。 各サブクラスで実装してください。
      パラメータ:
        `inLine` - 入力文字列
      戻り値:
        出力文字列

    - #### println

          protected abstract void println(String line)

      入力文字列 を読み取って、出力します。 各サブクラスで実装してください。
      パラメータ:
        `line` - 出力文字列

    - #### setResourceManager

          public void setResourceManager(ResourceManager resource)

      リソースマネージャーをセットします。 これは、言語(ロケール)に応じた DBColumn をあらかじめ設定しておく為に 必要です。 リソースマネージャーが設定されていない、または、所定のキーの DBColumn が リソースに存在しない場合は、内部で DBColumn オブジェクトを作成します。
      定義:
        `setResourceManager` インタフェース内 `DBTableReport`
      パラメータ:
        `resource` - リソースマネージャー
      変更履歴:

        4.0.0.0 (2005/01/31) lang ⇒ ResourceManager へ変更

    - #### setListId

          public void setListId(String listId)

      帳票ＩＤ をセットします。 この帳票ＩＤを利用して、画像ファイル等のセーブディレクトリを求めます。
      定義:
        `setListId` インタフェース内 `DBTableReport`
      パラメータ:
        `listId` - 帳票ＩＤ
      変更履歴:

        3.6.1.0 (2005/01/05) 新規作成

    - #### setDBTableModel

          public void setDBTableModel(DBTableModel table)

      DBTableModel をセットします。
      定義:
        `setDBTableModel` インタフェース内 `DBTableReport`
      パラメータ:
        `table` - DBTableModelオブジェクト
      変更履歴:

        3.7.0.1 (2005/01/31) ページブレイク時の処理

    - #### setTemplateFile

          public void setTemplateFile(File inFile)

      雛型ファイル名をセットします。
      定義:
        `setTemplateFile` インタフェース内 `DBTableReport`
      パラメータ:
        `inFile` - 雛型ファイル名
      変更履歴:

        3.6.0.0 (2004/09/17) メソッド名の変更。setInputFile ⇒ setTemplateFile
        3.8.0.0 (2005/06/07) 引数を String ⇒ File に変更

    - #### setFirstTemplateFile

          public void setFirstTemplateFile(File inFile)

      最初のページのみに使用する雛型ファイル名をセットします。
      定義:
        `setFirstTemplateFile` インタフェース内 `DBTableReport`
      パラメータ:
        `inFile` - 最初のページの雛型ファイル名
      変更履歴:

        3.6.0.0 (2004/09/17) 新規追加
        3.8.0.0 (2005/06/07) 引数を String ⇒ File に変更

    - #### setOutputDir

          public void setOutputDir(String outDir)

      変換後ファイルを出力するディレクトリ名をセットします。 ディレクトリが存在しない場合は、新規に作成します。
      定義:
        `setOutputDir` インタフェース内 `DBTableReport`
      パラメータ:
        `outDir` - 出力ディレクトリ
      変更履歴:

        3.7.1.1 (2005/05/23) フォルダがない場合は、複数階層分のフォルダを自動で作成します。

    - #### setOutputFileKey

          public void setOutputFileKey(String outFile)

      変換後ファイルキーをセットします。 キーとは、拡張子の無い状態までのファイル名です。 変換後ファイルは、複数発生します。 実際に出力されるファイル名は、outFile + "_連番.html" となります。
      定義:
        `setOutputFileKey` インタフェース内 `DBTableReport`
      パラメータ:
        `outFile` - 出力ファイル名の共通部

    - #### setYkno

          public void setYkno(String ykno)

      帳票起動された要求番号をセットします。
      定義:
        `setYkno` インタフェース内 `DBTableReport`
      パラメータ:
        `ykno` - 要求番号
      変更履歴:

        3.8.5.1 (2006/04/28) 新規追加

    - #### setHeaderKeys

          public void setHeaderKeys(String[] hKeys)

      固定部の key 部分を指定します。 カンマで複数指定できます。
      定義:
        `setHeaderKeys` インタフェース内 `DBTableReport`
      パラメータ:
        `hKeys` - 固定部のキー配列(可変長引数)
      変更履歴:

        3.5.6.0 (2004/06/18) 配列の設定は、arraycopy して取り込みます。

    - #### setHeaderVals

          public void setHeaderVals(String[] hVals)

      固定部のkey に対応する値を指定します。 カンマで複数指定で、リクエスト情報でも設定できます。
      定義:
        `setHeaderVals` インタフェース内 `DBTableReport`
      パラメータ:
        `hVals` - 固定部の値配列(可変長引数)
      変更履歴:

        3.5.6.0 (2004/06/18) 配列の設定は、arraycopy して取り込みます。

    - #### getRealRow

          protected int getRealRow(int row)

      雛型帳票に対する、実際の行番号を求めます。 これは、雛型の複数回読みをサポートする為、実際の雛型のrow番号と DBTableModel から取得すべき row番号が、異なる為です。 オーバーフロー時は、Exception を避ける為、-1 を返します。
      パラメータ:
        `row` - 固定部の値(オーバーフロー時は、-1 )
      戻り値:
        実際の行番号
      変更履歴:

        3.5.6.0 (2004/06/18) noDataflag の追加。
        3.5.6.3 (2004/07/12) noDataflag の廃止。
        3.6.0.4 (2004/10/14) FIRST 雛型時の対応追加。
        3.7.0.1 (2005/01/31) ページブレイク処理に対応。
        3.8.1.2 (2005/12/19) PAGE_END_CUT用にdataOverフラグを追加

    - #### getValue

          protected String getValue(String key)

      指定のキーについて、その値を取得します。 値の取得方法として、 　　{@xxx_no} 形式の場合は、DBTableModel から、 　　{@XXXX} 形式で、かつ、rowOver が false の場合は、ヘッダーから、 　　{@XXXX} 形式で、かつ、rowOver が true の場合は、フッターから、 取得します。 rowOver は、{@xxx_no} 形式の番号欄(no)が、DBTableModel のデータ件数よりも 大きい場合に、セットされます。
      パラメータ:
        `key` - 指定のキー
      戻り値:
        指定のキーの値
      変更履歴:

        3.5.6.0 (2004/06/18) noDataflag の追加。
        3.5.6.3 (2004/07/12) noDataflag の廃止。
        3.6.0.0 (2004/09/24) フォーマットエラーの判定(formatErr)を、子クラスから移動します。
        3.7.0.1 (2005/01/31) ページブレイク時の処理追加。
        3.7.0.2 (2005/02/18) HTML のエスケープ文字対応
        3.7.1.1 (2005/05/09) セル内の改行 は、エスケープしない。
        3.8.0.0 (2005/06/07) Shift-JIS で中国語を扱う。(Unicodeエスケープ文字は、エスケープしない)
        3.8.5.1 (2006/04/28) YKNO を特別扱いする。
        6.1.1.0 (2015/01/17) getRendererValue の代わりに、getWriteValue を使うように変更。
        6.3.9.0 (2015/11/06) コンストラクタで初期化されていないフィールドを null チェックなしで利用している(findbugs)

      このメソッドは、nullを返しません

    - #### setFooterKeys

          public void setFooterKeys(String[] fKeys)

      繰り返し部の終了後に表示する key 部分を指定します。 カンマで複数指定できます。
      定義:
        `setFooterKeys` インタフェース内 `DBTableReport`
      パラメータ:
        `fKeys` - 繰り返し部の終了後に表示するキー配列(可変長引数)
      変更履歴:

        3.5.6.0 (2004/06/18) 配列の設定は、arraycopy して取り込みます。

    - #### setFooterVals

          public void setFooterVals(String[] fVals)

      固定部のkey に対応する値を指定します。 カンマで複数指定で、リクエスト情報でも設定できます。
      定義:
        `setFooterVals` インタフェース内 `DBTableReport`
      パラメータ:
        `fVals` - 繰り返し部の終了後に表示する値配列(可変長引数)
      変更履歴:

        3.5.6.0 (2004/06/18) 配列の設定は、arraycopy して取り込みます。

    - #### setPageEndCut

          public void setPageEndCut(boolean pageEndCut)

      ボディー部(繰り返し部)がなくなったときに、それ以降を表示するかどうかを指定します。 true では、それ以降を出力しません。 デフォルト "true" (なくなった時点で、出力しない。)です。
      定義:
        `setPageEndCut` インタフェース内 `DBTableReport`
      パラメータ:
        `pageEndCut` - 繰り返し部の終了後に継続処理するかどうか (true:処理しない/false:処理する)

    - #### initReader

          protected void initReader()

      BufferedReader を、初期化します。 これは、雛型ファイルの終端まで読取り、処理した場合、もう一度 初めから読み込みなおす処理を行います。 基本的に、書き込みも初期化する必要があります。 メモリ上に読み込んで、繰り返し利用するかどうかは、実装依存です。
      変更履歴:

        3.1.3.0 (2003/04/10) "DEFAULT" エンコーディング名のサポートを廃止。
        3.5.5.9 (2004/06/07) FileUtil.getBufferedReader を使用
        3.6.0.0 (2004/09/17) 最初のページのみに使用する雛型ファイル名を追加します。
        3.6.0.0 (2004/09/24) フォーマットエラーの判定(formatErr)を、子クラスから移動します。

    - #### initWriter

          protected void initWriter()

      PrintWriter を、初期化します。 これは、雛型ファイルを終端まで読取り、処理した場合、出力ファイル名を 変えて、別ファイルとして出力する為のものです。 基本的に、読取も初期化する必要があります。 メモリ上に読み込んで、繰り返し利用するかどうかは、実装依存です。
      変更履歴:

        3.0.0.1 (2003/02/14) ページの最大ページ数の制限を追加。暴走停止用
        3.1.3.0 (2003/04/10) "DEFAULT" エンコーディング名のサポートを廃止。
        3.5.5.9 (2004/06/07) FileUtil.getPrintWriter メソッドを使用
        3.7.0.1 (2005/01/31) ページブレイク処理に対応。
        3.8.0.0 (2005/06/07) FileUtil#getPrintWriter を利用。
        3.8.5.3 (2006/06/30) EXCEL最大シート数のエラーメッセージを変更。

    - #### setHeaderFooter

          protected void setHeaderFooter()

      ヘッダーフッターのレンデラーデータを設定します。 カンマで複数指定で、リクエスト情報でも設定できます。
      変更履歴:

        6.1.1.0 (2015/01/17) getRendererValue の代わりに、getWriteValue を使うように変更。
        6.3.9.0 (2015/11/06) コンストラクタで初期化されていないフィールドを null チェックなしで利用している(findbugs)

Webアプリケーションフレームワーク openGion
Copyright (c) 2009 The openGion Project.