JavaObject 型オブジェクトのインターフェースを使用する場合は、多くの場合、実行時に、オブジェクトを作成する静的メソッドにアクセスする必要があります。 こうした要件があるのは、EGL インターフェース・テクノロジーでは ユーザーが EGL コードから Java™ オブジェクトを インスタンス化することができないからです。
package myInterfaces; Interface HelloWorld type JavaObject {javaName = "HelloWorld", packageName = "com.ibm.examples.helloWorld"} function sayHello(name String) returns (String); End
package com.ibm.examples.helloWorld; class HelloWorld { // Java クラス・コンストラクター public HelloWorld() { } // 関数の実行 // インターフェース内を参照する public String sayHello(String name) { return "Hello " + name; } }
package myInterfaces; Interface HelloWorldFactory {javaName = "HelloWorldFactory", packageName = "com.ibm.examples.helloWorld"} static function createHelloWorld() returns (HelloWorld); End
package com.ibm.examples.helloWorld; class HelloWorldFactory { // Java クラス・コンストラクター public HelloWorldFactory() { } // 関数の実行 // インターフェース内を参照する public static HelloWorld createHelloWorld() { return new HelloWorld; } }
package myDriver; import myInterfaces.*; program myProgram { } function myFunction() echo STRING; // HelloWorld 型の変数を作成する; // この参照変数は NIL を指す hwVar HellowWorld; // Java オブジェクトに変数を割り当てる hwVar = HelloWorldFactory.createHelloWorld(); // 任意の Java メソッドにアクセスする // HelloWorld 型のオブジェクトの // および対応する // 関数の記述 // EGL インターフェース・パーツの echo = hwVar.sayHello("John Doe"); End End
JSF コンポーネント・ツリーと対話する pageHandler を書いている場合は、EGL インターフェース・パーツに基づいて変数を作成します。ただし、EGL が問題を実行時に処理するため、オブジェクトの作成に関与する必要はありません。 概要については、『JSF コンポーネント・ツリー』を参照してください。
関連タスク
EGL インターフェース・パーツの作成