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

# クラス CalendarFactory

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

public final class CalendarFactory extends Object
事業所(CDJGS) , 年月(YYYYMM) に対応した休日カレンダデータを作成するファクトリクラスです。 カレンダデータは、１日(DY1)～３１日(DY31)までの日付け欄に対して、0:平日 1:休日 という データを持っています。実際には、内部では true:平日 false:休日 という持ち方をします。 (カレンダＤＢは、文字列ですが、内部で持つ場合は、数字で管理しています。) 通常のカレンダでは、月毎に、(２月は、年によって)最大日付けが変わります。 これは、カレンダデータクラスとしては、-1 を設定しておきます。 カレンダデータには、３つのレベルのオブジェクト作成方法が適用されます。 他のリソースの３つのレベルとは異なり、エンジンリソースからの読み取りは 存在しなく、第４の方法が加わった事により、３つの方法になっています。 まず、読込フラグ(FGLOAD)='1'のカレンダデータは、このCalendarFactoryオブジェクトが 構築された時に、すべてキャッシュとして内部メモリに読み取ります。 読込フラグが、'1' 以外のデータは、初期起動時には、メモリにキャッシュされず 実際に使用されるまで、オブジェクトが作成されません。 カレンダの場合、過去の使用される可能性が低いデータまで、キャッシュしない様に、 このフラグを使用して、メモリの節約を図ることが可能になります。 読込フラグ(FGLOAD)自動設定機能を使用すれば、読み取ったラベルデータに対して、 読込フラグ(FGLOAD)に '1' を自動的にセットします。この機能により、一度でも 読み取ったことがあるデータに '1' を付け、次回起動時には、メモリキャッシュさせる 事と、一度も読み取っていないデータを判別して、データ削除等のメンテナンスに 使用することが可能です。 カレンダに限定すれば、当面使用されない先のカレンダ(１年分など)を登録する時に、 読込フラグ(FGLOAD)='0' にしておけば、実際に読み取られるまで、メモリキャッシュ されないため、さらにメモリ効率が向上します。 ２つめの方法は、キャッシュに存在しない場合は、ＤＢから読み取ります。 ３つめは、カレンダ特有の方法で、ＤＢにデータが存在しない場合の設定です。 これは、カレンダテーブル未設定時でも、カレンダとして使用できるように 自動的にカレンダデータを作成します。日曜日を休日として自動設定します。

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

- ## メソッドの概要

  修飾子とタイプ
  メソッド
  説明
  `static void`
  `clear()`
  キャッシュ(プール)から、すべてのオブジェクトをクリアします。
  `static CalendarData`
  `getCalendarData(String cls, String... inArgs)`
  CalendarData オブジェクトを取得します。

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

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

- ## メソッドの詳細

  - ### getCalendarData

    public static CalendarData getCalendarData(String cls, String... inArgs)
    CalendarData オブジェクトを取得します。 作成したCalendarDataオブジェクトは、内部にプールしておき、同じリソース要求が あったときは、プールの CalendarDataを返します。 ＤＢにデータが存在しない場合は、自動でカレンダを作成します。
    パラメータ:
      `cls` - CalendarQueryオブジェクトを名称を指定します。
      `inArgs` - データベース検索時の可変引数 // * @param arg1 データベース検索時の第１引数 // * @param arg2 データベース検索時の第２引数 // * @param arg3 データベース検索時の第３引数 // * @param arg4 データベース検索時の第４引数
    戻り値:
      CalendarDataオブジェクト
    変更履歴:
      3.8.7.0 (2006/12/15) アクセスログ取得の為、ApplicationInfoオブジェクトを設定, 4.0.0.0 (2007/08/29) カレンダーテーブルが存在しない場合のデフォルトのカレンダーデータをシステムリソースで設定する, 6.0.4.0 (2014/11/28) NullPointerException が発生するので、事前にチェックします。, 6.4.3.3 (2016/03/04) Map#computeIfAbsent で対応するのと、HybsSystem#newInstance(String,String)を利用します。, 6.9.9.3 (2018/09/25) 可変引数に変更します(PMD Rather than using a lot of String arguments, consider using a container object for those values.)。

  - ### clear

    public static void clear()
    キャッシュ(プール)から、すべてのオブジェクトをクリアします。