MINERVAは、Javaで書かれたプログラム部品と協力します。プログラム部品は「外部」で宣言され、MINERVAコードとして利用されます。...
移動
次へ 前へ
上へ 最上
参考
高度
リフレクション
静的
イフコンピュータ > MINERVA > マニュアル > レファレンス > MINERVAからJavaへのインタフェース > 静的

静的

MINERVAは、Javaで書かれたプログラム部品と協力します。プログラム部品は「外部」で宣言され、MINERVAコードとして利用されます。

この機能を、すでに存在するネットワーク・グラフィカルユーザインタフェース・マルチメディア拡張などでライブラリおよびユーティリティを拡張して利用することができます。

Javaクラスにアクセスするインタフェースは、MINERVA内にあるジェネレータを使用して実現されます。ユーザは、Java関数へのインタフェースを宣言します。 ジェネレータは、パラメータの変換及びクラス呼び出しの為に、上の宣言を呼び出しのための枠組に変換します。

外部クラスの宣言は、以下のようになります。

	dynamic_function(
			PredicateName,
			JavaClassName,
			FunctionName(TypeArg1,...,TypeArgN),
			ReturnType).

static_function( PredicateName, JavaClassName, FunctionName(TypeArg1,...,TypeArgN), ReturnType).

Examples:

	dynamic_function(
                button__set_label,	% MINERVA predicate name
                'Button',		% Java class name
                setLabel(string),	% Java method
                void			% Java return type
        ).

static_function( font__get, % MINERVA predicate name 'Font', % Java class name getFont(string), % Java method 'Font' % Java return type ).

結果として得られるMINERVAの述語は、各々、以下のようになります。

	PredicateName(Object,Arg1,...,ArgN,ReturnArg)
	PredicateName(Object,Arg1,...,ArgN) % for void functions
	PredicateName(Arg1,...,ArgN,ReturnArg) % for static functions
	PredicateName(Arg1,...,ArgN) % for static void functions

この例では、以下の二つの述語が得られます。

	button__set_label(Button,DisplayText)
	font__get(FontName,Font)

MINERVAからJavaを呼び出すインタフェースの一例をあげます。

dynamic_function(
        get_line_number,
        'java.io.LineNumberInputStream',
        getLineNumber,
        int
    ).

dynamic_function( set_line_number, 'java.io.LineNumberInputStream', setLineNumber(int), void ).

create_instance( create_line_number_input_stream, 'java.io.LineNumberInputStream'('java.io.InputStream') ).

上記のように、3つのインタフェース述語が作られねばなりません。 動的述語には、以下が必要です。

	int java.io.LineNumberInputStream.getLineName()
		(述語: get_line_number(+LineNumberStream,-LineNumber))
	void java.io.LineNumberInputStream.setLineName(int lineno)
		(述語: set_line_number(+LineNumberStream,+LineNumber))

'java.io.LineNumberInputStream'のオブジェクトを作るための インタフェース述語を以下に示します。

	create_line_number_input_stream(+Stream, -LineNumberStream)
この述語は、
	"new java.io.LineNumberInputStream(stream)"
の関数にコピーされます。

静的関数には、インタフェース記述(static_function)があります。 より詳しい情報は「例題プログラム」の章を参照して下さい。

  • 実行:
    • Manual/Reference/Invocation/minervax
  • 例:
    • gui/gui.mxt
    • ExamplePrograms/MinervaFeatures/MinervaToJava_1
    • gui/gui.mxt
    • ExamplePrograms/MinervaFeatures/MinervaToJava_2
    • ExamplePrograms/MinervaFeatures/MinervaToJava_3
    • ExamplePrograms/MinervaFeatures/MinervaToJava_4

続く..
MINERVA
ifcomputer logo
f
Expert Services on the Web
言語
English
Japanese
サーバー
USA
Japan
サイトマップ
索引
目次
全体目次
全体索引
印刷向き
imode
PDA
探索
document: http://www.ifcomputer.co.jp/MINERVA/Manual/Reference/MinervaToJavaInterface/static/home_jp.html
published 2008/9/1 update 2002/3/20 (c) 1996-2006 IF Computer Japan
IF Computer 〒113-0022 Tel 03-5814-3352 start (AT) ifcomputer.com
Customer Support 東京都文京区千駄木5-28-2   http://www.ifcomputer.co.jp
冒頭へ managed with ubiCMS