ExternalType パーツの概要

ExternalType パーツは、EGL を外部言語要素にマップします。

このマッピングは、サービス関数に対してインターフェース・パーツが提供するマッピングと似ていますが、EGL の外部言語要素へのマッピングは、フィールドとコンストラクターを含むように一般化されます。 ExternalType パーツがサポートする唯一の外部要素は Java™ オブジェクトです。

ExternalType パーツは以下のコンポーネントで構成されます。
変数宣言
以下の変数は、外部言語要素内のパブリック変数へのアクセスを提供します。
関数プロトタイプ
外部型内のメソッド呼び出しまたは関数呼び出しを表します。
コンストラクター・プロトタイプ
EGL new 文を使用して、この外部型の変数を構成する構文を定義します。

ExternalType の概念は、ライブラリーまたはサービスの概念と似ています。 これらいずれにおいても、プログラム内で外部機能を使用します。サービスまたは ExternalType の場合、EGL はコードに直接アクセスできないため、 EGL が必要な型の検査を実行できるように、特定のプロトタイプを提供する必要があります。

ExternalType 定義はストレージを予約しません。 変数は、このパーツに基づいて宣言する必要があります (オプションで EGL new 文を使用)。これにより、その変数および関数を使用するようになります (ただし、これらの関数が static と宣言されている場合を除きます。このトピックの『構文』を参照してください)。

ExternalType パーツで使用される多数の概念は、Java や C# のようなオブジェクト指向言語に由来しています。それらの概念には、拡張、継承、コンストラクターなどが含まれます。これらの用語について詳しく知りたい場合は、Java の基本解説書を参照してください。

ExternalType パーツの主な用途の 1 つは、イベント処理用に関数ポインターの配列を作成することです。 EGL テキスト・レポートでの ExternalTypes の使用ついては、EGL テキスト・レポートを参照してください。

ExternalType パーツは、次の 3 つのステレオタイプのいずれも持つことができます。

ExternalType 関数

関数が static とマークされている場合は、 ExternalType パーツの名前とドット構文 (typeName.methodName()) を使用してこの関数を呼び出します。 あるいは、ExternalType に基づいて変数を作成し、ドット構文 externalTypeVariable.methodName() を使用してこの変数名をメソッド名に追加します。 詳しくは、を参照してください。

シリアライズ可能 ExternalType

java.io.Serializable インターフェースを実装する Java クラスに ExternalType パーツをマッピングする場合は、ExternalType パーツを定義済みのシリアライズ可能 ExternalType で拡張する必要があります。
ExternalType CustomDate extends Serializable type JavaObject
{
  packageName="com.mycompany", 
  javaName="CustomDate" 
}

	// 関数

end

関連する Java クラスに java.io.Serializable インターフェースが実装されている場合、シリアライズ可能 ExternalType 変数はディスクに直接保存可能であり、後で復元できます。 シリアライズ可能 ExternalTypes を拡張しない ExternalType は、一時的 である、つまりディスクへ直接保存できないとみなされます。 非シリアライズ可能 ExternalType で情報を保存する場合は、データ・ソースを使用する必要があります。

次のサンプル・コードは、シリアライズ可能 ExternalType を示します。
ExternalType Serializable type JavaObject
{
  JavaName = "Serializable", 
  PackageName = "java.io"
}
end

フィードバック