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    }