package sample.context;
import org.springframework.beans.factory.annotation.Autowired;
import lombok.Setter;
import sample.context.actor.*;
/**
* ドメイン処理を行う上で必要となるインフラ層コンポーネントへのアクセサを提供します。
*/
@Setter
public class DomainHelper {
@Autowired
private ActorSession actorSession;
@Autowired
private Timestamper time;
@Autowired
private AppSettingHandler settingHandler;
/** ログイン中のユースケース利用者を取得します。 */
public Actor actor() {
return actorSession().actor();
}
/** スレッドローカルスコープの利用者セッションを取得します。 */
public ActorSession actorSession() {
return actorSession;
}
/** 日時ユーティリティを取得します。 */
public Timestamper time() {
return time;
}
/** アプリケーション設定情報を取得します。 */
public AppSetting setting(String id) {
return settingHandler.setting(id);
}
/** アプリケーション設定情報を設定します。 */
public AppSetting settingSet(String id, String value) {
return settingHandler.update(id, value);
}
}