サブスタンス新規作成サービスの実装クラス。
package service.impl;
import service.CreateSubstanceService;
import service.DomainDrivenService;
import service.param.ServiceInputParameter;
import service.param.ServiceOutputParameter;
import service.param.SipCreateSubstanceService;
import service.param.SopCreateSubstanceService;
import util.CopyUtil;
import domain.SubstanceDomain;
import domain.SubstanceRepository;
import dto.SubstanceDto;
import entity.Substance;
/**
* サブスタンス新規作成サービス(実装)
*/
public class CreateSubstanceServiceImpl implements DomainDrivenService,
CreateSubstanceService {
/** サブスタンスリポジトリ */
private SubstanceRepository substanceRepository = null;
public SubstanceRepository getSubstanceRepository() {
return substanceRepository;
}
public void setSubstanceRepository(SubstanceRepository substanceRepository) {
this.substanceRepository = substanceRepository;
}
/*
* (非 Javadoc)
*
* @see
* service.DomainDrivenService#doService(service.param.ServiceInputParameter
* )
*/
@Override
public ServiceOutputParameter doService(ServiceInputParameter sip) {
// 入力パラメータからサブスタンスDTOを取得する
SubstanceDto substanceDto = ((SipCreateSubstanceService) sip)
.getSubstanceDto();
// サービスを実行する
Integer substanceId = doService(substanceDto);
// サービス出力パラメータを作成する
SopCreateSubstanceService sop = new SopCreateSubstanceService(
substanceId);
// 出力パラメータを作成し、呼び出し側に戻す
return sop;
}
/*
* (非 Javadoc)
*
* @see service.CreateSubstanceService#doService(dto.SubstanceDto)
*/
@Override
public Integer doService(SubstanceDto substanceDto) {
// DTOからエンティティへの詰め替えを行う
Substance substance = new Substance();
CopyUtil.copy(substanceDto, substance);
// ドメインを生成する
SubstanceDomain substanceDomain = substanceRepository
.createDomain(substance);
// 新規作成したメタデータのメタデータIDを呼び出し側に戻す
CopyUtil.copy(substanceDomain.getEntity(), substanceDto);
return substanceDomain.getEntity().getSubstanceId();
}
}
0 件のコメント:
コメントを投稿