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    /**
019     * カーソル定義による配?型テーブルモ?をメインカーソルとした業務ロジ?の構?を定義します?
020     *
021     * 配?型テーブルモ?につ?は、cursor()メソ?を実?より定義します?
022     * cursor()メソ?を実?、この戻り?をSQL?して実行し、その結果セ?から配??
023     * ??ブルモ?を生成し、これをメインカーソルとして使用します?
024     * 配?型テーブルモ?が定義されて???合?エラーとなります?
025     *
026     * こ?クラスでは、以下に示すメソ?が呼び出されるタイミングのみを定義して?す?
027     * メソ?の中身につ?は、{@link BizLogic_TABLE}を参照して下さ??
028     *
029     * @og.rev 5.1.1.0 (2009/12/01) 新規作?
030     * @og.group 業務ロジ?
031     *
032     * @version 5.0
033     * @author Hiroki Nakamura
034     * @since JDK1.6,
035     */
036    public class BizLogic_CURSOR extends BizLogic_TABLE {
037    
038            /**
039             * 配?型テーブルモ?を生成するため?SQL?定義します?
040             * こ?メソ?からSQL?ら返された場合?こ?結果セ?から配?型テーブルモ?を生成し?
041             * メインカーソルとして使用します?
042             *
043             * @return 配?型テーブルモ?を生成するため?SQL?
044             */
045            protected String cursor() {
046                    return null;
047            }
048    
049            /**
050             * 処??メインロジ?の前??記述します?
051             *
052             * @og.rev 5.6.7.0 (2013/07/27) Exception ?throw するとき??、errMsg 変数にセ?します?
053             *
054             * こ?メソ?自体?、protected属?であるため、サブクラスから直接参?することができます?
055             * ?、これ?、各業務ロジ?で直接参?することを想定したものではなく?BizLogicの
056             * メイン構?を拡張するサブクラスを定義する際に使用することを想定して?す?
057             * (こ?想定がなければ、本来は、package privateにすべきで?
058             * こ?ため、業務ロジ?を各実?ラスでは直接参?しな?下さ??
059             */
060            @Override
061            protected void init() {
062                    if( cursor() == null ) {
063                            // 5.6.7.0 (2013/07/27) Exception ?throw するとき??、errMsg 変数にセ?します?
064    //                      throw new RuntimeException( "カーソルが定義されて?せん" );
065                            String errMsg = "カーソルが定義されて?せん? ;
066                            throw new RuntimeException( errMsg );
067                    }
068                    table = createTableBySql( cursor() );
069            }
070    
071            /**
072             * こ?クラスは、テーブルモ?が外部から?されて???ありません?
073             *
074             * こ?メソ?自体?、protected属?であるため、サブクラスから直接参?することができます?
075             * ?、これ?、各業務ロジ?で直接参?することを想定したものではなく?BizLogicの
076             * メイン構?を拡張するサブクラスを定義する際に使用することを想定して?す?
077             * (こ?想定がなければ、本来は、package privateにすべきで?
078             * こ?ため、業務ロジ?を各実?ラスでは直接参?しな?下さ??
079             *
080             * @see AbstractBizLogic#isRequireTable()
081             *
082             * @return      ??ブルモ?が外部から?されて?かど?(常にfalse)
083             */
084            @Override
085            protected boolean isRequireTable() {
086                    return false;
087            }
088    }