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 */
016package org.opengion.fukurou.business;
017
018import org.opengion.fukurou.util.ErrorMessage;
019
020/**
021 * パラメーターのみを使用する(メインカーソルを定義しない)業務ロジックの構造を定義します。
022 *
023 * このクラスでは、以下に示すメソッドが呼び出されるタイミングのみを定義しています。
024 * メソッドの中身については、サブクラスでオーバーライドし実装して下さい。
025 *
026 * 処理が途中で中断される条件は、以下の3つです。
027 * ①各メソッドの戻り値がfalseの場合
028 * ②チェックメソッド(check())が全ての行で実装された後、エラーメッセージに"エラー"が含まれている場合
029 * ③実行時エラーが発生した場合
030 *
031 *  check()  パラメーターチェック 1回のみ呼び出し
032 *  logic()  メイン処理           1回のみ呼び出し
033 *
034 * @og.rev 5.1.1.0 (2009/12/01) 新規作成
035 * @og.group 業務ロジック
036 *
037 * @version 5.0
038 * @author Hiroki Nakamura
039 * @since JDK1.6,
040 */
041public class BizLogic_ENTRY extends AbstractBizLogic {
042
043        /**
044         * 処理のメインロジックの前処理を記述します。
045         * (ここでは何もしません)
046         *
047         * このメソッド自体は、protected属性であるため、サブクラスから直接参照することができます。
048         * 但し、これは、各業務ロジックで直接参照することを想定したものではなく、BizLogicの
049         * メイン構造を拡張するサブクラスを定義する際に使用することを想定しています。
050         * (この想定がなければ、本来は、package privateにすべきです)
051         * このため、業務ロジックを各実装クラスでは直接参照しないで下さい。
052         */
053        @Override
054        protected void init() {
055                // Document empty method チェック対策
056        }
057
058        /**
059         * 処理のメインロジックを記述します。
060         *
061         * このメソッド自体は、protected属性であるため、サブクラスから直接参照することができます。
062         * 但し、これは、各業務ロジックで直接参照することを想定したものではなく、BizLogicの
063         * メイン構造を拡張するサブクラスを定義する際に使用することを想定しています。
064         * (この想定がなければ、本来は、package privateにすべきです)
065         * このため、業務ロジックを各実装クラスでは直接参照しないで下さい。
066         *
067         * @return 処理が正常終了したか
068         */
069        @Override
070        protected boolean main() {
071                row = 0;
072                if( !check() ){ return false;  }
073                if( getKekka() >= ErrorMessage.NG ) {
074                        return false;
075                }
076
077                if( !logic() ){ return false;  }
078                return true;
079        }
080
081        /**
082         * チェックロジックを定義します。
083         * ここでは何も実装されていません。
084         *
085         * @return 処理が正常終了したか
086         */
087        protected boolean check() {
088                return true;
089        }
090
091        /**
092         * メイン処理を定義します。
093         * ここでは何も実装されていません。
094         *
095         * @return 処理が正常終了したか
096         */
097        protected boolean logic() {
098                return true;
099        }
100}