メタデータ新規作成サービスの実装クラス。
以降のサービス実装クラスは別掲記事にて記載したドメイン駆動サービス(DomainDrivenService)クラスも実装している。(試験的に実装)
package service.impl;
import service.CreateMetaDataService;
import service.DomainDrivenService;
import service.param.ServiceInputParameter;
import service.param.ServiceOutputParameter;
import service.param.SipCreateMetaDataService;
import service.param.SopCreateMetaDataService;
import util.CopyUtil;
import domain.MetaDataDomain;
import domain.MetaDataRepository;
import dto.MetaDataDto;
import entity.MetaData;
/**
* メタデータ新規作成サービス(実装)
*/
public class CreateMetaDataServiceImpl implements DomainDrivenService,
CreateMetaDataService {
/** メタデータリポジトリ */
private MetaDataRepository metaDataRepository = null;
public MetaDataRepository getMetaDataRepository() {
return metaDataRepository;
}
public void setMetaDataRepository(MetaDataRepository metaDataRepository) {
this.metaDataRepository = metaDataRepository;
}
/*
* (非 Javadoc)
*
* @see
* service.DomainDrivenService#doService(service.param.ServiceInputParameter
* )
*/
@Override
public ServiceOutputParameter doService(ServiceInputParameter sip) {
// 入力パラメータからメタデータDTOを取得する
MetaDataDto metaDataDto = ((SipCreateMetaDataService) sip)
.getMetaDataDto();
// サービスを実行する
Integer metaDataId = doService(metaDataDto);
// サービス出力パラメータを作成する
SopCreateMetaDataService sop = new SopCreateMetaDataService(metaDataId);
// 出力パラメータを作成し、呼び出し側に戻す
return sop;
}
/*
* (非 Javadoc)
*
* @see service.CreateMetaDataService#doService(dto.MetaDataDto)
*/
@Override
public Integer doService(MetaDataDto metaDataDto) {
// DTOからエンティティへの詰め替えを行う
MetaData metaData = new MetaData();
CopyUtil.copy(metaDataDto, metaData);
// ドメインを生成する
MetaDataDomain metaDataDomain = metaDataRepository
.createDomain(metaData);
// 新規作成したメタデータのメタデータIDを呼び出し側に戻す
CopyUtil.copy(metaDataDomain.getEntity(), metaDataDto);
return metaDataDomain.getEntity().getMetaDataId();
}
}
0 件のコメント:
コメントを投稿