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