nablarch.core.date
クラス BasicBusinessDateProvider

java.lang.Object
  上位を拡張 nablarch.core.date.BasicBusinessDateProvider
すべての実装されたインタフェース:
nablarch.core.date.BusinessDateProvider, nablarch.core.repository.initialization.Initializable

public class BasicBusinessDateProvider
extends java.lang.Object
implements nablarch.core.date.BusinessDateProvider, nablarch.core.repository.initialization.Initializable

業務日付を提供するクラス。

本クラスでは、テーブルで管理されている業務日付を取得する機能を提供する。

業務日付の取得要求の都度データベースアクセスを行うとパフォーマンス上問題となる場合がある。 このため、cacheEnabledプロパティを使用して業務日付のキャッシュ有無を設定でき、 データベースアクセスを最小限に抑えることが可能となっている。

cacheEnabledにtrueを設定するとキャッシュが有効になり、 初回アクセス時にテーブルの情報がThreadContextにキャッシュされる。 キャッシュされた値の生存期間は、ThreadContextがクリアされるか、 スレッドが破棄されるかのどちらかである。

例えば、画面オンライン処理の場合は、リクエスト受付時にThreadContextの情報がクリアされるため、 業務日付のキャッシュ有効期間はクライアントからの1リクエストを処理する間となる。

業務日付を管理するテーブルのレイアウトを以下に示す。

カラム名 説明
区分 業務日付を特定するための区分
例えば、画面処理とバッチ処理で日付の更新タイミングが異なる場合は、
画面処理用とバッチ処理用の区分を設けて日付を管理すれば良い。
日付 区分に対応する業務日付

なお、本クラスでは特定の区分の業務日付をリポジトリ(SystemRepository) に登録した日付で上書きする機能を提供する。 この機能は、バッチアプリケーションなどで指定した日付で業務処理を実行したい場合に使用する。
リポジトリに登録された日付の形式が不正な場合、初回アクセス時にRuntimeExceptionを送出する。

リポジトリには、下記形式で上書きを行いたい日付を登録すること。

キー
BasicBusinessDateProvider.区分値 上書く日付
以下に例を示す。:
 区分値:00の日付を20110101に上書きする場合

 システムプロパティに「BasicBusinessDateProvider.00=20110101」を設定しプロセスを起動する。
 java -DBasicBusinessDateProvider.00=20110101 Main
 
 


コンストラクタの概要
BasicBusinessDateProvider()
           
 
メソッドの概要
 java.util.Map<java.lang.String,java.lang.String> getAllDate()
          
 java.lang.String getDate()
           リポジトリに日付が設定されている場合は、その日付を返却する。
 java.lang.String getDate(java.lang.String segment)
           リポジトリに日付が設定されている場合は、その日付を返却する。
 void initialize()
          初期化処理を行う。
 void setCacheEnabled(boolean cache)
          キャッシュ有無を設定する。
 void setDate(java.lang.String segment, java.lang.String date)
          

指定された区分に対応する業務日付を更新する。

 void setDateColumnName(java.lang.String dateColumnName)
          業務日付テーブルの日付カラム物理名を設定する。
 void setDbTransactionManager(nablarch.core.db.transaction.SimpleDbTransactionManager transactionManager)
          トランザクションマネージャを設定する。
 void setDbTransactionName(java.lang.String dbTransactionName)
          トランザクション名称を設定する。
 void setDefaultSegment(java.lang.String defaultSegment)
          区分省略時のデフォルト値を設定する。
 void setSegmentColumnName(java.lang.String segmentColumnName)
          業務日付テーブルの区分カラム物理名を設定する。
 void setTableName(java.lang.String tableName)
          業務日付テーブル物理名を設定する。
 
クラス java.lang.Object から継承されたメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

コンストラクタの詳細

BasicBusinessDateProvider

public BasicBusinessDateProvider()
メソッドの詳細

setTableName

public void setTableName(java.lang.String tableName)
業務日付テーブル物理名を設定する。

パラメータ:
tableName - 業務日付テーブル物理名

setSegmentColumnName

public void setSegmentColumnName(java.lang.String segmentColumnName)
業務日付テーブルの区分カラム物理名を設定する。

パラメータ:
segmentColumnName - 業務日付テーブルの区分カラム物理名

setDateColumnName

public void setDateColumnName(java.lang.String dateColumnName)
業務日付テーブルの日付カラム物理名を設定する。

パラメータ:
dateColumnName - 業務日付テーブルの日付カラム物理名

setDefaultSegment

public void setDefaultSegment(java.lang.String defaultSegment)
区分省略時のデフォルト値を設定する。

パラメータ:
defaultSegment - 区分省略時のデフォルト値

setCacheEnabled

public void setCacheEnabled(boolean cache)
キャッシュ有無を設定する。
本設定を省略した場合のデフォルト動作は、キャッシュ有りとなる。

パラメータ:
cache - キャッシュをするか否か。(キャッシュを行う場合は、true)

setDbTransactionName

public void setDbTransactionName(java.lang.String dbTransactionName)
トランザクション名称を設定する。

本設定は、デフォルトのトランザクション名(TransactionContext.DEFAULT_TRANSACTION_CONTEXT_KEY) 以外のトランザクション名を使用する場合に設定を行えば良い。

なお、本プロパティに設定したトランザクション名称に紐付くAppDbConnectionが存在しない場合は、 setDbTransactionManager(nablarch.core.db.transaction.SimpleDbTransactionManager)で設定された トランザクションマネージャを使用して、短期的なトランザクションを用いて日付の取得処理を行う。

パラメータ:
dbTransactionName - トランザクション名称。

setDbTransactionManager

public void setDbTransactionManager(nablarch.core.db.transaction.SimpleDbTransactionManager transactionManager)
トランザクションマネージャを設定する。

データベースから日付を取得する際に使用するトランザクションを設定すること。

パラメータ:
transactionManager - トランザクションマネージャ

getDate

public java.lang.String getDate()
リポジトリに日付が設定されている場合は、その日付を返却する。

定義:
インタフェース nablarch.core.date.BusinessDateProvider 内の getDate

getDate

public java.lang.String getDate(java.lang.String segment)
リポジトリに日付が設定されている場合は、その日付を返却する。

定義:
インタフェース nablarch.core.date.BusinessDateProvider 内の getDate

getAllDate

public java.util.Map<java.lang.String,java.lang.String> getAllDate()

定義:
インタフェース nablarch.core.date.BusinessDateProvider 内の getAllDate

setDate

public void setDate(java.lang.String segment,
                    java.lang.String date)
             throws java.lang.IllegalArgumentException

指定された区分に対応する業務日付を更新する。

定義:
インタフェース nablarch.core.date.BusinessDateProvider 内の setDate
例外:
java.lang.IllegalArgumentException - 区分または、業務日付がnullまたは空文字列の場合。 または、指定された業務日付が'yyyyMMdd'形式でない場合。

initialize

public void initialize()
初期化処理を行う。
SQLを組み立てる

定義:
インタフェース nablarch.core.repository.initialization.Initializable 内の initialize