org.opengion.hayabusa.taglib

## クラス MainProcessTag

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

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

      public class MainProcessTag
      extends CommonTagSupport

       HybsProcess を継承した、ParamProcess,FirstProcess,ChainProcess の実装クラスを
       実行する MainProcess を起動するクラスです。
       LoggerProcess は、最初に定義するクラスで、画面ログ、ファイルログ、を定義します。
       また、エラー発生時に、指定のメールアドレスにメール送信できます。
       Process_Logger は、なくても構いませんが、指定する場合は、最も最初に指定しなければ
       なりません。

       ParamProcess は、一つだけ定義できるクラスで、データベース接続情報を定義します。
       (データベース接続しなければ)なくても構いません。

       FirstProcess は、処理を実行する最初のクラスで、このクラスでデータが作成されます。
       ループ処理は、この FirstProcess で順次作成された LineModel オブジェクトを
       １行づつ下位の ChainProcess に流していきます。
       ChainProcess は、FirstProcess で作成されたデータを、受け取り、処理します。
       処理対象から外れる場合は、LineModel を null に設定する為、下流には流れません。
       フィルタチェインの様に使用します。なくても構いませんし、複数存在しても構いません。

  関連項目:
    直列化された形式
  形式サンプル:

         ●形式：<og:mainProcess
                   useJspLog ="[true/false]"
                   useDisplay="[true/false]" >
                     <og:process processID="ZZZ" >
                         <og:param key="AAA" value="111" />
                     </og:process >
                 </og:mainProcess >
         ●body：あり(EVAL_BODY_BUFFERED:BODYを評価し、{@XXXX} を解析します)

         ●Tag定義：
           <og:mainProcess
               command            【TAG】(通常は使いません)処理の実行を指定する command を設定できます(初期値:NEW)
               useJspLog          【TAG】ログ出力先に、JspWriter(つまり、HTML上の返り値)を使用するかどうか[true/false]を指定します(初期値:false)
               useDisplay         【TAG】画面表示先に、JspWriter(つまり、HTML上の返り値)を使用するかどうか[true/false]を指定します(初期値:false)
               useThread          【TAG】独立した別スレッドで実行するかどうか[true/false]を指定します(初期値:false)
               delayTime          【TAG】要求に対して、処理の実行開始を遅延させる時間を指定します(初期値:0秒)
               caseKey            【TAG】このタグ自体を利用するかどうかの条件キーを指定します(初期値:null)
               caseVal            【TAG】このタグ自体を利用するかどうかの条件値を指定します(初期値:null)
               caseNN             【TAG】指定の値が、null/ゼロ文字列 でない場合(Not Null=NN)は、このタグは使用されます(初期値:判定しない)
               caseNull           【TAG】指定の値が、null/ゼロ文字列 の場合は、このタグは使用されます(初期値:判定しない)
               caseIf             【TAG】指定の値が、true/TRUE文字列の場合は、このタグは使用されます(初期値:判定しない)
               debug              【TAG】デバッグ情報を出力するかどうか[true/false]を指定します(初期値:false)
           >   ... Body ...
           </og:mainProcess>

         ●使用例
           <og:mainProcess
                useJspLog="true" >
             <og:process processID="DBReader" >
                <og:param key="dbid" value="FROM" />
                <og:param key="sql"  value="select * from GE02" />
             </og:process >
             <og:process processID="DBWriter" >
                <og:param key="dbid"  value="TO" />
                <og:param key="table" value="GE02" />
             </og:process >
           </og:mainProcess >

  機能分類
    画面表示
  バージョン
    4.0
  作成者
    Kazuhiko Hasegawa
  導入されたバージョン:
    JDK5.0,

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

    フィールド
    修飾子とタイプ | フィールドと説明
    --- | ---
    `static String` | `CMD_NEW` command 引数に渡す事の出来る コマンド 新規 "NEW"

    - ### クラスから継承されたフィールド org.opengion.hayabusa.taglib.CommonTagSupport

      `BR, BUFFER_MIDDLE, CR`

    - ### クラスから継承されたフィールド 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`

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

    コンストラクタ
    コンストラクタと説明
    `MainProcessTag()` デフォルトコンストラクター

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

    すべてのメソッド インスタンス・メソッド concreteメソッド
    修飾子とタイプ | メソッドと説明
    --- | ---
    `protected void` | `addProcess(HybsProcess process)` 親クラスに登録するプロセスをセットします。
    `int` | `doEndTag()` Taglibの終了タグが見つかったときに処理する doEndTag() を オーバーライドします。
    `int` | `doStartTag()` Taglibの開始タグが見つかったときに処理する doStartTag() を オーバーライドします。
    `protected void` | `release2()` タグリブオブジェクトをリリースします。
    `void` | `setCommand(String cmd)` 【TAG】(通常は使いません)処理の実行を指定する command を設定できます(初期値:NEW)。
    `void` | `setDelayTime(String time)` 【TAG】要求に対して、処理の実行開始を遅延させる時間を指定します(初期値:0秒)。
    `void` | `setUseDisplay(String flag)` 【TAG】画面表示先に、JspWriter(つまり、HTML上の返り値)を使用するかどうか[true/false]を指定します(初期値:false)。
    `void` | `setUseJspLog(String flag)` 【TAG】ログ出力先に、JspWriter(つまり、HTML上の返り値)を使用するかどうか[true/false]を指定します(初期値:false)。
    `void` | `setUseThread(String flag)` 【TAG】独立した別スレッドで実行するかどうか[true/false]を指定します(初期値:false)。
    `String` | `toString()` このオブジェクトの文字列表現を返します。

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

      `add, add, addEventColumn, addEventColumn, check, commitTableObject, debugPrint, doAfterBody, doCatch, doFinally, get, getApplicationInfo, getAttributes, getBodyRawString, getBodyString, getContextAttribute, getContextPath, getCookie, getCSVParameter, getCSVParameter, getDataCondition, getDateFormat, getDBColumn, getDBFunctionName, getDocumentLink, getGUIInfo, getGUIInfoAttri, getHostName, getLabel, getLabelInterface, getLanguage, getLASTAttri, getLongLabel, getMsg, getMsglbl, getNVLAttri, getObject, getParameterNames, getParameterRows, getRequest, getRequestAttribute, getRequestCacheData, getRequestMethod, getRequestParameter, getRequestParameterValues, getRequestValue, getRequestValue, getRequestValues, getReservedParameter, getReservedValue, getResource, getSanitizedBodyString, getScope, getSessionAttribute, getSumRequestValue, getTagName, getTransaction, getUser, getUserEditInfo, getUserInfo, isAjaxSubmitRequest, isDebug, isNoTransitionRequest, isNull, jspPrint, makeUrl, removeContextAttribute, removeObject, removeRequestAttribute, removeSessionAttribute, set, setAjaxSubmitRequest, setCaseIf, setCaseKey, setCaseNN, setCaseNull, setCaseVal, setContextAttribute, setCookie, setDebug, setLanguage, setLbl, setNoTransitionRequest, setObject, setObject, setParameterNames, setParameterRows, setRequestAttribute, setRequestCacheData, setScope, 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`

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

    - #### CMD_NEW

          public static final String CMD_NEW

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

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

    - #### MainProcessTag

          public MainProcessTag()

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

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

  - ### メソッドの詳細

    - #### doStartTag

          public int doStartTag()

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

        6.3.4.0 (2015/08/01) caseKey,caseVal,caseNN,caseNull,caseIf 属性対応

    - #### doEndTag

          public int doEndTag()

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

        6.3.4.0 (2015/08/01) caseKey,caseVal,caseNN,caseNull,caseIf 属性対応

    - #### release2

          protected void release2()

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

    - #### addProcess

          protected void addProcess(HybsProcess process)

      親クラスに登録するプロセスをセットします。
      パラメータ:
        `process` - 登録するプロセス

    - #### setCommand

          public void setCommand(String cmd)

      【TAG】(通常は使いません)処理の実行を指定する command を設定できます(初期値:NEW)。
      パラメータ:
        `cmd` - コマンド
      関連項目:
        コマンド定数
      説明:

             この処理は、command="NEW" の場合のみ実行されます。RENEW時にはなにも行いません。
             初期値は、NEW です。

    - #### setUseJspLog

          public void setUseJspLog(String flag)

      【TAG】ログ出力先に、JspWriter(つまり、HTML上の返り値)を使用するかどうか[true/false]を指定します(初期値:false)。
      パラメータ:
        `flag` - JspWriter出力 [true:行う/false:行わない]
      説明:

             ログファイルは、processタグで、Logger を指定する場合に、パラメータ logFile にて
             ファイル名/System.out/System.err 形式で指定します。
             この場合、JSP 特有のWriterである、JspWriter(つまり、HTML上の返り値)は指定
             できません。
             ここでは、特別に ログの出力先を、JspWriter に切り替えるかどうかを指示
             できます。
             true を指定すると、画面出力(JspWriter) に切り替わります。
             初期値は、false です。

    - #### setUseDisplay

          public void setUseDisplay(String flag)

      【TAG】画面表示先に、JspWriter(つまり、HTML上の返り値)を使用するかどうか[true/false]を指定します(初期値:false)。
      パラメータ:
        `flag` - JspWriter出力 [true:行う/false:行わない]
      説明:

             画面表示は、processタグで、Logger を指定する場合に、パラメータ dispFile にて
             ファイル名/System.out/System.err 形式で指定します。
             この場合、JSP 特有のWriterである、JspWriter(つまり、HTML上の返り値)は指定
             できません。
             ここでは、特別に ログの出力先を、JspWriter に切り替えるかどうかを指示
             できます。
             true を指定すると、画面出力(JspWriter) に切り替わります。
             初期値は、false です。

    - #### setUseThread

          public void setUseThread(String flag)

      【TAG】独立した別スレッドで実行するかどうか[true/false]を指定します(初期値:false)。
      パラメータ:
        `flag` - 独立スレッド実行 [true:スレッドを使う/false:順次処理で行う]
      説明:

             MainProcess 処理を実行する場合、比較的実行時間が長いケースが考えられます。
             そこで、実行時に、スレッドを生成して処理を行えば、非同期に処理を行う
             事が可能です。
             ただし、その場合の出力については、JspWriter 等で返すことは出来ません。
             起動そのものを、URL指定の http で呼び出すのであれば、返り値を無視する
             ことで、アプリサーバー側のスレッドで処理できます。
             初期値は、順次処理(false)です。

    - #### setDelayTime

          public void setDelayTime(String time)

      【TAG】要求に対して、処理の実行開始を遅延させる時間を指定します(初期値:0秒)。
      パラメータ:
        `time` - 処理開始する遅延時間(秒)
      説明:

             プロセス起動が、同時に大量に発生した場合に、すべての処理を行うのではなく、
             ある程度待って、複数の処理を１回だけで済ますことが出来る場合があります。
             例えば、更新データ毎にトリガが起動されるケースなどです。
             それらの開始時刻を遅らせる事で、同時発生のトリガを１回のプロセス処理で
             実行すれば、処理速度が向上します。
             ここでは、処理が開始されると、タイマーをスタートさせ、指定時間経過後に、
             処理を開始するようにしますが、その間、受け取ったリクエストは、すべて
             処理せず破棄されます。
             ここでは、リクエストのタイミングと処理の開始タイミングは厳密に制御して
             いませんので、処理が重複する可能性があります。よって、アプリケーション側で
             リクエストが複数処理されても問題ないように、制限をかける必要があります。
             遅延は、リクエスト引数単位に制御されます。

    - #### toString

          public String toString()

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

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