2015年7月19日日曜日

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

サブスタンス削除サービスの実装クラス

package service.impl;

import service.DeleteSubstanceService;
import service.DomainDrivenService;
import service.param.ServiceInputParameter;
import service.param.ServiceOutputParameter;
import service.param.SipDeleteSubstanceService;
import service.param.SopDeleteSubstanceService;
import domain.SubstanceDomain;
import domain.SubstanceRepository;

/**
 * サブスタンス削除サービス(実装)
 */
public class DeleteSubstanceServiceImpl implements DomainDrivenService,
        DeleteSubstanceService {

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

    public SubstanceRepository getSubstanceRepository() {
        return substanceRepository;
    }

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

    /*
     * (非 Javadoc)
     *
     * @see
     * service.DomainDrivenService#doService(service.param.ServiceInputParameter
     * )
     */
    @Override
    public ServiceOutputParameter doService(ServiceInputParameter sip) {

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

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

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

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

    /*
     * (非 Javadoc)
     *
     * @see service.DeleteSubstanceService#doService(java.lang.Integer)
     */
    @Override
    public void doService(Integer substanceId) {

        // ドメインを取得する
        SubstanceDomain domain = substanceRepository.getDomain(substanceId);

        // ドメインの削除処理を呼び出す
        domain.delete();
    }
}

0 件のコメント:

コメントを投稿