Javaとの連携 >
Magicは、メソッドを実行したり、疑似参照を使用して変数を参照したり更新したりするJavaクラスのインスタンスを作成することができます。疑似参照とは、Javaクラスのインスタンスを表すBLOB項目です。メソッドが呼び出されると関数の戻り値としてBLOB値をMagicに返します。
クラスのスタティックメソッドや変数は、クラス名とメソッドまたは変数名を指定することで、Java クラスのインスタンスを作成しないでアクセスすることができます。
以下のMagicの関数は、Javaでのメソッド呼び出しのように使用することができます。エンジンの各コンテキストは疑似参照と実参照の間で内部マップを作成します。
例えば、 Magicプログラムは、変数項目(A)として疑似参照を作成する場合、JCreate関数を使用します。インスタンスに対する実参照は、変数項目(A)と内部的にリンクしています。コンテキスト内のあらゆるMagicプログラムは、JCall(A, .) を使用することでメソッドやオブジェクトの変数にアクセスすることができます。
Java関数をMagicプログラムから呼び出すことで次のようなことができます。
Javaクラスの新しいインスタンス作成
Java クラスかインスタンスのメソッド呼び出し
例外報告の取得
変数の値の照会や更新
MagicのJava 関数には、以下のものがあります。
JCreate |
Javaクラスの新しいインスタンスを作成します。 |
JCall |
Javaクラスのインスタンスのメソッドを呼び出します。 |
CodePage |
Javaの文字をMagicの文字型データに変換したり、その逆を行う場合に使用するコードページを指定します。 |
JCallStatic |
Javaクラスのスタティックメソッドを呼び出します。 |
JException |
現在のコンテキストの最後の例外処理に対する疑似参照を返します。 |
JExceptionOccurred |
最後のJava関数または、EJB 関数が例外をスローした時に「True」 値を返します。 |
JExceptionText |
最後の例外情報やスタックの任意のトレースの内容を返します。この関数は、最後のJava関数または、EJB関数の処理の間にスローされた例外処理の内容を参照します。 |
JExplore |
Javaクラスの内容を返します。 |
JGet |
インスタンス変数の値を返します。 |
JGetStatic |
クラス変数の値を返します。 |
JInstanceOf |
Javaのinstanceof 演算子(あるオブジェクトの実行時の型が指定した型に合致するかどうかを判定します。)と同じような動作をします。 |
JSet |
インスタンス変数を更新します。 |
JSetStatic |
クラス変数を更新します。 |
以下のEJB関数によって、MagicはEJBを探して呼び出すことができます。
EJBCreate |
EJBのインスタンスを作成し、実行可能な関連するJava関数から疑似参照を返します。 |
EJBExplore |
EJBインスタンスの内容を返します。 |