2015年7月19日日曜日

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

子サブスタンス検索サービスの実装クラス。

package service.impl;

import java.util.ArrayList;
import java.util.List;

import service.DomainDrivenService;
import service.FindChildSubstanceService;
import service.param.ServiceInputParameter;
import service.param.ServiceOutputParameter;
import service.param.SipFindChildSubstanceService;
import service.param.SopFindChildSubstanceService;
import util.CopyUtil;
import domain.SubstanceDomain;
import domain.SubstanceRepository;
import dto.SubstanceDto;

/**
 * 子サブスタンス検索サービス(実装)
 */
public class FindChildSubstanceServiceImpl implements DomainDrivenService,
        FindChildSubstanceService {

    /** サブスタンスリポジトリ */
    private SubstanceRepository substanceRepository = null;

    public SubstanceRepository getSubstanceRepository() {
        return substanceRepository;
    }

    public void setSubstanceRepository(SubstanceRepository substanceRepository) {
        this.substanceRepository = substanceRepository;
    }

    @Override
    public ServiceOutputParameter doService(ServiceInputParameter sip) {

        // 入力パラメータからサブスタンスIDを取得する
        Integer substanceId = ((SipFindChildSubstanceService) sip)
                .getSubstanceId();

        // サービスを実行する
        List<SubstanceDto> substanceDtoList = doService(substanceId);

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

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

    /*
     * (非 Javadoc)
     *
     * @see service.FindChildSubstanceService#doService(java.lang.Integer)
     */
    @Override
    public List<SubstanceDto> doService(Integer substanceId) {

        // 子サブスタンス検索を実行する
        List<SubstanceDomain> substanceDomainList = substanceRepository
                .findChildSubstance(substanceId);

        // サブスタンスドメインリストをサブスタンスDTOリストに変換する
        List<SubstanceDto> list = new ArrayList<SubstanceDto>();
        for (SubstanceDomain domain : substanceDomainList) {
            SubstanceDto dto = new SubstanceDto();
            CopyUtil.copy(domain.getEntity(), dto);
            list.add(dto);
        }

        // 作成したメタデータDTOリストを呼び出し側に戻す
        return list;
    }
}

0 件のコメント:

コメントを投稿