イントラマートのスクリプト開発からjavaのinterfaceをJavaAdapterを使って呼び出してみる

2018/02/07イントラマートintra-mart ver7.2,スクリプト開発

記事内に広告が含まれています。

イントラマートのスクリプト開発から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 を使用することは、非常にまれです。

とあり「まれ」だけど使えると言う事かな?
これはまだ未確認。

システムトラストでは一緒に働いていただける仲間を募集中です。
記事内に広告が含まれています。
株式会社システムトラスト

システムトラストでは、システムエンジニア、プログラマーなどを随時募集中です。気軽にご相談ください。

お問合せ