イントラマートのスクリプト開発からjavaのinterfaceをJavaAdapterを使って呼び出してみる
イントラマートのスクリプト開発からjavaのinterfaceをJavaAdapterを使って呼び出してみる。
イントラマートとは
株式会社NTTデータイントラマート社が開発・販売している、Webアプリケーションシステムのシステム共通基盤(統合型フレームワーク)で、国内の著名企業を中心に6,000社以上に導入されています。
イントラマートを導入することにより、Webシステム開発における短納期・低コスト・標準化推進・品質向上を実現できます。
詳しくはこちらをご覧ください。
var logger = Logger.getLogger() ; function init() { //呼び出すinterfaceのメソッドを実装する var interface_obj = { //IDを保存するエリア sys_id : "" //IDを取得する ,getSystemId : function() { return this.sys_id ; } //IDを保存する ,setSystemId : function( p_sysid ) { this.sys_id = p_sysid ; } } //Javaのインスタンスを生成する var s = new JavaAdapter( Packages.javax.xml.transform.Source, interface_obj ) ; //メソッド呼び出してIDをセットし、それを取得 s.setSystemId( "123" ) ; ret = s.getSystemId() ; logger.info( "セットした文字列は[" + ret + "]" ); }
実行結果は
[INFO] セットした文字列は[123]
これは「Mozilla Rhino」の機能かと思ったが
Rhino のJavaAdapterは削除されました。・・・Rhino の JavaAdapter は Sun の JavaAdapter の実装に置き換えられました
とあるので置き換わったのですね。
呼出形式は
new JavaAdapter( java-class, [java-class,...] javascript-object ) ;
に関しては
ほとんどの場合、JavaAdapter は Java anonymizer クラスのような構文を使用して単一のインタフェースを実装するために使用されます。Java クラスの拡張または複数のインタフェースの実装のために JavaAdapter を使用することは、非常にまれです。
とあり「まれ」だけど使えると言う事かな?
これはまだ未確認。