    001package org.opengion.fukurou.util;
    002
    003import org.opengion.fukurou.business.BizLogicHelper;
    004import org.opengion.fukurou.db.TransactionImpl;
    005
    006/**
    007 * bizLogicファイル共通クラス
    008 * bizLogicファイルを処理するための、
    009 * 共通クラスです。
    010 *
    011 * @og.rev 5.10.15.2 (2019/09/20) 新規作成
    012 *
    013 * @version 5
    014 * @author oota
    015 * @since JDK7
    016 */
    017public class BizUtil {
    018
    019        /**
    020         * private コンスタクター
    021         * インスタンスは生成せずに、利用します。
    022         */
    023        private BizUtil() {     }
    024
    025        /**
    026         * bizLogicファイルの実行 bizLogicファイルをホットデプロイして、
    027         * 処理を実行します。
    028         *
    029         * @param srcDir ソースディレクトリ
    030         * @param classDir クラスディレクトリ
    031         * @param isAutoCompile オートコンプリートフラグ
    032         * @param isHotDeploy ホットデプロイフラグ
    033         * @param classPath クラスパス
    034         * @param systemId システムID
    035         * @param logicName ロジック名
    036         * @param keys キーリスト
    037         * @param vals 値リスト
    038         * @throws エラー情報
    039         */
    040        public static void actBizLogic(final String srcDir, final String classDir, final boolean isAutoCompile, final boolean isHotDeploy, final String classPath,
    041                        final String systemId, final String logicName, final String[] keys, final String[] vals) throws Throwable {
    042
    043                // bizクラスファイルのホットデプロイ
    044                HybsLoader ldr = HybsLoaderFactory
    045                                .getLoader(new HybsLoaderConfig(srcDir, classDir, isAutoCompile, isHotDeploy, classPath));
    046
    047                BizLogicHelper helper = new BizLogicHelper(logicName, ldr);
    048
    049                TransactionImpl tran = new TransactionImpl(null);
    050                helper.setTransaction(tran);
    051                helper.setDbid(systemId);
    052                helper.setKeys(keys);
    053                helper.setVals(vals);
    054
    055                try {
    056                        // bizLogic実行
    057                        helper.exec();
    058
    059                        // 正常に実行された場合
    060                        tran.commit();
    061                        tran.finish();
    062                }catch(Throwable e) {
    063                        // エラー発生時
    064                        tran.rollback();
    065                        throw  e;
    066                } finally {
    067                        if (tran != null) {
    068                                tran.close();
    069                                tran.realClose();
    070                        }
    071                }
    072        }
    073}