2015年7月19日日曜日

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

ルートメタ検索サービスの実装クラス。

package service.impl;

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

import service.DomainDrivenService;
import service.FindRootMetaService;
import service.param.ServiceInputParameter;
import service.param.ServiceOutputParameter;
import service.param.SopFindRootMetaService;
import util.CopyUtil;
import domain.MetaDataDomain;
import domain.MetaDataRepository;
import dto.MetaDataDto;

/**
 * ルートメタ検索サービス(実装)
 */
public class FindRootMetaServiceImpl implements DomainDrivenService,
        FindRootMetaService {

    /** メタデータリポジトリ */
    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) {

        // サービスを実行する
        List<MetaDataDto> metaDataDtoList = doService();

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

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

    /*
     * (非 Javadoc)
     *
     * @see service.FindRootMetaService#doService()
     */
    @Override
    public List<MetaDataDto> doService() {

        // ルートメタ検索を実行する
        List<MetaDataDomain> metaDataDomainList = metaDataRepository
                .findRootMeta();

        // メタデータドメインリストをメタデータDTOリストに変換する
        List<MetaDataDto> list = new ArrayList<MetaDataDto>();
        for (MetaDataDomain domain : metaDataDomainList) {
            MetaDataDto dto = new MetaDataDto();
            CopyUtil.copy(domain.getEntity(), dto);
            list.add(dto);
        }

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

0 件のコメント:

コメントを投稿