2015年7月19日日曜日

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

テンプレートファイルインポートサービスの実装クラス。

package service.impl;

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

import service.DomainDrivenService;
import service.ImportTemplateFileService;
import service.param.ServiceInputParameter;
import service.param.ServiceOutputParameter;
import service.param.SipImportTemplateFileService;
import service.param.SopImportTemplateFileService;
import util.CopyUtil;
import domain.TextConvertDefDomain;
import domain.TextConvertDefRepository;
import dto.TextConvertDefDto;
import entity.TextConvertDef;

/**
 * テンプレートファイルインポートサービス(実装)
 */
public class ImportTemplateFileServiceImpl implements DomainDrivenService,
        ImportTemplateFileService {

    /** テキスト変換定義リポジトリ */
    private TextConvertDefRepository textConvertDefRepository = null;

    public TextConvertDefRepository getTextConvertDefRepository() {
        return textConvertDefRepository;
    }

    public void setTextConvertDefRepository(
            TextConvertDefRepository textConvertDefRepository) {
        this.textConvertDefRepository = textConvertDefRepository;
    }

    @Override
    public ServiceOutputParameter doService(ServiceInputParameter sip) {

        // 入力パラメータからメタデータDTOを取得する
        TextConvertDefDto textConvertDefDto = ((SipImportTemplateFileService) sip)
                .getTextConvertDefDto();

        // サービスを実行する
        List<Integer> textConvertDevIdList = doService(textConvertDefDto);

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

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

    /*
     * (非 Javadoc)
     *
     * @see service.ImportTemplateFileService#doService(dto.TextConvertDefDto)
     */
    @Override
    public List<Integer> doService(TextConvertDefDto textConvertDefDto) {

        // テンプレートファイルの内容をインポートする
        TextConvertDef textConvertDef = new TextConvertDef();
        CopyUtil.copy(textConvertDefDto, textConvertDef);
        List<TextConvertDefDomain> textConvertDefDomainList = textConvertDefRepository
                .importTemplateFile(textConvertDef);

        // 新規作成されたテキスト変換定義のテキスト変換定義IDを呼び出し側に戻す
        List<Integer> idList = new ArrayList<Integer>();
        for (TextConvertDefDomain textConvertDefDomain : textConvertDefDomainList) {
            idList.add(textConvertDefDomain.getEntity().getTextConvertDefId());
        }
        return idList;
    }
}

0 件のコメント:

コメントを投稿