org.opengion.hayabusa.taglib

## クラス ScheduleTag

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

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

      public class ScheduleTag
      extends CommonTagSupport

  アプリケーション共有のタイマー機能を用いて、繰り返しスケジュールを設定するタグです。 タイマースケジュールは、帳票デーモンや、再編成処理、定期的バッチ処理など、エンジン上の スレッドで動作するスケジュールを登録します。 スケジュールすべきクラスは、HybsTimerTask を拡張(extends)しておく必要があります。
  関連項目:
    直列化された形式
  形式サンプル:

         ●形式：<og:schedule timerTask="･･･" name="･･･" command="[SET|VIEW|REMOVE|CANCEL]" ･･･ />
         ●body：あり(EVAL_BODY_BUFFERED:BODYを評価し、{@XXXX} を解析します)

         ●Tag定義：
           <og:schedule
               command            【TAG】コマンド(SET,VIEW,REMOVE,CANCEL)をセットします(初期値:SET)
               timerTask        ○【TAG】処理を実行するクラス名(HybsTimerTask のサブクラス)を指定します(必須)。
               name             ○【TAG】名称(ユニークキー)を設定します(必須)。
               comment            【TAG】タイマータスクの説明を設定します
               singleton          【TAG】Name属性が同一のタスクを２重登録出来ないよう[true/false]にします(初期値:true[出来ない])
               delay              【TAG】ミリ秒単位の遅延時間を設定します(初期値:0)
               period             【TAG】ミリ秒単位の繰り返し間隔を設定します(初期値:60000)
               fixedDelay         【TAG】固定遅延実行を指定するかどうか[true:固定遅延実行/false:固定頻度実行]を設定します(初期値:true)
               keys               【TAG】HybsTimerTask に渡す為のキー情報、CSV形式で複数指定します
               vals               【TAG】HybsTimerTask に渡す為の値を、CSV形式で複数指定します
               startTime          【TAG】24時間制(YYMMDD)の開始時刻を設定します(初期値:000000)
               stopTime           【TAG】24時間制(YYMMDD)の終了時刻を設定します(初期値:000000)
               scope              【TAG】キャッシュする場合のスコープ(local,request,page,session,applicaton)を指定します(初期値:local)
               tableId            【TAG】(通常は使いません)結果をDBTableModelに書き込んで、sessionに登録するときのキーを指定します
               debug              【TAG】デバッグ情報を出力するかどうか[true/false]を指定します(初期値:false)
           >   ... Body ...
           </og:schedule>

         ●使用例
              帳票デーモンスケジュール登録
              period は、ｍｓ単位で指定する必要があるため、１０００倍しています。
              <og:schedule
                  command     = "{@CMD}"
                  scope       = "request"
                  timerTask   = "org.opengion.hayabusa.report.ReportDaemon"
                  name        = "{@NAME}"
                  comment     = "Start-up By {@USER.INFO}"
                  singleton   = "true"
                  delay       = "0"
                  period      = "{@PERIOD}000"
                  fixedDelay  = "true"
                  keys        = "SYSTEM_ID,DMN_GRP"
                  vals        = "{@SYSTEM_ID},{@DMN_GRP}"
              />

  機能分類
    その他部品
  バージョン
    4.0
  作成者
    Kazuhiko Hasegawa
  導入されたバージョン:
    JDK5.0,

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

    フィールド
    修飾子とタイプ | フィールドと説明
    --- | ---
    `static String` | `CMD_CANCEL` command 引数に渡す事の出来る コマンド キャンセル "CANCEL"
    `static String` | `CMD_REMOVE` command 引数に渡す事の出来る コマンド リムーブ "REMOVE"
    `static String` | `CMD_SET` command 引数に渡す事の出来る コマンド セット "SET"
    `static String` | `CMD_VIEW` command 引数に渡す事の出来る コマンド ビュー "VIEW"

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

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

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

  - ### メソッドの概要

    メソッド
    修飾子とタイプ | メソッドと説明
    --- | ---
    `protected boolean` | `commandExec(String command)` コマンドを実行します。
    `int` | `doAfterBody()` Taglibのタグ本体を処理する doAfterBody() を オーバーライドします。
    `int` | `doEndTag()` Taglibの終了タグが見つかったときに処理する doEndTag() を オーバーライドします。
    `int` | `doStartTag()` Taglibの開始タグが見つかったときに処理する doStartTag() を オーバーライドします。
    `protected void` | `release2()` タグリブオブジェクトをリリースします。
    `void` | `setCommand(String cmd)` 【TAG】コマンド(SET,VIEW,REMOVE,CANCEL)をセットします(初期値:SET)。
    `void` | `setComment(String cmt)` 【TAG】タイマータスクの説明を設定します。
    `void` | `setDelay(String val)` 【TAG】ミリ秒単位の遅延時間を設定します(初期値:0)。
    `void` | `setFixedDelay(String flag)` 【TAG】固定遅延実行を指定するかどうか[true:固定遅延実行/false:固定頻度実行]を設定します(初期値:true)。
    `void` | `setKeys(String key)` 【TAG】HybsTimerTask に渡す為のキー情報、CSV形式で複数指定します。
    `void` | `setName(String nm)` 【TAG】名称(ユニークキー)を設定します。
    `void` | `setPeriod(String val)` 【TAG】ミリ秒単位の繰り返し間隔を設定します(初期値:60000)。
    `void` | `setScope(String scp)` 【TAG】キャッシュする場合のスコープ(local,request,page,session,applicaton)を指定します(初期値:local)。
    `void` | `setSingleton(String flag)` 【TAG】Name属性が同一のタスクを２重登録出来ないよう[true/false]にします(初期値:true[出来ない])。
    `void` | `setStartTime(String st)` 【TAG】24時間制(YYMMDD)の開始時刻を設定します(初期値:000000)。
    `void` | `setStopTime(String st)` 【TAG】24時間制(YYMMDD)の終了時刻を設定します(初期値:000000)。
    `void` | `setTableId(String id)` 【TAG】(通常は使いません)結果のDBTableModelを、sessionに登録するときのキーを指定します (初期値:HybsSystem#TBL_MDL_KEY[=h_tblmdl])。
    `void` | `setTimerTask(String val)` 【TAG】処理を実行するクラス名(HybsTimerTask のサブクラス)を指定します。
    `void` | `setUniqKey(String no)` 【TAG】スケジュールを一意に決めるためのユニーク番号を指定します(初期値:-1)。
    `void` | `setVals(String val)` 【TAG】HybsTimerTask に渡す為の値を、CSV形式で複数指定します。
    `String` | `toString()` このオブジェクトの文字列表現を返します。

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

      `add, add, addEventColumn, addEventColumn, check, check, commitTableObject, debugPrint, doCatch, doFinally, 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, getRequestMethod, 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`

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

    - #### CMD_SET

          public static final String CMD_SET

      command 引数に渡す事の出来る コマンド セット "SET"
      関連項目:
        定数フィールド値

    - #### CMD_VIEW

          public static final String CMD_VIEW

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

    - #### CMD_REMOVE

          public static final String CMD_REMOVE

      command 引数に渡す事の出来る コマンド リムーブ "REMOVE"
      関連項目:
        定数フィールド値

    - #### CMD_CANCEL

          public static final String CMD_CANCEL

      command 引数に渡す事の出来る コマンド キャンセル "CANCEL"
      関連項目:
        定数フィールド値

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

    - #### ScheduleTag

          public ScheduleTag()

  - ### メソッドの詳細

    - #### doStartTag

          public int doStartTag()

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

        3.2.2.0 (2003/05/31) HybsTimerTask に対して、設定値を渡せるように変更。

    - #### doAfterBody

          public int doAfterBody()

      Taglibのタグ本体を処理する doAfterBody() を オーバーライドします。
      定義:
        `doAfterBody` インタフェース内 `IterationTag`
      オーバーライド:
        `doAfterBody` クラス内 `CommonTagSupport`
      戻り値:
        後続処理の指示(SKIP_BODY)
      変更履歴:

        3.2.2.0 (2003/05/31) HybsTimerTask に対して、設定値を渡せるように変更。

    - #### doEndTag

          public int doEndTag()

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

        3.1.1.2 (2003/04/04) Tomcat4.1 対応。release2() を doEndTag()で呼ぶ。
        3.6.0.8 (2004/11/19) DBTableModel をセーブする時に、トランザクションチェックを行います。

    - #### release2

          protected void release2()

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

        3.1.1.2 (2003/04/04) Tomcat4.1 対応。release2() を doEndTag()で呼ぶ。
        3.2.2.0 (2003/05/31) HybsTimerTask に対して、設定値を渡せるように変更。
        3.5.2.0 (2003/10/20) 結果を DBTableModel として、scope 属性に登録する。

    - #### commandExec

          protected boolean commandExec(String command)

      コマンドを実行します。 コマンドは,HTMLから(SET/VIEW/REMOVE/CANCEL)指定されますので,setCommand()メソッドで 登録します。 コマンドを登録すると同時に,実行も行ないます。
      パラメータ:
        `command` - コマンド(public static final 宣言されている文字列)
      戻り値:
        正常かどうか(true:正常/false:異常)
      関連項目:
        コマンド定数
      変更履歴:

        3.5.2.0 (2003/10/20) viewAttribute()メソッドを、全てで実行します。
        3.6.0.8 (2004/11/19) 正常に登録できたかどうかを、返します。
        4.0.0.0 (2007/10/18) メッセージリソース統合( setMsg() ⇒ setLbl )

    - #### setCommand

          public void setCommand(String cmd)

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

             コマンドは,HTMLから(get/post)指定されますので,CMD_xxx で設定される
             フィールド定数値のいづれかを、指定できます。
             何も設定されない、または、null の場合は、"SET" が初期値にセットされます。

    - #### setTimerTask

          public void setTimerTask(String val)

      【TAG】処理を実行するクラス名(HybsTimerTask のサブクラス)を指定します。
      パラメータ:
        `val` - クラス名
      説明:

             処理を実行する HybsTimerTask のクラス名を指定します。

    - #### setName

          public void setName(String nm)

      【TAG】名称(ユニークキー)を設定します。
      パラメータ:
        `nm` - タイマータスクの名称
      説明:

             タイマータスクの名称(ユニークキー)を設定します。

    - #### setComment

          public void setComment(String cmt)

      【TAG】タイマータスクの説明を設定します。
      パラメータ:
        `cmt` - タイマータスクの説明
      説明:

             タイマータスクの説明を設定します。

    - #### setDelay

          public void setDelay(String val)

      【TAG】ミリ秒単位の遅延時間を設定します(初期値:0)。
      パラメータ:
        `val` - 遅延時間(ms)
      説明:

             タスクが実行される前のミリ秒単位の遅延を設定します(初期値:0)

    - #### setPeriod

          public void setPeriod(String val)

      【TAG】ミリ秒単位の繰り返し間隔を設定します(初期値:60000)。
      パラメータ:
        `val` - 繰り返し間隔(ms)
      説明:

             連続するタスク実行のミリ秒単位の時間を設定します(初期値:60000 mS)

    - #### setFixedDelay

          public void setFixedDelay(String flag)

      【TAG】固定遅延実行を指定するかどうか[true:固定遅延実行/false:固定頻度実行]を設定します(初期値:true)。
      パラメータ:
        `flag` - [true:固定遅延実行/false:固定頻度実行]
      説明:

             固定遅延実行では、前の実行の実際の実行時間を基準にしてそれぞれの実行がスケジュールされます。
             何らかの理由で実行が遅延した場合 そのあとの実行も遅延されます。
             最終的に、実行の頻度は通常、指定した期間の対応する頻度よりも若干遅くなります

             固定頻度実行では、最初の実行のスケジュールされた実行時間を基準にしてそれぞれの実行が
             スケジュールされます。何らかの理由で実行が遅延した場合、「遅れを取り戻す」ために
             2 つ以上の実行が連続して行われます。最終的に実行の頻度は、指定した期間の対応する頻度と
             同じになります
             初期値は、true:固定遅延実行 です。

    - #### setUniqKey

          public void setUniqKey(String no)

      【TAG】スケジュールを一意に決めるためのユニーク番号を指定します(初期値:-1)。
      パラメータ:
        `no` - ユニーク番号
      説明:

             スケジュールを削除したりする場合に、必要なユニーク番号を指定します。
             初期値は、-1:あり得ない値 です。

    - #### setSingleton

          public void setSingleton(String flag)

      【TAG】Name属性が同一のタスクを２重登録出来ないよう[true/false]にします(初期値:true[出来ない])。
      パラメータ:
        `flag` - Name属性が同一のタスクを２重登録出来ないようにする(初期値:true)
      説明:

             同一種類のタスクを複数同時立上げしたくない場合に、利用します。
             一般に、タイマータスクそのものが、繰り返し実行されますので、
             初期値は、２重登録禁止にしています。

    - #### setKeys

          public void setKeys(String key)

      【TAG】HybsTimerTask に渡す為のキー情報、CSV形式で複数指定します。
      パラメータ:
        `key` - キー情報(CSV形式)
      説明:

             HybsTimerTask に渡す為の、キー情報をカンマ区切りで複数指定できます。
             vals 属性には、キーに対応する値を、設定してください。
             分解方法は、CSV変数を先に分解してから、getRequestParameter で値を取得します。
             こうしないとデータ自身にカンマを持っている場合に分解をミスる為です。

      変更履歴:

        3.2.2.0 (2003/05/31) 新規追加
        3.5.6.2 (2004/07/05) CommonTagSupport#getCSVParameter を使用

    - #### setVals

          public void setVals(String val)

      【TAG】HybsTimerTask に渡す為の値を、CSV形式で複数指定します。
      パラメータ:
        `val` - 値(CSV形式)
      説明:

             キーに設定した値を、カンマ区切り文字で複数して出来ます。
             指定順序は、キーと同じにしておいて下さい。
             分解方法は、CSV変数を先に分解してから、getRequestParameter で値を取得します。
             こうしないとデータ自身にカンマを持っている場合に分解をミスる為です。

      変更履歴:

        3.2.2.0 (2003/05/31) 新規追加
        3.5.6.2 (2004/07/05) CommonTagSupport#getCSVParameter を使用

    - #### setStartTime

          public void setStartTime(String st)

      【TAG】24時間制(YYMMDD)の開始時刻を設定します(初期値:000000)。
      パラメータ:
        `st` - 開始時刻
      説明:

             指定時刻範囲内での実行のみ許可するように開始時刻を設定します。
             これは、タイマーで指定した間隔ごとにチェックを入れるので、チェック時間が
             長い場合は、正確に開始時刻から始まるというものではありません。
             初期値は、"000000" です。

      変更履歴:

        3.2.2.0 (2003/05/31) 新規追加

    - #### setStopTime

          public void setStopTime(String st)

      【TAG】24時間制(YYMMDD)の終了時刻を設定します(初期値:000000)。
      パラメータ:
        `st` - 終了時刻
      説明:

             指定時刻範囲内での実行のみ許可するように終了時刻を設定します。
             これは、タイマーで指定した間隔ごとにチェックを入れるので、チェック時間が
             長い場合は、正確に終了時刻で終了するというものではありません。
             (終了時刻を越えてからの新規実行はありません。)
             初期値は、"000000" です。

      変更履歴:

        3.2.2.0 (2003/05/31) 新規追加

    - #### setTableId

          public void setTableId(String id)

      【TAG】(通常は使いません)結果のDBTableModelを、sessionに登録するときのキーを指定します (初期値:HybsSystem#TBL_MDL_KEY[=h_tblmdl])。
      パラメータ:
        `id` - sessionに登録する時の ID
      説明:

             検索結果より、DBTableModelオブジェクトを作成します。これを、下流のviewタグ等に
             渡す場合に、通常は、session を利用します。その場合の登録キーです。
             query タグを同時に実行して、結果を求める場合、同一メモリに配置される為、
             この tableId 属性を利用して、メモリ空間を分けます。
            		(初期値:HybsSystem#TBL_MDL_KEY[={@og.value org.opengion.hayabusa.common.HybsSystem#TBL_MDL_KEY}])。

    - #### setScope

          public void setScope(String scp)

      【TAG】キャッシュする場合のスコープ(local,request,page,session,applicaton)を指定します(初期値:local)。
      オーバーライド:
        `setScope` クラス内 `CommonTagSupport`
      パラメータ:
        `scp` - スコープ
      関連項目:
        `CommonTagSupport.getScope()`
      説明:

             "local","request","page","session","applicaton" が指定できます。
             "local" は、過去のバージョンとの互換性を保つ為の特殊な値です。
             初期値は、"local" です。

      変更履歴:

        3.5.2.0 (2003/10/20) 新規作成

    - #### toString

          public String toString()

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

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