パッケージ org.opengion.hayabusa.resource

# クラス CalendarDBData

java.lang.Object
org.opengion.hayabusa.resource.CalendarDBData

すべての実装されたインタフェース:
  `CalendarData`

class CalendarDBData extends Object implements CalendarData
事業所(CDJGS) 毎の休日カレンダデータオブジェクトです。 カレンダデータは、指定の事業所に関して、すべての休日情報を持っています。 元のカレンダテーブル(GE13)の １日(DY1)～３１日(DY31)までの日付け欄に対して、 休日日付けの 年月日 に対する、休日かどうかを判断できるだけの情報を保持します。 具体的には、休日の年月日に対する List を持つことになります。 このクラスは、パッケージプライベートになっています。このオブジェクトを作成するのは、 CalendarFactory#getCalendarData( String ) で行います。引数は、事業所コード(cdjgs)です。 このカレンダオブジェクトを使用するには、事業所カレンダテーブル(GE13) を使用する ことを許可しておく必要があります。 許可は、システムパラメータ の USE_CALENDAR_DATABASE 属性を true に 設定します(初期値は、互換性優先の false です。) この、カレンダテーブルは、GE13 固定です。他のテーブルを使用する場合は、 ビュー等を作成する必要があります。 カレンダテーブル は、通常 DEFAULT DBIDを使用しますが、RESOURCE_CALENDAR_DBID を設定することで、他のデータベースから読み取ることが可能になります。

変更履歴:
  3.6.0.0 (2004/09/17) 新規作成
機能分類
  リソース管理
導入されたバージョン:
  JDK5.0,

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

  コンストラクタ
  コンストラクタ
  説明
  `CalendarDBData(String[][] data, boolean isFlat)`
  コンストラクタ 配列文字列のデータを元に、CalendarDBDataオブジェクトを構築します。

- ## メソッドの概要

  修飾子とタイプ
  メソッド
  説明
  `Calendar`
  `getAfterDay(Calendar start, int span)`
  指定の開始日に平日のみ期間を加算して求められる日付けを返します。
  `int`
  `getKadoubisu(Calendar start, Calendar end)`
  指定の開始、終了日の期間に、平日(稼働日)が何日あるか求めます。
  `boolean`
  `isContainedToday(Calendar day, int scope)`
  指定の日付けから、範囲の間に、本日を含むかどうかを返します。
  `boolean`
  `isHoliday(Calendar day)`
  指定の日付けが、休日かどうかを返します。
  `String`
  `toString()`
  オブジェクトの識別子として，詳細なカレンダ情報を返します。

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

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

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

  - ### CalendarDBData

    CalendarDBData(String[][] data, boolean isFlat)
    コンストラクタ 配列文字列のデータを元に、CalendarDBDataオブジェクトを構築します。 このコンストラクタは、他のパッケージから呼び出せないように、 パッケージプライベートにしておきます。 年月データは、連続である必要があります。 途中に抜けがあるかどうかのチェックを行います。
    パラメータ:
      `data` - データベース検索データ
      `isFlat` - 縦持ち(false)か横持ち(true)の区別

- ## メソッドの詳細

  - ### isHoliday

    public boolean isHoliday(Calendar day)
    指定の日付けが、休日かどうかを返します。 指定の日付けが、データベースに設定されていない場合は、すべて休日を 返すことで、存在しない事を示します。
    定義:
      `isHoliday` インタフェース内 `CalendarData`
    パラメータ:
      `day` - Calendar 指定の日付け
    戻り値:
      休日：true それ以外：false

  - ### isContainedToday

    public boolean isContainedToday(Calendar day, int scope)
    指定の日付けから、範囲の間に、本日を含むかどうかを返します。 指定の日付けが、キャッシュしているデータの最大と最小の間に 存在しない場合は、常に false になります。 判定は、年月日の項目のみで比較し、時分秒は無視します。
    定義:
      `isContainedToday` インタフェース内 `CalendarData`
    パラメータ:
      `day` - Calendar 指定の開始日付け
      `scope` - 範囲の日数
    戻り値:
      本日：true それ以外：false
    変更履歴:
      3.7.1.1 (2005/05/31) 新規追加, 3.8.8.6 (2007/04/20) today を毎回求めます。(キャッシュ対策)

  - ### getKadoubisu

    public int getKadoubisu(Calendar start, Calendar end)
    指定の開始、終了日の期間に、平日(稼働日)が何日あるか求めます。 調査月が、データベース上に存在していない場合は、エラーとします。 開始と終了が同じ日の場合は、１を返します。
    定義:
      `getKadoubisu` インタフェース内 `CalendarData`
    パラメータ:
      `start` - Calendar 開始日付け(稼働日に含めます)
      `end` - Calendar 終了日付け(稼働日に含めます)
    戻り値:
      稼働日数

  - ### getAfterDay

    public Calendar getAfterDay(Calendar start, int span)
    指定の開始日に平日のみ期間を加算して求められる日付けを返します。 これは、実稼働日計算に使用します。 例えば、start=20040810 , span=5 で、休日がなければ、10,11,12,13,14 となり、 20040815 を返します。 指定の日付けや、期間加算後の日付けが、キャッシュしているデータの 最大と最小の間に存在しない場合は、エラーとします。
    定義:
      `getAfterDay` インタフェース内 `CalendarData`
    パラメータ:
      `start` - Calendar 開始日付け(YYYYMMDD 形式)
      `span` - 稼動期間
    戻り値:
      開始日から稼動期間を加算した日付け(当日を含む)

  - ### toString

    public String toString()
    オブジェクトの識別子として，詳細なカレンダ情報を返します。
    オーバーライド:
      `toString` クラス内 `Object`
    戻り値:
      詳細なカレンダ情報
    このﾒｿｯﾄﾞは、nullを返しません