パッケージ org.opengion.fukurou.util

## クラス HybsTimerTask

- java.lang.Object
- - java.util.TimerTask
  - - org.opengion.fukurou.util.HybsTimerTask

- すべての実装されたインタフェース:
    `java.lang.Comparable<HybsTimerTask>`, `java.lang.Runnable`
  直系の既知のサブクラス:
    `Daemon_MailReceive`, `Daemon_QueueReceive`, `Daemon_QueueSend`, `Daemon_Report2`, `Daemon_RunShell`, `Daemon_URLConnect`, `MailDaemon`, `MailDaemon_SendGridAPI`

      public abstract class HybsTimerTask
      extends java.util.TimerTask
      implements java.lang.Comparable<HybsTimerTask>

  HybsTimerTask.java は、String 型キーにString型値を Map するクラスです。 HTMLのPOST/GET等の受け渡しや、String型の引数が多い場合に効果があります。 特に、getHybsTimerTask( String[] param ) による属性リスト作成は、 HTMLタグの属性定義を行う上で，非常に便利に利用できます。 この実装は同期化されません。
  バージョン
    4.0
  作成者
    Kazuhiko Hasegawa
  導入されたバージョン:
    JDK5.0,

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

    コンストラクタ
    コンストラクタ | 説明
    --- | ---
    `HybsTimerTask()` | デフォルトコンストラクター オブジェクトは、newInstance でのみ、生成されます。

  - ### メソッドの概要

    すべてのメソッド インスタンス・メソッド abstractメソッド concreteメソッド
    修飾子とタイプ | メソッド | 説明
    --- | --- | ---
    `boolean` | `cancel()` | このタイマータスクのcancel() メソッドをオーバーライドします。
    `int` | `compareTo​(HybsTimerTask other)` | このオブジェクトと指定されたオブジェクトの順序を比較します。
    `boolean` | `equals​(java.lang.Object object)` | このオブジェクトと他のオブジェクトが等しいかどうかを示します。
    `java.lang.String` | `getBody()` | 内部で使用するBody要素の値を取得します。
    `java.lang.String` | `getComment()` | タイマータスクの説明を取得します。
    `long` | `getCreateTime()` | このオブジェクトが生成された時刻をミリ秒で返します。
    `java.lang.String` | `getName()` | タイマータスクの名称(ユニークキー)を取得します。
    `protected java.util.concurrent.ConcurrentMap<java.lang.String,​java.lang.String>` | `getParameter()` | 内部で使用するパラメータを返します。
    `int` | `getUniqKey()` | このオブジェクトの内部ユニークキー値を返します。
    `java.lang.String` | `getValue​(java.lang.String key)` | 内部で使用するパラメータのキーに対する値を取得します。
    `int` | `hashCode()` | オブジェクトのハッシュコード値を返します。
    `void` | `initDaemon()` | このタイマータスクによって初期化されるアクションです。
    `boolean` | `isAlive()` | オブジェクトが生存しているかどうかを判定します。
    `void` | `run()` | このタイマータスクによって実行されるアクションです。
    `void` | `setBody​(java.lang.String body)` | 内部で使用するBody要素の値を設定します。
    `void` | `setComment​(java.lang.String cmt)` | タイマータスクの説明を設定します。
    `void` | `setErrorSleepSec​(int erTime)` | TimerTask がエラー発生時のスリープ時間(s) 設定します(初期値:0)。
    `void` | `setName​(java.lang.String nm)` | タイマータスクの名称(ユニークキー)を設定します。
    `void` | `setParameter​(java.util.Map<java.lang.String,​java.lang.String> map)` | 内部で使用するパラメータを設定します。
    `void` | `setStartTime​(java.lang.String st)` | 24時間制(YYMMDD)の開始時刻を設定します。
    `void` | `setStopTime​(java.lang.String st)` | 24時間制(YYMMDD)の終了時刻を設定します。
    `protected abstract void` | `startDaemon()` | このタイマータスクによって実行されるアクションです。
    `java.lang.String` | `toString()` | このオブジェクトの文字列表現を返します。

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

      `scheduledExecutionTime`

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

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

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

    - #### HybsTimerTask

          public HybsTimerTask()

      デフォルトコンストラクター オブジェクトは、newInstance でのみ、生成されます。
      変更履歴:
        5.5.2.6 (2012/05/25) findbugs対応。staticフィールドへの書き込みに、AtomicInteger を利用します。, 6.4.1.1 (2016/01/16) PMD refactoring. It is a good practice to call super() in a constructor

  - ### メソッドの詳細

    - #### run

          public final void run()

      このタイマータスクによって実行されるアクションです。 ここでは、エラートラップを入れていますので、サブクラスで 再定義できないように、final 化しています。 サブクラスでは、stratDaemon() をオーバーライドしてください。
      定義:
        `run` インタフェース内 `java.lang.Runnable`
      定義:
        `run` クラス内 `java.util.TimerTask`
      関連項目:
        `TimerTask.run()`, `startDaemon()`

    - #### startDaemon

          protected abstract void startDaemon()

      このタイマータスクによって実行されるアクションです。 run メソッドより呼ばれます。 サブクラスでは、startDaemon() をオーバーライドしてください。
      関連項目:
        `run()`

    - #### initDaemon

          public void initDaemon()

      このタイマータスクによって初期化されるアクションです。 サブクラスでは、initDaemon() をオーバーライドしてください。

    - #### setName

          public void setName​(java.lang.String nm)

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

    - #### getName

          public java.lang.String getName()

      タイマータスクの名称(ユニークキー)を取得します。
      戻り値:
        タイマータスクの名称

    - #### setComment

          public void setComment​(java.lang.String cmt)

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

    - #### getComment

          public java.lang.String getComment()

      タイマータスクの説明を取得します。
      戻り値:
        タイマータスクの説明

    - #### getUniqKey

          public int getUniqKey()

      このオブジェクトの内部ユニークキー値を返します。 オブジェクト生成毎に、＋１ されて、内部に持っています。
      戻り値:
        オブジェクトの内部ユニークキー

    - #### getCreateTime

          public long getCreateTime()

      このオブジェクトが生成された時刻をミリ秒で返します。 オブジェクト生成時に、System.currentTimeMillis() の値を取得しています。
      戻り値:
        オブジェクトが生成された時刻(ミリ秒)

    - #### setParameter

          public void setParameter​(java.util.Map<java.lang.String,​java.lang.String> map)

      内部で使用するパラメータを設定します。 外部より、引数として渡されてきます。これを利用して、各サブシステムは、 パラメーターを設定したり、初期化したり利用出来ます。 ※ 6.4.3.1 (2016/02/12) で、内部のMapを ConcurrentHashMap に置き換えたが、引数のMapが not null制限が入っているかどうか不明なので、取りえず元に戻しておきます。
      パラメータ:
        `map` - パラメータマップ
      変更履歴:
        6.4.3.3 (2016/03/04) 受け取って、Mapに登録するときに、not null制限チェックを入れます。

    - #### getParameter

          protected java.util.concurrent.ConcurrentMap<java.lang.String,​java.lang.String> getParameter()

      内部で使用するパラメータを返します。 Mapオブジェクトそのものですので、サブクラス等で書き換えた場合、内容も書き換わってしまいます。
      戻り値:
        内部で使用するパラメータMap
      変更履歴:
        6.9.0.0 (2018/01/31) 新規追加

    - #### getValue

          public java.lang.String getValue​(java.lang.String key)

      内部で使用するパラメータのキーに対する値を取得します。 各サブシステムは、パラメーターを設定したり、初期化したり利用出来ます。
      パラメータ:
        `key` - 引数のキー
      戻り値:
        キーに対する値

    - #### setBody

          public void setBody​(java.lang.String body)

      内部で使用するBody要素の値を設定します。 外部より、引数として渡されてきます。これを利用して、各サブシステムは、 パラメーターを設定したり、初期化したり利用出来ます。
      パラメータ:
        `body` - Body要素の値

    - #### getBody

          public java.lang.String getBody()

      内部で使用するBody要素の値を取得します。 各サブシステムは、パラメーターを設定したり、初期化したり利用出来ます。
      戻り値:
        Body要素の値

    - #### setStartTime

          public void setStartTime​(java.lang.String st)

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

    - #### setStopTime

          public void setStopTime​(java.lang.String st)

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

    - #### setErrorSleepSec

          public void setErrorSleepSec​(int erTime)

      TimerTask がエラー発生時のスリープ時間(s) 設定します(初期値:0)。 これは、予期せぬエラー(たとえば、データベースが落ちていたなど)が 発生したときでも、TimerTask を終了させずに、Sleep させて待機させる 事により、原因が除去された場合に、自動復帰するようにします。 これに、０ を設定すると、エラー時に即 終了します。 設定は、秒で指定してください。
      パラメータ:
        `erTime` - スリープ時間(s)(初期値:0)

    - #### compareTo

          public int compareTo​(HybsTimerTask other)

      このオブジェクトと指定されたオブジェクトの順序を比較します。 このオブジェクトが指定されたオブジェクトより小さい場合は負の整数、 等しい場合はゼロ、大きい場合は正の整数を返します。
      定義:
        `compareTo` インタフェース内 `java.lang.Comparable<HybsTimerTask>`
      パラメータ:
        `other` - 比較対象の Object
      戻り値:
        このオブジェクトが指定されたオブジェクトより小さい場合は負の整数、等しい場合はゼロ、大きい場合は正の整数
      例外:
        `java.lang.ClassCastException` - 指定されたオブジェクトの型が原因で、この Object と比較できない場合

    - #### toString

          public java.lang.String toString()

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

    - #### equals

          public boolean equals​(java.lang.Object object)

      このオブジェクトと他のオブジェクトが等しいかどうかを示します。
      オーバーライド:
        `equals` クラス内 `java.lang.Object`
      パラメータ:
        `object` - 比較対象の参照オブジェクト
      戻り値:
        引数に指定されたオブジェクトとこのオブジェクトが等しい場合は true、そうでない場合は false

    - #### isAlive

          public boolean isAlive()

      オブジェクトが生存しているかどうかを判定します。
      戻り値:
        生存しているかどうか。true:生存 / false:キャンセル済み

    - #### hashCode

          public int hashCode()

      オブジェクトのハッシュコード値を返します。
      オーバーライド:
        `hashCode` クラス内 `java.lang.Object`
      戻り値:
        このオブジェクトのハッシュコード値

    - #### cancel

          public boolean cancel()

      このタイマータスクのcancel() メソッドをオーバーライドします。
      オーバーライド:
        `cancel` クラス内 `java.util.TimerTask`
      戻り値:
        キャンセルが正常に終了できたかどうか
      関連項目:
        `TimerTask.cancel()`