nablarch.test.FixedBusinessDateProvider Maven / Gradle / Ivy
The newest version!
package nablarch.test;
import java.util.Map;
import nablarch.core.date.BusinessDateProvider;
import nablarch.core.repository.initialization.Initializable;
import nablarch.core.util.annotation.Published;
/**
* 固定業務日付を提供するクラス。
* 固定業務日付は、{@link #setFixedDate(java.util.Map)}で設定する。
* デフォルト区分は、{@link #setDefaultSegment(String)}で設定する。
* @author Miki Habu
*/
@Published(tag = "architect")
public class FixedBusinessDateProvider implements BusinessDateProvider, Initializable {
/**
* 固定日付
*/
private Map fixedDate;
/**
* デフォルト区分
*/
private String defaultSegment;
/**
* 固定日付を設定する。
*
* @param fixedDate 区分をキー、日付を値としたマップ
*/
public void setFixedDate(Map fixedDate) {
this.fixedDate = fixedDate;
}
/**
* デフォルト区分を設定する。
* @param defaultSegment デフォルト区分
*/
public void setDefaultSegment(String defaultSegment) {
this.defaultSegment = defaultSegment;
}
/**
* {@inheritDoc}
*/
public String getDate() {
return getDate(defaultSegment);
}
/**
* {@inheritDoc}
*/
public Map getAllDate() {
// 固定日付が初期化されていなければ例外
if (fixedDate == null) {
throw new IllegalStateException("fixed date was not initialized.");
}
return fixedDate;
}
/**
* {@inheritDoc}
*/
public String getDate(String segment) {
// 固定日付が初期化されていなければ例外
if (fixedDate == null) {
throw new IllegalStateException("fixed date was not initialized.");
}
// 日付の取得
String ret = fixedDate.get(segment);
// 日付が取得できなければ例外
if (ret == null || ret.length() == 0) {
throw new IllegalStateException(String.format("segment was not found. segment:%s.", segment));
}
return ret;
}
/**
* 本クラスは固定の業務日付を提供するため、このメソッドを使用して業務日付を設定することはできない。
* 固定日付を設定する場合は、{@link #setFixedDate(java.util.Map)}を使用すること。
*
* @param segment 区分値
* @param date 日付
*/
public void setDate(String segment, String date) {
throw new UnsupportedOperationException("fixed date can not change.");
}
/**
* {@inheritDoc}
* nablarch.core.date.BasicBusinessDateProviderと
* コンポーネント設定ファイルの互換性を持たせるため実装。
*/
public void initialize() {
}
}
© 2015 - 2024 Weber Informatics LLC | Privacy Policy