6.1.3 クラス操作
ここでは,Javaプログラム呼び出し機能が提供するクラス操作のサービスルーチンについて説明します。
(1) CBLJGETOBJCLASS
CBLJGETOBJCLASSサービスルーチンは,Javaのインスタンスの属するJavaクラスのJavaクラス参照を返します。
- 形式
-
CALL 'CBLJGETOBJCLASS' USING 引数1 引数2 引数3.
- 引数
-
-
引数1には,CBLJENV集団項目を指定します。CBLJENV集団項目については,「6.1.1 サービスルーチンで使用する引数」の「(1) CBLJENV集団項目」を参照してください。
-
引数2には,Javaオブジェクト参照を持つポインタ項目を指定します。
-
引数3には,Javaクラス参照を受け取るポインタ項目を指定します。
-
- 戻り値
-
RETURN-CODE特殊レジスタには常に0を返します。
Javaクラス参照の取得に失敗した場合は実行時エラーとなります。
(2) CBLJGETNAME
CBLJGETNAMEサービスルーチンは,java/lang/Class.getNameメソッドを呼び出して,Javaクラス参照の示すJavaクラスの名前(パッケージ名とクラス名の区切りはピリオド)を返します。
- 形式
-
CALL 'CBLJGETNAME' USING 引数1 引数2 引数3 引数4.
- 引数
-
-
引数1には,CBLJENV集団項目を指定します。CBLJENV集団項目については,「6.1.1 サービスルーチンで使用する引数」の「(1) CBLJENV集団項目」を参照してください。
-
引数2には,Javaクラス参照を持つポインタ項目を指定します。
-
引数3には,クラス名を受け取る英数字項目を指定します。
-
引数4には,クラス名を受け取る英数字項目のサイズ(文字数)を持つ,4バイト2進形式の数字項目を指定します。
-
- 戻り値
-
RETURN-CODE特殊レジスタに0(正常)または1(サイズが不足)を返します。
名前の取得に失敗した場合は実行時エラーとなります。
- 注意事項
-
RETURN-CODEが1の場合,引数3に指定した項目に,引数4に指定した長さまでのJavaクラスの名前を設定します。
(3) CBLJGETSUPERCLASS
CBLJGETSUPERCLASSサービスルーチンは,Javaクラス参照の示すJavaクラスのスーパークラスのJavaクラス参照を返します。
- 形式
-
CALL 'CBLJGETSUPERCLASS' USING 引数1 引数2 引数3.
- 引数
-
-
引数1には,CBLJENV集団項目を指定します。CBLJENV集団項目については,「6.1.1 サービスルーチンで使用する引数」の「(1) CBLJENV集団項目」を参照してください。
-
引数2には,Javaクラス参照を持つポインタ項目を指定します。
-
引数3には,スーパークラスのJavaクラス参照を受け取るポインタ項目を指定します。
-
- 戻り値
-
RETURN-CODE特殊レジスタには常に0を返します。
スーパークラスの取得に失敗した場合は実行時エラーとなります。