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         * @og.rev 6.4.2.0 (2016/01/29) PMD refactoring. Each class should declare at least one constructor.
047         */
048        public BizLogic_ENTRY() { super(); }            // これも、自動的に呼ばれるが、空のメソッドを作成すると警告されるので、明示的にしておきます。
049
050        /**
051         * 処理のメインロジックの前処理を記述します。
052         * (ここでは何もしません)
053         *
054         * このメソッド自体は、protected属性であるため、サブクラスから直接参照することができます。
055         * 但し、これは、各業務ロジックで直接参照することを想定したものではなく、BizLogicの
056         * メイン構造を拡張するサブクラスを定義する際に使用することを想定しています。
057         * (この想定がなければ、本来は、package privateにすべきです)
058         * このため、業務ロジックを各実装クラスでは直接参照しないで下さい。
059         */
060        @Override       // AbstractBizLogic
061        protected void init() {
062                // Document empty method チェック対策
063        }
064
065        /**
066         * 処理のメインロジックを記述します。
067         *
068         * このメソッド自体は、protected属性であるため、サブクラスから直接参照することができます。
069         * 但し、これは、各業務ロジックで直接参照することを想定したものではなく、BizLogicの
070         * メイン構造を拡張するサブクラスを定義する際に使用することを想定しています。
071         * (この想定がなければ、本来は、package privateにすべきです)
072         * このため、業務ロジックを各実装クラスでは直接参照しないで下さい。
073         *
074         * @return 処理が正常終了したか
075         */
076        @Override       // AbstractBizLogic
077        protected boolean main() {
078                row = 0;
079
080                // 6.4.1.1 (2016/01/16) PMD refactoring. A method should have only one exit point, and that should be the last statement in the method
081                // 条件判定注意
082                return check() && getKekka() < ErrorMessage.NG && logic();
083        }
084
085        /**
086         * チェックロジックを定義します。
087         * ここでは何も実装されていません。
088         *
089         * @return 処理が正常終了したか
090         */
091        protected boolean check() {
092                return true;
093        }
094
095        /**
096         * メイン処理を定義します。
097         * ここでは何も実装されていません。
098         *
099         * @return 処理が正常終了したか
100         */
101        protected boolean logic() {
102                return true;
103        }
104}