001    /*
002     * Copyright (c) 2009 The openGion Project.
003     *
004     * Licensed under the Apache License, Version 2.0 (the "License");
005     * you may not use this file except in compliance with the License.
006     * You may obtain a copy of the License at
007     *
008     *     http://www.apache.org/licenses/LICENSE-2.0
009     *
010     * Unless required by applicable law or agreed to in writing, software
011     * distributed under the License is distributed on an "AS IS" BASIS,
012     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
013     * either express or implied. See the License for the specific language
014     * governing permissions and limitations under the License.
015     */
016    package org.opengion.fukurou.business;
017    
018    import org.opengion.fukurou.db.Transaction;
019    import org.opengion.fukurou.util.ErrorMessage;
020    import org.opengion.fukurou.util.HybsLoader;
021    
022    /**
023     * 業務ロジãƒ?‚¯を実行するためã?ヘルパã?クラスですã?
024     *
025     * こã?クラスの役割は、外部パッケージ(タグクラスなど)からのå�?¨®の設定情報ã‚?
026     * 業務ロジãƒ?‚¯の実体ã?クラスにセãƒ?ƒˆすることですã?
027     *
028     * 業務ロジãƒ?‚¯の実体となるクラス(AbstractBizLogic)では、各種設定情報のセãƒ?‚¿ー
029     * メソãƒ?ƒ‰をã?サブクラス(å�?¥­務ロジãƒ?‚¯の実è£?‚¯ラス)からéš?”½するため、パãƒ?‚±ージ
030     * プライベã?トで定義してã�?�¾すã?
031     *
032     * こã?ため、外部クラスから、直接設定情報をセãƒ?ƒˆすることができなã�?�Ÿめã?こã?ヘルパã?
033     * クラスを介して、各種æƒ??をセãƒ?ƒˆしてã�?�¾すã?
034     *
035     * @og.rev 5.1.1.0 (2009/12/01) 新規作æ?
036     * @og.group 業務ロジãƒ?‚¯
037     *
038     * @version 5.0
039     * @author Hiroki Nakamura
040     * @since JDK1.6,
041     */
042    public class BizLogicHelper {
043    
044    //      private HybsLoader loader = null;
045    //      private AbstractBizLogic logic = null;
046            private final AbstractBizLogic logic ;          // 5.1.9.0 (2010/08/01)
047    
048            /**
049             * コンストラクターを定義してã�?�¾すã?
050             *
051             * @param name 業務ロジãƒ?‚¯のクラスå�?
052             * @param ldr クラスローãƒ??
053             */
054            public BizLogicHelper( final String name, final HybsLoader ldr ) {
055    //              loader = ldr;
056    //              logic = (AbstractBizLogic)loader.newInstance( name );
057                    logic = (AbstractBizLogic)ldr.newInstance( name );
058            }
059    
060    //      /**
061    //       * DBのコネクションオブジェクトをæŒ?®šしますã?
062    //       * å�?®Ÿè£?‚¯ラスでは、コネクションのcommit,rollbackは行われませんã€?
063    //       * (全てのDB処ç�??ã€?つのトランザクションとして処ç�?�•れますã?)
064    //       * こã?ため、commit,rollbackは呼び出しå?で行うå¿?¦�がありますã?
065    //       * こã?メソãƒ?ƒ‰はã€?度しかセãƒ?ƒˆすることができませんã€?回以上呼び出しするとエラーになりますã?
066    //       *
067    //       * @param cn DB接ç¶?
068    //       */
069    //      public void setConnection( final Connection cn ) {
070    //              logic.setConnection( cn );
071    //      }
072    
073            /**
074             * DBのトランザクションオブジェクトをæŒ?®šしますã?
075             * å�?®Ÿè£?‚¯ラスでは、コネクションのcommit,rollbackは行われませんã€?
076             * (全てのDB処ç�??ã€?つのトランザクションとして処ç�?�•れますã?)
077             * こã?ため、commit,rollbackは呼び出しå?で行うå¿?¦�がありますã?
078             * こã?メソãƒ?ƒ‰はã€?度しかセãƒ?ƒˆすることができませんã€?回以上呼び出しするとエラーになりますã?
079             *
080             * @og.rev 5.1.9.0 (2010/08/01) 新規作æ?
081             *
082             * @param tran トランザクション
083             */
084            public void setTransaction( final Transaction tran ) {
085                    logic.setTransaction( tran );
086            }
087    
088            /**
089             * 接続å?IDを指定しますã?
090             * こã?メソãƒ?ƒ‰はã€?度しかセãƒ?ƒˆすることができませんã€?回以上呼び出しするとエラーになりますã?
091             *
092             * @og.rev 5.1.9.0 (2010/08/01) 新規作æ?
093             *
094             * @param id 接続å?ID
095             */
096            public void setDbid( final String id ) {
097                    logic.setDbid( id );
098            }
099    
100            /**
101             * 業務ロジãƒ?‚¯のクラスをロードするためã?クラスローãƒ??をセãƒ?ƒˆしますã?
102             * こã?メソãƒ?ƒ‰はã€?度しかセãƒ?ƒˆすることができませんã€?回以上呼び出しするとエラーになりますã?
103             *
104             * @param ldr クラスローãƒ??
105             */
106            public void setLoader( final HybsLoader ldr ) {
107                    logic.setLoader( ldr );
108            }
109    
110            /**
111             * 配å?型テーブルモãƒ?ƒ«をセãƒ?ƒˆしますã?
112             * こã?メソãƒ?ƒ‰はã€?度しかセãƒ?ƒˆすることができませんã€?回以上呼び出しするとエラーになりますã?
113             *
114             * @param tbl 配å?型テーブルモãƒ?ƒ«
115             */
116            public void setTable( final ArrayTableModel tbl ) {
117                    logic.setTable( tbl );
118            }
119    
120            /**
121             * 固定å?のキーをCSV形式でæŒ?®šしますã?
122             * こã?メソãƒ?ƒ‰はã€?度しかセãƒ?ƒˆすることができませんã€?回以上呼び出しするとエラーになりますã?
123             *
124             * @param ks キー
125             */
126            public void setKeys( final String[] ks ) {
127                    logic.setKeys( ks );
128            }
129    
130            /**
131             * 固定å?の値をCSV形式でæŒ?®šしますã?
132             * こã?メソãƒ?ƒ‰はã€?度しかセãƒ?ƒˆすることができませんã€?回以上呼び出しするとエラーになりますã?
133             *
134             * @param vs 値
135             */
136            public void setVals( final String[] vs ) {
137                    logic.setVals( vs );
138            }
139    
140            /**
141             * こã?処ç�??実行ユーザーIDを指定しますã?
142             *
143             * @param id 実行ユーザーID
144             */
145            public void setUserId( final String id ) {
146                    logic.setUserId( id );
147            }
148    
149            /**
150             * 親(呼び出ã�?PGIDを指定しますã?
151             *
152             * @param id 親PGID
153             */
154            public void setParentPgId( final String id ) {
155                    logic.setParentPgId( id );
156            }
157    
158            /**
159             * ãƒ?ƒ�ãƒ?‚°モードにしますã?
160             */
161            public void setDebug() {
162                    logic.setDebug();
163            }
164    
165            /**
166             * ãƒ?ƒ�ãƒ?‚°メãƒ?‚»ージを取得しますã?
167             *
168             * @return      ãƒ?ƒ�ãƒ?‚°メãƒ?‚»ージ
169             */
170            public String getDebugMsg() {
171                    return logic.getDebugMsg();
172            }
173    
174            /**
175             * 処ç�?‚’実行しますã?
176             * 処ç�??方法ã?、main()メソãƒ?ƒ‰により定義されますã?
177             * 実è£?‚¯ラスで発生したå?ての例外ã?、Throwableオブジェクトとしてスローされますã?
178             * 呼び出しå?では、例外を確実にcatchして、commit,rollbackを行ってくださいã€?
179             *
180             * @return      処ç�?�Œ成功したかどã�?�‹
181             * @throws Throwable 実行時の全エラーを上位に転送しますã?
182             */
183            public boolean exec() throws Throwable {
184                    return logic.exec();
185            }
186    
187            /**
188             * 結果スãƒ??タスを返しますã?
189             *
190             * @return      結果スãƒ??タス
191             */
192            public int getKekka() {
193                    return logic.getKekka();
194            }
195    
196            /**
197             * エラーメãƒ?‚»ージオブジェクトを返しますã?
198             *
199             * @return      エラーメãƒ?‚»ージ
200             */
201            public ErrorMessage getErrMsg() {
202                    return logic.getErrMsg();
203            }
204    
205            /**
206             * 業務ロジãƒ?‚¯の戻りå?を返しますã?
207             *
208             * @return      戻りå?
209             */
210            public String getReturn() {
211                    return logic.getReturn();
212            }
213    
214            /**
215             * こã?クラスは、テーブルモãƒ?ƒ«が外部からæŒ?®šされてã�?‚‹å¿?¦�ã?ありませんã€?
216             *
217             * @see AbstractBizLogic#isRequireTable()
218             *
219             * @return      ãƒ??ブルモãƒ?ƒ«が外部からセãƒ?ƒˆされるå¿?¦�があるかどã�?�‹
220             */
221            public boolean isRequireTable() {
222                    return logic.isRequireTable();
223            }
224    }