クラス AbstractBizLogic
java.lang.Object
org.opengion.fukurou.business.AbstractBizLogic
- 直系の既知のサブクラス:
BizLogic_ENTRY
,BizLogic_TABLE
業務ロジックを処理するために必要な共通メソッドの実行を行っている抽象クラスです。
メインロジックについては、各サブクラスで実装する必要があります。
- 変更履歴:
- 5.1.1.0 (2009/12/01) 新規作成
- 機能分類
- 業務ロジック
- 導入されたバージョン:
- JDK1.6,
-
フィールドの概要
フィールド修飾子とタイプフィールド説明protected DBFunctionName
データベースファンクションprotected static final int
エラーメッセージをセットする際に使用します 8protected static final int
エラーメッセージをセットする際に使用します 2protected static final int
エラーメッセージをセットする際に使用します 0protected static final int
エラーメッセージをセットする際に使用します 9(package private) int
配列型テーブルモデルの現在の処理行 行番号自体は、protected属性であるため、サブクラスから直接参照することができます。protected static final int
エラーメッセージをセットする際に使用します 1 -
コンストラクタの概要
コンストラクタ -
メソッドの概要
修飾子とタイプメソッド説明protected final boolean
子ロジックを実行します。protected final void
デバッグメッセージを追加します。protected final void
行指定でエラーメッセージを追加します。protected final void
エラーメッセージを追加します。(package private) boolean
exec()
処理を実行します。protected final boolean
マスタチェックを行います。protected final boolean
マスタチェックを行います。protected final boolean
exist
(String type, String tblId, String ns, String vs, String conNs, String conVs, boolean isErrThrow) マスタチェックを行います。(package private) String
デバッグメッセージを取得します。(package private) ErrorMessage
エラーメッセージオブジェクトを返します。(package private) int
getKekka()
結果ステータスを返します。protected final String[]
getNames()
テーブルのカラム名の一覧を配列形式で返します。(package private) String
業務ロジックの戻り値を返します。変数に関連付けた値を、返します。getTable()
配列型テーブルモデルを取得します。protected Transaction
DBのトランザクションオブジェクトを返します。protected String[][]
指定のカラム名引数に相当するデータを2重配列で返します。protected abstract void
init()
処理のメインロジックの前処理を記述します。protected final boolean
isDebug()
デバッグモードかどうかを返します。(package private) boolean
業務ロジックを実行するために、テーブルモデルが外部からセットされる必要があるか を返します。protected abstract boolean
main()
処理のメインロジックを記述します。protected final boolean
パラメーターの必須チェックを行います。protected void
検索用SQLを実行して、Consumer#accept に検索結果の配列を繰り返しセットします。protected final void
業務ロジックの戻り値をセットします。protected final int
シーケンス名よりシーケンスオブジェクトを検索し、次の値を取り出します。protected final void
指定されたキーで値(double型)を登録します。protected final void
指定されたキーで値(int型)を登録します。protected final void
指定されたキーで値を登録します。(package private) void
接続先IDを指定します。(package private) void
setDebug()
デバッグモードにします。(package private) void
固定値のキー配列を指定します。(package private) void
setLoader
(HybsLoader ldr) 業務ロジックのクラスをロードするためのクラスローダーをセットします。(package private) void
setParentPgId
(String id) 親(呼び出し)PGIDを指定します。protected final void
変数に関連付けた値を、返します。(package private) void
配列型テーブルモデルをセットします。(package private) void
DBのトランザクションオブジェクトを指定します。(package private) void
この処理の実行ユーザーIDを指定します。(package private) void
固定値の値配列を指定します。protected final void
SQLを実行します。protected final double[][]
str2dblVals
(String[][] vals) 文字列配列をdouble配列に変換します。protected final String
指定されたキーの値を返します。protected final double
指定されたキーの値をdouble型に変換して返します。protected final int
指定されたキーの値をint型に変換して返します。protected final String
指定されたキーの値を返します。protected final String[]
varKeys()
パラメーターのキー一覧を配列形式で返します。
-
フィールド詳細
-
OK
エラーメッセージをセットする際に使用します 0- 関連項目:
-
WARNING
エラーメッセージをセットする際に使用します 1- 関連項目:
-
NG
エラーメッセージをセットする際に使用します 2- 関連項目:
-
EXCEPTION
エラーメッセージをセットする際に使用します 8- 関連項目:
-
ORCL_ERR
エラーメッセージをセットする際に使用します 9- 関連項目:
-
dbName
データベースファンクション -
row
int row配列型テーブルモデルの現在の処理行 行番号自体は、protected属性であるため、サブクラスから直接参照することができます。 但し、これは、各業務ロジックで直接参照することを想定したものではなく、BizLogicの メイン構造を拡張するサブクラスを定義する際に使用することを想定しています。 (この想定がなければ、本来は、package privateにすべきです) このため、業務ロジックを各実装クラスでは直接参照しないで下さい。 ※ インデックス(row)とは、このArrayTableModel に持つ vals 配列の行のインデックスです。 よって、オリジナルのDBTableModelの行番号ではありません。- 変更履歴:
- 8.0.2.0 (2021/11/30) protected → default 変更(サブクラスからのアクセスはない)
-
-
コンストラクタの詳細
-
AbstractBizLogic
protected AbstractBizLogic()デフォルトコンストラクター- 変更履歴:
- 6.4.2.0 (2016/01/29) PMD refactoring. Each class should declare at least one constructor.
-
-
メソッドの詳細
-
setTransaction
DBのトランザクションオブジェクトを指定します。 各実装クラスでは、コネクションのcommit,rollbackは行われません。 (全てのDB処理は、1つのトランザクションとして処理されます。) このため、commit,rollbackは呼び出し元で行う必要があります。 このメソッドは、1度しかセットすることができません。2回以上呼び出しするとエラーになります。- パラメータ:
tr
- トランザクション- 変更履歴:
- 5.1.9.0 (2010/08/01) 新規作成, 5.3.8.0 (2011/08/01) useParamMetaData を ConnectionFactory経由で取得。(PostgreSQL対応), 8.0.2.0 (2021/11/30) protected → default 変更(サブクラスからのアクセスはない)
-
getTransaction
DBのトランザクションオブジェクトを返します。 (全てのDB処理は、1つのトランザクションとして処理されます。)- 戻り値:
- トランザクション
- 変更履歴:
- 7.4.2.0 (2021/05/14) 外部から指定するTransactionオブジェクト 対応, 8.0.2.0 (2021/11/30) protected → default 変更(サブクラスからのアクセスはない), 8.1.1.0 (2022/02/04) default ⇒ protected に変更します。
-
setDbid
接続先IDを指定します。 このメソッドは、1度しかセットすることができません。2回以上呼び出しするとエラーになります。- パラメータ:
id
- 接続先ID- 変更履歴:
- 5.1.9.0 (2010/08/01) 新規作成
-
setLoader
業務ロジックのクラスをロードするためのクラスローダーをセットします。 このメソッドは、1度しかセットすることができません。2回以上呼び出しするとエラーになります。- パラメータ:
ldr
- クラスローダー- 変更履歴:
- 5.6.7.0 (2013/07/27) Exception を throw するとき、一旦、errMsg 変数にセットします。
-
setTable
配列型テーブルモデルをセットします。 このメソッドは、1度しかセットすることができません。2回以上呼び出しするとエラーになります。- パラメータ:
tbl
- 配列型テーブルモデル- 変更履歴:
- 5.6.7.0 (2013/07/27) Exception を throw するとき、一旦、errMsg 変数にセットします。, 6.7.9.1 (2017/05/19) ArrayTableModel をDataModel に変更。
-
getTable
配列型テーブルモデルを取得します。- 戻り値:
- 配列型テーブルモデル
- 変更履歴:
- 6.7.9.1 (2017/05/19) 新規追加
-
setKeys
固定値のキー配列を指定します。 このメソッドは、1度しかセットすることができません。2回以上呼び出しするとエラーになります。- パラメータ:
ks
- キー配列(可変長引数)- 変更履歴:
- 5.6.7.0 (2013/07/27) Exception を throw するとき、一旦、errMsg 変数にセットします。
-
setVals
固定値の値配列を指定します。 このメソッドは、1度しかセットすることができません。2回以上呼び出しするとエラーになります。- パラメータ:
vs
- 値配列(可変長引数)- 変更履歴:
- 5.6.7.0 (2013/07/27) Exception を throw するとき、一旦、errMsg 変数にセットします。
-
setUserId
この処理の実行ユーザーIDを指定します。- パラメータ:
id
- 実行ユーザーID(not null)
-
setParentPgId
親(呼び出し)PGIDを指定します。- パラメータ:
id
- 親PGID
-
setDebug
void setDebug()デバッグモードにします。 -
getDebugMsg
デバッグメッセージを取得します。- 戻り値:
- デバッグメッセージ
- このメソッドは、nullを返しません
-
exec
処理を実行します。 処理の方法は、main()メソッドにより定義されます。 実装クラスで発生した全ての例外は、Throwableオブジェクトとしてスローされます。 呼び出し元では、例外を確実にcatchして、commit,rollbackを行ってください。- 戻り値:
- 処理が成功したかどうか
- 例外:
Throwable
- 実行時の全エラーを上位に転送します。- 変更履歴:
- 5.1.9.0 (2010/08/01) シーケンス対応
-
init
処理のメインロジックの前処理を記述します。 このメソッド自体は、protected属性であるため、サブクラスから直接参照することができます。 但し、これは、各業務ロジックで直接参照することを想定したものではなく、BizLogicの メイン構造を拡張するサブクラスを定義する際に使用することを想定しています。 (この想定がなければ、本来は、package privateにすべきです) このため、業務ロジックを各実装クラスでは直接参照しないで下さい。 -
main
処理のメインロジックを記述します。 このメソッド自体は、protected属性であるため、サブクラスから直接参照することができます。 但し、これは、各業務ロジックで直接参照することを想定したものではなく、BizLogicの メイン構造を拡張するサブクラスを定義する際に使用することを想定しています。 (この想定がなければ、本来は、package privateにすべきです) このため、業務ロジックを各実装クラスでは直接参照しないで下さい。- 戻り値:
- 処理が正常終了したか
-
getKekka
int getKekka()結果ステータスを返します。- 戻り値:
- 結果ステータス
-
getErrMsg
エラーメッセージオブジェクトを返します。- 戻り値:
- エラーメッセージ
-
getReturn
業務ロジックの戻り値を返します。- 戻り値:
- 戻り値
-
isRequireTable
boolean isRequireTable()業務ロジックを実行するために、テーブルモデルが外部からセットされる必要があるか を返します。 必須である場合、その業務ロジックは、子ロジックとして呼び出すことができません。 これは、子ロジック呼び出し時は、テーブルモデルがセットされないためです。 (このクラスは、テーブルモデルが外部から指定されている必要はありません。) このメソッド自体は、protected属性であるため、サブクラスから直接参照することができます。 但し、これは、各業務ロジックで直接参照することを想定したものではなく、BizLogicの メイン構造を拡張するサブクラスを定義する際に使用することを想定しています。 (この想定がなければ、本来は、package privateにすべきです) このため、業務ロジックを各実装クラスでは直接参照しないで下さい。- 戻り値:
- テーブルモデルが外部からセットされる必要があるかどうか(常にfalse)
- 変更履歴:
- 8.0.2.0 (2021/11/30) protected → default 変更(サブクラスからのアクセスはない)
-
isDebug
デバッグモードかどうかを返します。- 戻り値:
- デバッグモードかどうか
-
debug
デバッグメッセージを追加します。- パラメータ:
msg
- 追加するデバッグメッセージ
-
var
指定されたキーの値を返します。- パラメータ:
key
- キー- 戻り値:
- 変数値
- 変更履歴:
- 8.3.0.1 (2022/08/12) keyを大文字変換
-
var
指定されたキーの値を返します。 値が、nullや空文字列の場合は、def引数の初期値を返します。- パラメータ:
key
- キーdef
- 値が取得できなかった時の初期値- 戻り値:
- 変数値
- 変更履歴:
- 8.0.2.0 (2021/11/30) 新規追加, 8.3.0.1 (2022/08/12) keyを大文字変換
-
var
指定されたキーの値をint型に変換して返します。 値が、nullや空文字列の場合は、def引数の初期値を返します。- パラメータ:
key
- キーdef
- 値が取得できなかった時の初期値- 戻り値:
- 変数値
- 変更履歴:
- 8.0.2.0 (2021/11/30) 新規追加, 8.3.0.1 (2022/08/12) keyを大文字変換
-
var
指定されたキーの値をdouble型に変換して返します。 値が、nullや空文字列の場合は、def引数の初期値を返します。- パラメータ:
key
- キーdef
- 値が取得できなかった時の初期値- 戻り値:
- 変数値
- 変更履歴:
- 8.0.2.0 (2021/11/30) 新規追加, 8.3.0.1 (2022/08/12) keyを大文字変換
-
varKeys
パラメーターのキー一覧を配列形式で返します。 このパラメーターは、業務ロジック内でセットされたパラメーターも含まれますのでご注意下さい。- 戻り値:
- パラメーターのキー配列
-
set
指定されたキーで値を登録します。 パラメーターとしてこの業務ロジックが呼ばれる際の引数となっている場合は、 エラーとなります。- パラメータ:
key
- キーval
- 値- 変更履歴:
- 5.2.1.0 (2010/10/01) チェックのバグを修正, 5.6.7.0 (2013/07/27) Exception を throw するとき、一旦、errMsg 変数にセットします。, 8.3.0.1 (2022/08/12) keyを大文字変換, 8.5.6.1 (2024/03/29) 重複チェック廃止(UW_Webサポートシステム対応でVer5.10.6.1参考)
-
set
指定されたキーで値(int型)を登録します。 パラメーターとしてこの業務ロジックが呼ばれる際の引数となっている場合は、 エラーとなります。- パラメータ:
key
- キーval
- 値- 変更履歴:
- 5.1.9.0 (2010/08/01) 新規作成
-
set
指定されたキーで値(double型)を登録します。 パラメーターとしてこの業務ロジックが呼ばれる際の引数となっている場合は、 エラーとなります。- パラメータ:
key
- キーval
- 値- 変更履歴:
- 5.1.9.0 (2010/08/01) 新規作成
-
getValues
指定のカラム名引数に相当するデータを2重配列で返します。- パラメータ:
clmNms
- 値が参照されるカラム名配列(可変長引数)- 戻り値:
- 指定された名引数に相当するデータの2重配列
- 変更履歴:
- 6.8.5.0 (2018/01/09) 新規追加
- このメソッドは、nullを返しません
-
str2dblVals
文字列配列をdouble配列に変換します。 文字列が、nullか、空文字列の場合は、長さ0の配列を返します。- パラメータ:
vals
- double配列に変換する元の文字列配列- 戻り値:
- 指定された文字列配列に対するdoubleに変換された値配列
- 変更履歴:
- 6.8.5.0 (2018/01/09) 新規追加, 8.0.2.0 (2021/11/30) StringUtil#nval(String.doubleを使用)
- このメソッドは、nullを返しません
-
getNames
テーブルのカラム名の一覧を配列形式で返します。- 戻り値:
- テーブルのカラム名配列
- 変更履歴:
- 5.6.7.0 (2013/07/27) Exception を throw するとき、一旦、errMsg 変数にセットします。, 8.0.2.0 (2021/11/30) メソッド名変更(lineKeys → getNames)
-
rtn
業務ロジックの戻り値をセットします。- パラメータ:
rtn
- 戻り値
-
call
子ロジックを実行します。 実行する子ロジックの呼び出しは、親クラスと同じソースパス、クラスパスで呼び出しされます。 子ロジックに渡す引数には、{@XXXX}形式及び[XXXX]形式の変数を使用することができます。 この場合の値は、引数で指定された、配列型テーブルモデルの行に対応する値になります。 また、子ロジックの戻り値は、val("RETURN")で取得することができます。- パラメータ:
subLogicName
- 子ロジック名key
- キー(CSV形式)val
- 値(CSV形式) // * @param rw 行番号(インデックス) // * @param tbl 配列型テーブルモデル- 戻り値:
- 処理が正常終了したか
- 変更履歴:
- 5.1.9.0 (2010/08/01) シーケンス対応, 5.4.1.0 (2011/11/01) 値にカンマが含まれている場合に正しく動作しないバグを修正, 5.6.7.0 (2013/07/27) Exception を throw するとき、一旦、errMsg 変数にセットします。, 6.3.9.0 (2015/11/06) コンストラクタで初期化されていないフィールドを null チェックなしで利用している(findbugs), 6.7.9.1 (2017/05/19) ArrayTableModel をDataModel に変更。, 8.0.2.0 (2021/11/30) 外部から、行番号とDataModelを渡すメソッドは廃止。
-
sql
SQLを実行します。 SQL文には、{@XXXX}形式及び[XXXX]形式の変数を使用することができます。 [XXXX]形式の変数の置き換えには、引数で指定された配列型テーブルモデルの行が使用されます。 select文を発行した場合、その結果セットは、var(カラム名)で取得することができます。 2行以上が返された場合でも、1行目のみが登録されます。 また、検索件数、更新件数については、var("SQL_ROWCOUNT")で取得することができます。- パラメータ:
sq
- SQL文字列 // * @param rw 行番号(インデックス) // * @param tbl 配列型テーブルモデル- 変更履歴:
- 6.7.9.1 (2017/05/19) ArrayTableModel をDataModel に変更。, 8.0.2.0 (2021/11/30) 外部から、行番号とDataModelを渡すメソッドは廃止。
-
seq
シーケンス名よりシーケンスオブジェクトを検索し、次の値を取り出します。 DBに対するシーケンスオブジェクトは予め作成されている必要があります。 また、MySQLの場合は、シーケンスオブジェクトが実装されていないため、 内部的には、引数のシーケンス名と同じ名前のテーブルから、Integer型の "SEQID"という項目名を検索することにより、シーケンスをエミュレートしています。- パラメータ:
seqName
- シーケンス名- 戻り値:
- シーケンス番号
- 関連項目:
- 変更履歴:
- 5.1.9.0 (2010/08/01) 新規追加, 6.3.9.0 (2015/11/06) コンストラクタで初期化されていないフィールドを null チェックなしで利用している(findbugs)
-
querySQL
検索用SQLを実行して、Consumer#accept に検索結果の配列を繰り返しセットします。 内部でResultSetValue のカーソルを回すため、大量のデータについて 順次処理する場合に使用します。- パラメータ:
sq
- SQL文字列call
- CallBack関数(Consumer)- 変更履歴:
- 8.2.0.3 (2022/06/30) 内部でカーソルを回す検索用SQLを実行する, 8.2.1.0 (2022/07/15) querySQL では、[XXXX]の変換 自体を行わない
-
error
エラーメッセージを追加します。 エラーメッセージの引数には、{@XXXX}形式及び[XXXX]形式の変数を使用することができます。- パラメータ:
kekka
- エラーレベルid
- エラーメッセージIDargs
- エラーメッセージパラメーター
-
error
行指定でエラーメッセージを追加します。 エラーメッセージの引数には、{@XXXX}形式及び[XXXX]形式の変数を使用することができます。- パラメータ:
rw
- 行番号(インデックス)kekka
- エラーレベルid
- エラーメッセージIDargs
- エラーメッセージパラメーター
-
must
パラメーターの必須チェックを行います。 キーは、CSV形式で複数指定することができます。- パラメータ:
cs
- カラム(CSV形式)- 戻り値:
- エラーが発生した場合はfalse、それ以外はtrue
- 変更履歴:
- 8.3.0.1 (2022/08/12) keyを大文字変換
-
exist
マスタチェックを行います。- パラメータ:
type
- エラーチェックのタイプtblId
- テーブル名ns
- カラム(CSV形式)vs
- 値(CSV形式)- 戻り値:
- エラーが発生した場合はfalse、それ以外はtrue
- 関連項目:
- 変更履歴:
- 5.6.3.1 (2013/04/05) isErrThrow 引数を追加
-
exist
protected final boolean exist(String type, String tblId, String ns, String vs, String conNs, String conVs) マスタチェックを行います。 引数に指定されたテーブル名、及び条件句を生成するためのカラム、値から 件数を取得し、typeに応じて件数チェックを行います。 (カラム、値には、CSV形式で複数指定することができます) type=true 存在する場合true 存在しない場合false type=false 存在する場合false 存在しない場合true type=one 1件以内 true 2件以上 false 必須チェックの引数には、{@XXXX}形式及び[XXXX]形式の変数を使用することができます。 また、固定値カラム、値にも条件となるカラム及び値を指定することができますが、 ここで指定されたカラムは、エラーメッセージ表示時にカラム、値が画面に表示されません。- パラメータ:
type
- エラーチェックのタイプtblId
- テーブル名ns
- カラム(CSV形式)vs
- 値(CSV形式)conNs
- 固定値カラム(CSV形式)conVs
- 固定値(CSV形式)- 戻り値:
- エラーが発生した場合はfalse、それ以外はtrue
- 変更履歴:
- 5.6.3.1 (2013/04/05) isErrThrow 引数を追加
-
exist
protected final boolean exist(String type, String tblId, String ns, String vs, String conNs, String conVs, boolean isErrThrow) マスタチェックを行います。 引数に指定されたテーブル名、及び条件句を生成するためのカラム、値から 件数を取得し、typeに応じて件数チェックを行います。 (カラム、値には、CSV形式で複数指定することができます) type=true 存在する場合true 存在しない場合false type=false 存在する場合false 存在しない場合true type=one 1件以内 true 2件以上 false 必須チェックの引数には、{@XXXX}形式及び[XXXX]形式の変数を使用することができます。 また、固定値カラム、値にも条件となるカラム及び値を指定することができますが、 ここで指定されたカラムは、エラーメッセージ表示時にカラム、値が画面に表示されません。 isErrThrow は、エラーが発生した場合に、エラーメッセージ(ErrorMessage)に書き込むかどうかを指定します。 基本は、互換性を考慮し、true(書き込む)です。 false にするケースは、存在チェックを行い、あれば更新、なければ追加 など後続処理を行いたい場合に使います。- パラメータ:
type
- エラーチェックのタイプtblId
- テーブル名ns
- カラム(CSV形式)vs
- 値(CSV形式)conNs
- 固定値カラム(CSV形式)conVs
- 固定値(CSV形式)isErrThrow
- 判定結果がfalseの場合に、error関数を呼ぶ場合は、true。呼ばない場合は、falseをセットします。- 戻り値:
- エラーが発生した場合はfalse、それ以外はtrue
- 変更履歴:
- 5.6.3.1 (2013/04/05) isErrThrow 引数を追加, 5.6.7.0 (2013/07/27) Exception を throw するとき、一旦、errMsg 変数にセットします。, 6.7.9.1 (2017/05/19) ArrayTableModel をDataModel に変更。
-
setRtnMap
変数に関連付けた値を、返します。 これは、BizLogicから、呼び出し元のJSPに、RETURN 変数以外の {@XXXX} パラメータを返します。 既存のアトリビュートがあれば、上書きされます。- パラメータ:
key
- キーval
- 値- 変更履歴:
- 6.9.9.0 (2018/08/20) 戻り値を返せるようにします。
-
getReturnMap
変数に関連付けた値を、返します。 これは、BizLogicから、呼び出し元のJSPに、RETURN 変数以外の {@XXXX} パラメータを返します。 既存のアトリビュートがあれば、上書きされます。- 戻り値:
- 内部マップオブジェクト
- 変更履歴:
- 6.9.9.0 (2018/08/20) 戻り値を返せるようにします。
-