org.opengion.hayabusa.taglib

## クラス TableMergeTag

- java.lang.Object
- - javax.servlet.jsp.tagext.TagSupport
  - - javax.servlet.jsp.tagext.BodyTagSupport
    - - org.opengion.hayabusa.taglib.CommonTagSupport
      - - org.opengion.hayabusa.taglib.TableMergeTag

- すべての実装されたインタフェース:
    Serializable, BodyTag, IterationTag, JspTag, Tag, TryCatchFinally

      public class TableMergeTag
      extends CommonTagSupport

  ２つの DBTableModel の 集合処理を行うタグです。 マスタとスレーブのそれぞれの DBTableModel を取得し、マージ、差分、排他などの データ処理を行います。結果を、指定の tableId と scope に書き出します。 マスタテーブルは、masterTableId と masterScope より取り出します。スレーブテーブルは、 slaveTableId と slaveScope より取り出します。 取り出された DBTableModel は、マスタテーブルに対して、スレーブテーブル情報を参照する形で行われ、 結果はマスタテーブルに上書きされる形で行われます。 指定できるアクションは、全体集合(UNION_ALL)、和集合(UNION)、積集合(INTERSECT)、 差集合(MINUS)、差分集合(DIFFERENCE)、列合成(UNION_CLM)、 列追加(ADD_CLM)、 グループ(GROUP)です。 列合成と列追加、グループ以外の処理では、カラム順とカラム数は同数でなければなりません。 primaryKeys や unionClms などの指定のキー名は、マスタテーブルに存在する必要があります。 マスタテーブルと同じカラム番号でスレーブテーブルよりデータを読み出します。 (カラム名や属性は、異なってもかまいませんが、マスタテーブルに準拠します。) また、単独(マスタテーブルのみ)で、和集合と同等の、グループ(GROUP)を使用すると、指定の カラムでのユニーク化を行うことが可能になります。グループ処理では、先行優先とし、 ２回目に現れた情報を削除することになります。グループ が指定された場合は、 スレーブテーブルは無視されます。いずれの処理においても、集合処理を行う主キーで 一旦グループ化されます。全体集合(UNION_ALL)で処理する場合でも、主キーがユニークで ない場合は、マスター、スレーブの各テーブルで一旦グループ化された後で、マージされます。 (マージ後には、同一主キーを持つ行は存在します。) 全体集合(UNION_ALL)の場合のみ、mergeKeys を指定する必要はありません。その場合は、 キーなしのため、マスターとスレーブのテーブルを単に合成するだけになります。 処理前後でのDBTableModelの件数は、以下の変数で取得することが可能です。 処理前のマスターテーブル : {@DB.MASTER_COUNT} 処理前のスレーブテーブル : {@DB.SLAVE_COUNT} 処理後 : {@DB.COUNT}
  関連項目:
    直列化された形式
  形式サンプル:

         ●形式：
               ・<og:tableMerge
                     action        = "UNION_ALL|UNION|INTERSECT|MINUS|DIFFERENCE|UNION_CLM|ADD_CLM|GROUP|UNION_SELROW"
                     tableId       = "DEFAULT"        出力テーブルの tableId
                     scope         = "session"        出力テーブルの scope
                     masterTableId = "DEFAULT"        マスタテーブルの tableId
                     masterScope   = "session"        マスタテーブルの scope
                     slaveTableId  = "DEFAULT"        スレーブテーブルの tableId
                     slaveScope    = "request"        スレーブテーブルの scope
                     masterKeys    = "AA,BB,CC"       マスタテーブルの集合処理を行う主キー
                     slaveKeys     = "AA,BB,CC"       スレーブテーブルの集合処理を行う主キー(null時=masterKeys)
                     diffKeys      = "DD,EE"          マスタテーブルのDIFFERENCE時の差分カラム名
                     unionClms     = "DD,EE"          UNION_CLM,ADD_CLM時にスレーブからマスタへ追加するカラム名
                     modifyClms    = "FF,GG"          DIFFERENCE時にスレーブからマスタへ値を更新するカラム名
                     noSideEffect  = "false"          テーブルモデルに対する副作用(true:ない/false:ある)
                     useDiffData   = "true"           DIFFERENCE時に差分のスレーブデータを追加するかどうか
                     useCheckOnly  = "false"          マスタテーブルの選択行のデータのみを対象に処理を行うかどうか
                     groupAddClms  = "FF,GG"          masterKeysで集合処理するときに、相違データをCSV連結して残すカラム名
                     display       = "true"           処理概要を表示するかどうか
                 />
         ●body：なし

         ●Tag定義：
           <og:tableMerge
               command            【TAG】コマンド(NEW,RENEW)をセットします(初期値:NEW)
               action             【TAG】アクションを指定します(UNION_ALL|UNION|INTERSECT|MINUS|DIFFERENCE|UNION_CLM|ADD_CLM|GROUP|UNION_SELROW)
               tableId            【TAG】出力先のtableIdを指定します (初期値:HybsSystem#TBL_MDL_KEY[=h_tblmdl])
               scope              【TAG】出力先のscopeを指定します(初期値:session)
               masterTableId      【TAG】マスタテーブルのtableIdを指定します (初期値:HybsSystem#TBL_MDL_KEY[=h_tblmdl])
               masterScope        【TAG】マスタテーブルのscopeを指定します(初期値:session)
               slaveTableId       【TAG】スレーブテーブルのtableIdを指定します (初期値:HybsSystem#TBL_MDL_KEY[=h_tblmdl])
               slaveScope         【TAG】スレーブテーブルのscopeを指定します(初期値:session)
               masterKeys         【TAG】マスタテーブルの集合処理を行う主キーを指定します
               slaveKeys          【TAG】スレーブテーブルの集合処理を行う主キーを指定します
               diffKeys           【TAG】マスタテーブルのDIFFERENCE時の差分カラム名を(CSV形式)指定します
               unionClms          【TAG】スレーブからマスタへ追加するカラム名をCSV形式で指定します
               modifyClms         【TAG】スレーブからマスタへ値を更新するカラム名をCSV形式で指定します
               groupAddClms       【TAG】集合処理するときに、相違データをCSV連結して残すカラム名をCSV形式で指定します
               noSideEffect       【TAG】テーブルモデルに対する副作用の有無[true:ない/false:ある]を指定します(初期値:false:ある)
               useDiffData        【TAG】差分のスレーブデータを結果テーブルに追加するかどうかを指定します(初期値:true)
               useCheckOnly       【TAG】マスタテーブルの選択行のデータのみを対象に処理を行うかどうかを指定します(初期値:false)
               stopZero           【TAG】検索結果が０件のとき処理を続行するかどうか[true/false]を指定します(初期値:false[続行する])
               display            【TAG】マージの結果を表示するかどうかを指定します(初期値:true)
               mainTrans          【TAG】(通常使いません)タグで処理される処理がメインとなるトランザクション処理かどうかを指定します(初期値:false)
               caseKey            【TAG】このタグ自体を利用するかどうかの条件キーを指定します(初期値:null)
               caseVal            【TAG】このタグ自体を利用するかどうかの条件値を指定します(初期値:null)
               caseNN             【TAG】指定の値が、null/ゼロ文字列 でない場合(Not Null=NN)は、このタグは使用されます(初期値:true)
               caseNull           【TAG】指定の値が、null/ゼロ文字列 の場合は、このタグは使用されます(初期値:true)
               separator          【TAG】groupAddClmsで文字列を連結する項目区切り文字をセットします(初期値:",")
               debug              【TAG】デバッグ情報を出力するかどうか[true/false]を指定します(初期値:false)
           />

         ●使用例
             例１)デフォルト以外に必要な属性のみ指定するサンプル
             <og:tableMerge action="UNION"
                   slaveScope = "request" masterKeys = "AA,BB,CC"
             />

                 ・出力先、マスターともに初期値は、tableId="DEFAULT" scope="session" です。
                   スレーブは、tableId か scope をける必要がある為、scope="request" を指定しています。
                   比較するカラム名は、マスタ、スレーブ同じであれば、マスタのみ指定でかまいません。

             例２)マスタ、スレーブともメモリに残らないように request で作成します。
             <og:tableMerge action="INTERSECT"
                   masterScope  = "request"
                   slaveScope   = "request"
                   slaveTableId = "SLAVE"
                   masterKeys   = "AA,BB,CC"
             />

                 ・マスタ、スレーブともメモリに残らないように request で作成した場合は、
                   どちらかの TableId を変える必要があります。
                   出力先は初期値の、tableId="DEFAULT" scope="session" です。

  変更履歴:

    3.8.0.9 (2005/10/17) 新規追加

  機能分類
    ＤＢ登録
  バージョン
    0.9.0 2000/10/17
  作成者
    Kazuhiko Hasegawa
  導入されたバージョン:
    JDK5.0,

- - ### フィールドの概要

    フィールド
    修飾子とタイプ | フィールドと説明
    --- | ---
    `static String` | `ACT_ADD_CLM` action 引数に渡す事の出来る アクションコマンド 列合成"ADD_CLM"
    `static String` | `ACT_DIFFERENCE` action 引数に渡す事の出来る アクションコマンド 差分集合"DIFFERENCE"
    `static String` | `ACT_GROUP` action 引数に渡す事の出来る アクションコマンド グループ "GROUP"
    `static String` | `ACT_INTERSECT` action 引数に渡す事の出来る アクションコマンド 積集合 "INTERSECT"
    `static String` | `ACT_MINUS` action 引数に渡す事の出来る アクションコマンド 差集合"MINUS"
    `static String` | `ACT_UNION` action 引数に渡す事の出来る アクションコマンド 和集合 "UNION"
    `static String` | `ACT_UNION_ALL` action 引数に渡す事の出来る アクションコマンド 全体集合 "UNION_ALL"
    `static String` | `ACT_UNION_CLM` action 引数に渡す事の出来る アクションコマンド 列合成"UNION_CLM"
    `static String` | `ACT_UNION_SELROW` action 引数に渡す事の出来る アクションコマンド グループ "UNION_SELROW"
    `static String` | `CMD_NEW` command 引数に渡す事の出来る コマンド 新規 "NEW"
    `static String` | `CMD_RENEW` command 引数に渡す事の出来る コマンド 再検索 "RENEW"

    - ### クラスから継承されたフィールド javax.servlet.jsp.tagext.BodyTagSupport

      `bodyContent`

    - ### クラスから継承されたフィールド javax.servlet.jsp.tagext.TagSupport

      `id, pageContext`

    - ### インタフェースから継承されたフィールド javax.servlet.jsp.tagext.BodyTag

      `EVAL_BODY_BUFFERED, EVAL_BODY_TAG`

    - ### インタフェースから継承されたフィールド javax.servlet.jsp.tagext.IterationTag

      `EVAL_BODY_AGAIN`

    - ### インタフェースから継承されたフィールド javax.servlet.jsp.tagext.Tag

      `EVAL_BODY_INCLUDE, EVAL_PAGE, SKIP_BODY, SKIP_PAGE`

  - ### コンストラクタの概要

    コンストラクタ
    コンストラクタと説明
    `TableMergeTag()`

  - ### メソッドの概要

    メソッド
    修飾子とタイプ | メソッドと説明
    --- | ---
    `int` | `doEndTag()` Taglibの終了タグが見つかったときに処理する doEndTag() を オーバーライドします。
    `protected void` | `release2()` タグリブオブジェクトをリリースします。
    `void` | `setAction(String action)` 【TAG】アクションを指定します(UNION_ALL|UNION|INTERSECT|MINUS|DIFFERENCE|UNION_CLM|ADD_CLM|GROUP|UNION_SELROW)。
    `void` | `setCommand(String cmd)` 【TAG】コマンド(NEW,RENEW)をセットします(初期値:NEW)。
    `void` | `setDiffKeys(String diffKeys)` 【TAG】マスタテーブルのDIFFERENCE時の差分カラム名を(CSV形式)指定します。
    `void` | `setDisplay(String flag)` 【TAG】マージの結果を表示するかどうかを指定します(初期値:true)。
    `void` | `setGroupAddClms(String groupAddClms)` 【TAG】集合処理するときに、相違データをCSV連結して残すカラム名をCSV形式で指定します。
    `void` | `setMainTrans(String flag)` 【TAG】(通常使いません)タグで処理される処理がメインとなるトランザクション処理かどうかを指定します(初期値:false)。
    `void` | `setMasterKeys(String masterKeys)` 【TAG】マスタテーブルの集合処理を行う主キーを指定します。
    `void` | `setMasterScope(String masterScope)` 【TAG】マスタテーブルのscopeを指定します(初期値:session)。
    `void` | `setMasterTableId(String masterTableId)` 【TAG】マスタテーブルのtableIdを指定します (初期値:HybsSystem#TBL_MDL_KEY[=h_tblmdl])。
    `void` | `setModifyClms(String modifyClms)` 【TAG】スレーブからマスタへ値を更新するカラム名をCSV形式で指定します。
    `void` | `setNoSideEffect(String noSideEffect)` 【TAG】テーブルモデルに対する副作用の有無[true:ない/false:ある]を指定します(初期値:false:ある)。
    `void` | `setScope(String scope)` 【TAG】出力先のscopeを指定します(初期値:session)。
    `void` | `setSeparator(String sepa)` 【TAG】groupAddClmsで文字列を連結する項目区切り文字をセットします(初期値:",")。
    `void` | `setSlaveKeys(String slaveKeys)` 【TAG】スレーブテーブルの集合処理を行う主キーを指定します。
    `void` | `setSlaveScope(String slaveScope)` 【TAG】スレーブテーブルのscopeを指定します(初期値:session)。
    `void` | `setSlaveTableId(String slaveTableId)` 【TAG】スレーブテーブルのtableIdを指定します (初期値:HybsSystem#TBL_MDL_KEY[=h_tblmdl])。
    `void` | `setStopZero(String cmd)` 【TAG】検索結果が０件のとき処理を続行するかどうか[true/false]を指定します(初期値:false[続行する])。
    `void` | `setTableId(String tableId)` 【TAG】出力先のtableIdを指定します (初期値:HybsSystem#TBL_MDL_KEY[=h_tblmdl])。
    `void` | `setUnionClms(String unionClms)` 【TAG】スレーブからマスタへ追加するカラム名をCSV形式で指定します。
    `void` | `setUseCheckOnly(String flag)` 【TAG】マスタテーブルの選択行のデータのみを対象に処理を行うかどうかを指定します(初期値:false)。
    `void` | `setUseDiffData(String flag)` 【TAG】差分のスレーブデータを結果テーブルに追加するかどうかを指定します(初期値:true)。
    `String` | `toString()` このオブジェクトの文字列表現を返します。

    - ### クラスから継承されたメソッド org.opengion.hayabusa.taglib.CommonTagSupport

      `add, add, addEventColumn, addEventColumn, check, check, commitTableObject, debugPrint, doAfterBody, doCatch, doFinally, doStartTag, get, getApplicationInfo, getAttributes, getBodyRawString, getBodyString, getContextAttribute, getContextPath, getCookie, getCSVParameter, getDataCondition, getDateFormat, getDBColumn, getDBFunctionName, getDocumentLink, getGUIInfo, getGUIInfoAttri, getHostName, getLabel, getLabelInterface, getLanguage, getLASTAttri, getLongLabel, getMsglbl, getNVLAttri, getObject, getParameterNames, getParameterRows, getRequest, getRequestAttribute, getRequestCacheData, getRequestParameter, getRequestParameterValues, getRequestValue, getRequestValue, getRequestValues, getReservedParameter, getReservedValue, getResource, getSanitizedBodyString, getScope, getSessionAttribute, getTagName, getUser, getUserEditInfo, getUserInfo, isAjaxSubmitRequest, isDebug, isNoTransitionRequest, isNull, jspPrint, removeContextAttribute, removeObject, removeRequestAttribute, removeSessionAttribute, set, setAjaxSubmitRequest, setCaseKey, setCaseNN, setCaseNull, setCaseVal, setContextAttribute, setCookie, setDebug, setLanguage, setLbl, setNoTransitionRequest, setObject, setObject, setParameterNames, setParameterRows, setRequestAttribute, setRequestCacheData, setSessionAttribute, setUserInfo, startQueryTransaction, sys, sysBool, sysInt, useMainTrans, useQuotCheck, useTag, useXssCheck`

    - ### クラスから継承されたメソッド javax.servlet.jsp.tagext.BodyTagSupport

      `doInitBody, getBodyContent, getPreviousOut, release, setBodyContent`

    - ### クラスから継承されたメソッド javax.servlet.jsp.tagext.TagSupport

      `findAncestorWithClass, getId, getParent, getValue, getValues, removeValue, setId, setPageContext, setParent, setValue`

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

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

    - ### インタフェースから継承されたメソッド javax.servlet.jsp.tagext.Tag

      `getParent, setPageContext, setParent`

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

    - #### ACT_UNION_ALL

          public static final String ACT_UNION_ALL

      action 引数に渡す事の出来る アクションコマンド 全体集合 "UNION_ALL"
      関連項目:
        定数フィールド値

    - #### ACT_UNION

          public static final String ACT_UNION

      action 引数に渡す事の出来る アクションコマンド 和集合 "UNION"
      関連項目:
        定数フィールド値

    - #### ACT_INTERSECT

          public static final String ACT_INTERSECT

      action 引数に渡す事の出来る アクションコマンド 積集合 "INTERSECT"
      関連項目:
        定数フィールド値

    - #### ACT_MINUS

          public static final String ACT_MINUS

      action 引数に渡す事の出来る アクションコマンド 差集合"MINUS"
      関連項目:
        定数フィールド値

    - #### ACT_DIFFERENCE

          public static final String ACT_DIFFERENCE

      action 引数に渡す事の出来る アクションコマンド 差分集合"DIFFERENCE"
      関連項目:
        定数フィールド値

    - #### ACT_UNION_CLM

          public static final String ACT_UNION_CLM

      action 引数に渡す事の出来る アクションコマンド 列合成"UNION_CLM"
      関連項目:
        定数フィールド値

    - #### ACT_ADD_CLM

          public static final String ACT_ADD_CLM

      action 引数に渡す事の出来る アクションコマンド 列合成"ADD_CLM"
      関連項目:
        定数フィールド値

    - #### ACT_GROUP

          public static final String ACT_GROUP

      action 引数に渡す事の出来る アクションコマンド グループ "GROUP"
      関連項目:
        定数フィールド値

    - #### ACT_UNION_SELROW

          public static final String ACT_UNION_SELROW

      action 引数に渡す事の出来る アクションコマンド グループ "UNION_SELROW"
      関連項目:
        定数フィールド値

    - #### CMD_NEW

          public static final String CMD_NEW

      command 引数に渡す事の出来る コマンド 新規 "NEW"
      関連項目:
        定数フィールド値

    - #### CMD_RENEW

          public static final String CMD_RENEW

      command 引数に渡す事の出来る コマンド 再検索 "RENEW"
      関連項目:
        定数フィールド値

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

    - #### TableMergeTag

          public TableMergeTag()

  - ### メソッドの詳細

    - #### doEndTag

          public int doEndTag()

      Taglibの終了タグが見つかったときに処理する doEndTag() を オーバーライドします。
      定義:
        `doEndTag` インタフェース内 `Tag`
      オーバーライド:
        `doEndTag` クラス内 `CommonTagSupport`
      戻り値:
        後続処理の指示
      変更履歴:

        4.3.2.0 (2008/09/11) UNION_SELROWアクション対応
        4.3.3.0 (2008/10/01) 処理前後のテーブル件数を取得できるようにする
        4.3.3.1 (2008/10/08) スレーブのnullチェック追加
        5.1.6.0 (2010/05/01) DBLastSqlの処理は、DBTableModelが新規作成された処理でのみ行う。
        5.2.2.0 (2010/11/01) caseKey 、caseVal 属性対応
        5.7.6.2 (2014/05/16) stopZero属性、DB.COUNT キーで検索件数をリクエストにセットする。

    - #### release2

          protected void release2()

      タグリブオブジェクトをリリースします。 キャッシュされて再利用されるので、フィールドの初期設定を行います。
      オーバーライド:
        `release2` クラス内 `CommonTagSupport`
      変更履歴:

        5.1.4.0 (2010/03/01) groupAddClms 追加
        5.1.6.0 (2010/05/01) DBLastSqlの処理は、DBTableModelが新規作成された処理でのみ行う。
        5.3.1.0 (2011/01/01) separator追加
        5.7.6.2 (2014/05/16) stopZero属性追加

    - #### setCommand

          public void setCommand(String cmd)

      【TAG】コマンド(NEW,RENEW)をセットします(初期値:NEW)。
      パラメータ:
        `cmd` - コマンド(public static final 宣言されている文字列)
      関連項目:
        コマンド定数
      説明:

             コマンドは,HTMLから(get/post)指定されますので,CMD_xxx で設定される
             フィールド定数値のいづれかを、指定できます。
             初期値は NEW です。

    - #### setAction

          public void setAction(String action)

      【TAG】アクションを指定します(UNION_ALL|UNION|INTERSECT|MINUS|DIFFERENCE|UNION_CLM|ADD_CLM|GROUP|UNION_SELROW)。
      パラメータ:
        `action` - アクション(UNION_ALL|UNION|INTERSECT|MINUS|DIFFERENCE|UNION_CLM|ADD_CLM|GROUP|UNION_SELROW)
      説明:

             指定できるアクションは、全体集合(UNION_ALL)、全体集合(挿入位置指定)(UNION_SELROW)、和集合(UNION)
             、積集合(INTERSECT)、差集合(MINUS)、差分集合(DIFFERENCE)、列合成(UNION_CLM)、列追加(ADD_CLM)、 グループ(GROUP)です。
             列合成とグループ以外の処理では、カラム順とカラム数は同数でなければなりません。
             primaryKeys や unionClms などの指定のキー名は、マスタテーブルに存在する必要があります。
             マスタテーブルと同じカラム番号でスレーブテーブルよりデータを読み出します。
             (カラム名や属性は、異なってもかまいませんが、マスタテーブルに準拠します。)
             また、単独(マスタテーブルのみ)で、和集合と同等の、グループ(GROUP)を使用すると、指定の
             カラムでのユニーク化を行うことが可能になります。グループ処理では、先行優先とし、
             ２回目に現れた情報を削除することになります。グループ が指定された場合は、
             スレーブテーブルは無視されます。いずれの処理においても、集合処理を行う主キーで
             一旦グループ化されます。全体集合(UNION_ALL)で処理する場合でも、主キーがユニークで
             ない場合は、マスター、スレーブの各テーブルで一旦グループ化された後で、マージされます。
             (マージ後には、同一主キーを持つ行は存在します。)
             全体集合(UNION_ALL)の場合のみ、mergeKeys を指定する必要はありません。その場合は、
             キーなしのため、マスターとスレーブのテーブルを単に合成するだけになります。

               アクションの説明
               action      名称    処理概要												１２３４
               UNION_ALL   全体集合マスタとスレーブを合成
               UNION_SELROW全体集合マスタとスレーブを合成(マスタ表のチェック行を起点に追加○
               UNION       和集合  マスタとスレーブのユニーク部のみ合成					○○
               INTERSECT   積集合  マスタとスレーブのユニーク部が一致するマスタのみ選択	○○
               MINUS       差集合  マスタからスレーブに存在するユニーク部を削除した残り	○○
               DIFFERENCE  差分集合ユニーク部が一致し、差分カラムが異なるマスタのみ選択	○○　○
               UNION_CLM   列合成  マスタとキー一致するスレーブのカラム情報を追加		○○○
               ADD_CLM     列追加  UNION_CLMとの違いは、カラムのみ追加することです。	　　○
               GROUP       グループマスタのユニーク部化

             ※：マスタテーブルオブジェクトは、常に必須
             １：スレーブテーブルオブジェクト必須
             ２：masterKeys 属性必須
             ３：unionClms 属性必須(スレーブテーブルのカラム名または追加するカラム名)
             ４：diffKeys 属性必須(DIFFERENCE時の差分カラム名)、modifyClms 属性使用可能

    - #### setTableId

          public void setTableId(String tableId)

      【TAG】出力先のtableIdを指定します (初期値:HybsSystem#TBL_MDL_KEY[=h_tblmdl])。
      パラメータ:
        `tableId` - 出力先のtableId
      関連項目:
        `HybsSystem.TBL_MDL_KEY`
      説明:

             集合処理結果の DBTableModel をメモリにセットする場合のキー(tableId)を指定します。
             (初期値:HybsSystem#TBL_MDL_KEY[={@og.value HybsSystem#TBL_MDL_KEY}])。

    - #### setScope

          public void setScope(String scope)

      【TAG】出力先のscopeを指定します(初期値:session)。
      オーバーライド:
        `setScope` クラス内 `CommonTagSupport`
      パラメータ:
        `scope` - 出力先のscope
      関連項目:
        `CommonTagSupport.getScope()`
      説明:

             集合処理結果の DBTableModel をメモリにセットする場合のスコープを指定します。
             ここでは、マスタやスレーブのスコープ設定が必要な為、superクラスのメソッドを
             オーバーライドしてこのオブジェクト内でキープしています。
             初期値は、session です。

    - #### setMasterTableId

          public void setMasterTableId(String masterTableId)

      【TAG】マスタテーブルのtableIdを指定します (初期値:HybsSystem#TBL_MDL_KEY[=h_tblmdl])。
      パラメータ:
        `masterTableId` - マスタテーブルのtableId
      関連項目:
        `HybsSystem.TBL_MDL_KEY`
      説明:

             集合処理のマスタとなる DBTableModel をメモリから取り出す場合のキー(tableId)を指定します。
             (初期値:HybsSystem#TBL_MDL_KEY[={@og.value HybsSystem#TBL_MDL_KEY}])。

    - #### setMasterScope

          public void setMasterScope(String masterScope)

      【TAG】マスタテーブルのscopeを指定します(初期値:session)。
      パラメータ:
        `masterScope` - マスタテーブルのscope
      説明:

             集合処理のマスタとなる DBTableModel をメモリから取り出す場合のスコープを指定します。
             初期値は、session です。

    - #### setMasterKeys

          public void setMasterKeys(String masterKeys)

      【TAG】マスタテーブルの集合処理を行う主キーを指定します。
      パラメータ:
        `masterKeys` - マスタテーブルの主キーをCSV形式で指定
      説明:

             集合処理を行う場合の、カラム名を、カンマ区切り文字(CSV形式)で指定します。
             このキーの組み合わせを元に、集合処理の突合せを行います。
             なお、アクションがグループ(GROUP)以外の処理では、マスタとスレーブのカラム数と
             並び順は、同じでなければなりません。カラム名は、各々別々でもかまいません。
             アクションが全体集合(UNION_ALL)以外の場合は、必須属性になります。

    - #### setSlaveKeys

          public void setSlaveKeys(String slaveKeys)

      【TAG】スレーブテーブルの集合処理を行う主キーを指定します。
      パラメータ:
        `slaveKeys` - スレーブテーブルの主キーをCSV形式で指定
      説明:

             集合処理を行う場合の、カラム名を、カンマ区切り文字(CSV形式)で指定します。
             このキーの組み合わせを元に、集合処理の突合せを行います。
             なお、アクションがグループ(GROUP)以外の処理では、マスタとスレーブのカラム数と
             並び順は、同じでなければなりません。カラム名は、各々別々でもかまいません。
             null の場合は、masterKeys と同じとします。

    - #### setDiffKeys

          public void setDiffKeys(String diffKeys)

      【TAG】マスタテーブルのDIFFERENCE時の差分カラム名を(CSV形式)指定します。
      パラメータ:
        `diffKeys` - マスタテーブルの差分カラム名をCSV形式で指定
      関連項目:
        `setMasterKeys( String )`
      説明:

             アクションが差分処理(DIFFERENCE)の場合に、差分チェックを行うカラム名を、
             カンマ区切り文字(CSV形式)で指定します。
             差分処理とは、masterKeys で指定されたキーでは、マスタ、スレーブともに存在し
             かつ、このキー(diffKeys)で指定されたキーの値が異なるマスタレコードを
             抜き出します。
             つまり、主キーは存在し、属性が異なる情報のピックアップになりますので、
             データ更新(UPDATE)対象を見つける場合に使用できます。
             アクションが差分処理(DIFFERENCE)の場合は、必須属性になります。

    - #### setSlaveTableId

          public void setSlaveTableId(String slaveTableId)

      【TAG】スレーブテーブルのtableIdを指定します (初期値:HybsSystem#TBL_MDL_KEY[=h_tblmdl])。
      パラメータ:
        `slaveTableId` - スレーブテーブルのtableId
      関連項目:
        `HybsSystem.TBL_MDL_KEY`
      説明:

             集合処理のスレーブとなる DBTableModel をメモリから取り出す場合のキー(tableId)を指定します。
             なお、アクションがグループ(GROUP)の場合は、スレーブテーブルは使用されません。
             (初期値:HybsSystem#TBL_MDL_KEY[={@og.value HybsSystem#TBL_MDL_KEY}])。

    - #### setSlaveScope

          public void setSlaveScope(String slaveScope)

      【TAG】スレーブテーブルのscopeを指定します(初期値:session)。
      パラメータ:
        `slaveScope` - スレーブテーブルのscope
      説明:

             集合処理のスレーブとなる DBTableModel をメモリから取り出す場合のスコープを指定します。
             なお、アクションがグループ(GROUP)の場合は、スレーブテーブルは使用されません。
             初期値は、session です。

    - #### setUnionClms

          public void setUnionClms(String unionClms)

      【TAG】スレーブからマスタへ追加するカラム名をCSV形式で指定します。
      パラメータ:
        `unionClms` - 列合成するカラム名をCSV形式で指定
      説明:

             アクションが列合成(UNION_CLM)または列追加(ADD_CLM)の場合に使用されます。
             列合成(UNION_CLM)は、マスタとスレーブの主キーに対して、ここで指定のスレーブの
             カラム列名を、マスタの列に追加します。主キーがマッチしない行に関しては、
             カラムの初期値が適用されたデータを作成します。
             列追加(ADD_CLM)は、マスタテーブルに指定のカラムを追加するだけです、スレーブテーブルは
             参照しません。よって、主キーも指定不要です。

    - #### setModifyClms

          public void setModifyClms(String modifyClms)

      【TAG】スレーブからマスタへ値を更新するカラム名をCSV形式で指定します。
      パラメータ:
        `modifyClms` - 値を更新するカラム名をCSV形式で指定
      説明:

             アクションが差分処理(DIFFERENCE)の場合に、結果にマスタテーブルが抜き出されますが、
             更新する場合に、スレーブ特有のユニークキー(例：UNIQ)を用いて更新する場合、
             指定のカラム値は、スレーブの値にセットしておきたい場合があります。
             ここでは、指定のカラムについて、値だけスレーブからマスタへセットします。
             なお、値の更新については、マスタとスレーブが同一キーという制約があります。

    - #### setGroupAddClms

          public void setGroupAddClms(String groupAddClms)

      【TAG】集合処理するときに、相違データをCSV連結して残すカラム名をCSV形式で指定します。
      パラメータ:
        `groupAddClms` - 相違データをCSV連結して残すカラム名をCSV形式で指定
      説明:

             masterKeysで集合処理するときに、通常、最初に見つかった行データのみ残りますが、
             ここに指定したカラムについては、発生都度、自分自身の情報に、CSV形式で連結して
             いきます。
             この操作により、本来削除された情報が、１行のCSV形式で取得できる効果が得られます。
             これは、value タグの action="APPEND" を、DBTableModel に対して実施するような感じです。

      変更履歴:

        5.1.4.0 (2010/03/01) 新規追加

    - #### setNoSideEffect

          public void setNoSideEffect(String noSideEffect)

      【TAG】テーブルモデルに対する副作用の有無[true:ない/false:ある]を指定します(初期値:false:ある)。
      パラメータ:
        `noSideEffect` - テーブルモデルに対する副作用 [true:ない/false:ある]
      説明:

             すべての処理で、DBTableModel に対して、ユニーク化やグループ化などの集合処理を
             行う過程で、マスタテーブルに対して直接処理を行うと、副作用が発生します。
             同様に、スレーブテーブルにおいても、一旦キー列でグループ化されるため、副作用が
             発生します。これは、無駄なメモリ領域の確保と、テーブル(マスタ、スレーブとも)の
             コピー処理時間の節約になります。初期値の設定も副作用がある状態になっています。
             ところが、都合によっては、色々な action を連続して行いたい場合など、毎回、
             データベースを検索するよりもメモリ上でコピーしたほうが都合がよいケースでは、
             副作用が出ないように、noSideEffect="true" に設定します。
             ただし、マスタ、スレーブともテーブルをコピーを行い、結果のテーブルも派生する為、
             通常、２つの領域(マスタと結果は同じテーブルに書かれる)で良い所を、５つの領域が
             作成されます。
             初期値は、副作用がある(noSideEffect="false")です。

    - #### setUseDiffData

          public void setUseDiffData(String flag)

      【TAG】差分のスレーブデータを結果テーブルに追加するかどうかを指定します(初期値:true)。
      パラメータ:
        `flag` - スレーブデータを結果テーブルに追加するかどうか(初期値:true)
      説明:

             アクションが差分処理(DIFFERENCE)の場合に、結果にマスタテーブルが抜き出されますが、
             差分対象のスレーブデータと比較したい場合があります。
             このフラグを true にセットすると、書込み禁止属性が付いた状態で、スレーブデータが
             結果テーブルに追加されます。
             なお、この処理では、通常と異なり、マスタテーブルにはグループ化の副作用は発生しますが、
             結果テーブルは新規に作成され、先頭行に必ず WRITABLE カラムが付加されます。
             初期値は、true：追加する です。

    - #### setUseCheckOnly

          public void setUseCheckOnly(String flag)

      【TAG】マスタテーブルの選択行のデータのみを対象に処理を行うかどうかを指定します(初期値:false)。
      パラメータ:
        `flag` - マスタテーブルの選択行のデータのみを対象に処理を行うかどうか(初期値:false)
      説明:

             処理対象のマスタテーブルについて、選択行が指定された場合に、選択行のみを処理対象に
             するか、全件を対象にするかを指定します。
             積集合や差分集合など通常は、全件を対象にすることになりますが、列合成や列追加など、
             マスタテーブルに対してのみ作用を及ぼす処理では、選択行のみを対象に処理を行う事が
             考えられます。その場合、初期グループ化と同じで、対象とする行が選択行のみになります。
             初期値は、false：全件対象 です。

    - #### setDisplay

          public void setDisplay(String flag)

      【TAG】マージの結果を表示するかどうかを指定します(初期値:true)。
      パラメータ:
        `flag` - 接続の結果を表示するかどうか(初期値:false)
      説明:

             true で、マージ結果を表示します。 false では、何も表示しません(初期値:true)
             マスタテーブルの件数は、通常、キーでグループ化されるため、入力件数と異なります。
             同様に、スレーブ件数も異なります。結果の件数は、処理結果が現実的かどうかの
             判断に使用されます。
             初期値は、true：表示する です。

    - #### setStopZero

          public void setStopZero(String cmd)

      【TAG】検索結果が０件のとき処理を続行するかどうか[true/false]を指定します(初期値:false[続行する])。
      パラメータ:
        `cmd` - 検索結果が０件のとき、[true:処理を中止する/false:続行する]
      説明:

             初期値は、false(続行する)です。

      変更履歴:

        5.7.6.2 (2014/05/16) 新規追加

    - #### setMainTrans

          public void setMainTrans(String flag)

      【TAG】(通常使いません)タグで処理される処理がメインとなるトランザクション処理かどうかを指定します(初期値:false)。
      パラメータ:
        `flag` - メイントランザクションかどうか
      説明:

             この値は、ファイルダウンロード処理に影響します。この値がtrueに指定された時にcommitされたDBTableModelが
             ファイルダウンロードの対象の表になります。

             このパラメーターは、通常、各タグにより実装され、ユーザーが指定する必要はありません。
             但し、1つのJSP内でDBTableModelが複数生成される場合に、前に処理したDBTableModelについてファイルダウンロードをさせたい
             場合は、後ろでDBTableModelを生成するタグで、明示的にこの値をfalseに指定することで、ファイルダウンロード処理の対象から
             除外することができます。

      変更履歴:

        5.1.6.0 (2010/05/01) 新規作成

    - #### setSeparator

          public void setSeparator(String sepa)

      【TAG】groupAddClmsで文字列を連結する項目区切り文字をセットします(初期値:",")。
      パラメータ:
        `sepa` - 項目区切り文字(初期値:",")
      説明:

             groupAddClmsで文字列を連結する項目区切り文字をセットします(初期値:",")。
             初期値は、"," に設定されています。

      変更履歴:

        5.3.1.0 (2011/01/01)

    - #### toString

          public String toString()

      このオブジェクトの文字列表現を返します。 基本的にデバッグ目的に使用します。
      オーバーライド:
        `toString` クラス内 `CommonTagSupport`
      戻り値:
        このクラスの文字列表現

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