2015年7月19日日曜日

[メタデータエディタ]UpdateMetaDataServiceImpl

メタデータ更新サービスの実装クラス。

package service.impl;

import service.DomainDrivenService;
import service.UpdateMetaDataService;
import service.param.ServiceInputParameter;
import service.param.ServiceOutputParameter;
import service.param.SipUpdateMetaDataService;
import service.param.SopUpdateMetaDataService;
import util.CopyUtil;
import domain.MetaDataDomain;
import domain.MetaDataRepository;
import dto.MetaDataDto;
import entity.MetaData;

/**
 * メタデータ更新サービス(実装)
 */
public class UpdateMetaDataServiceImpl implements DomainDrivenService,
        UpdateMetaDataService {

    /** メタデータリポジトリ */
    private MetaDataRepository metaDataRepository = null;

    public MetaDataRepository getMetaDataRepository() {
        return metaDataRepository;
    }

    public void setMetaDataRepository(MetaDataRepository metaDataRepository) {
        this.metaDataRepository = metaDataRepository;
    }

    @Override
    public ServiceOutputParameter doService(ServiceInputParameter sip) {

        // 入力パラメータからメタデータDTOを取得する
        MetaDataDto metaDataDto = ((SipUpdateMetaDataService) sip)
                .getMetaDataDto();

        // サービスを実行する
        doService(metaDataDto);

        // サービス出力パラメータを作成する
        SopUpdateMetaDataService sop = new SopUpdateMetaDataService();

        // 出力パラメータを作成し、呼び出し側に戻す
        return sop;
    }

    /*
     * (非 Javadoc)
     *
     * @see service.UpdateMetaDataService#doService(dto.MetaDataDto)
     */
    @Override
    public void doService(MetaDataDto metaDataDto) {

        // DTOからエンティティへの詰め替えを行う
        MetaData metaData = new MetaData();
        CopyUtil.copy(metaDataDto, metaData);

        // ドメインを取得する
        MetaDataDomain domain = metaDataRepository.getDomain(metaDataDto
                .getMetaDataId());

        // ドメインの更新処理を呼び出す
        domain.update(metaData);
    }
}

0 件のコメント:

コメントを投稿