intra-mart Accel Platform スクリプト開発モデル プログラミングガイド 第16版 2020-04-01

標準Javaクラスとの連携方法

intra-mart Accel Platform は簡単に Java の標準 Class と連携を行うことができます。
intra-mart Accel Platform からは、決められた宣言方法を用いてクラスを定義することにより、 intra-mart Accel Platform のオブジェクトと同等に Javaクラスメソッドにアクセスできます。
本項では、標準Javaクラスとの連携方法を記載しています。

コラム

ここで説明する標準のJavaクラスとは、パッケージ名に java.、または、javax.で始まるクラスを指します。
これらの標準クラスは、 Java 上から直接呼び出すことが可能です。

Java からの呼び出し方

任意のファイルからプログラム内において、通常の Java のプログラミングの要領で目的のクラスを呼び出して利用してください。
インスタンスを生成する必要のあるクラスについては、new 演算子を用いる事でコンストラクタを呼び出す事ができます。
また、生成したインスタンスを JavaScript で宣言した変数に格納して利用する事もできます。
function init(request){
	// static method なのでそのまま使えます。
	java.lang.Thread.sleep(5000);
	// インスタンス生成する必要がある場合は new 演算子を用いる事でコンストラクタを呼び出します。
	var list = new java.util.ArrayList();
	// 生成したインスタンスを JavaScript で宣言した変数に格納して利用する事もできます。
	Debug.browse(list.isEmpty());
}

注意

JavaScript では import 句を利用する事ができません。
Java のクラスを呼び出す場合は、必ずパッケージ名を省略せずに完全な形で目的のクラスを指定するようにしてください。

例外の捕捉

Javaクラスを呼び出した場合に発生する例外は、try catchにより捕捉が可能です。
ただし、Errorクラスのサブクラスの捕捉は行えませんので注意してください。
捕捉可能な例外クラスは、Exceptionのサブクラスである必要があります。
捕捉した例外はJavaScriptの型に変換されています。
実際に発生したJavaの例外を操作したい場合には、捕捉した例外の__javaException__プロパティに格納されています。
        try {
          java.foo.bar.Baz.qux();
        } catch(e) {
          e.__javaException__.getLocalizedMessage();
          e.__javaException__.printStackTrace();
        }