IDO の拡張と置換

IDO 開発システムでは、全てのプロパティ、メソッド、テーブル、および拡張クラスを既存の IDO から継承する新しい IDO を作成できます。作成される IDO とその基本となる IDO の関係は「拡張」関係と呼ばれ、新しい IDO は基本 IDO を継承および拡張します。

また、基本 IDO を置換する IDO として、拡張 IDO にフラグを立てることもできます。拡張 IDO がその基本 IDO を置換すると、基本 IDO をターゲットとする全ての IDO 要求が拡張 IDO を介して再経路指定されます。再経路指定の対象となる要求は GetPropertyInfo、LoadCollection、UpdateCollection、および Invoke です。

[IDO の追加]に使用する[新規 IDO ウィザード]には、 [拡張] オプションと「拡張および置換」オプションがあります。

拡張 IDO(関連の基本 IDO がある IDO)は、基本 IDO に対して追加形式の変更しかできません。つまり、新規のプロパティ、メソッド、テーブル、拡張クラスの追加は可能ですが、基本 IDO のプロパティ、メソッド、テーブル、拡張クラスの変更や削除はできません。新たにバインドするプロパティは、拡張 IDO または任意の基本 IDO 内のテーブルのカラムにバインドできます。同様に、新たに派生するプロパティは、拡張 IDO のプロパティに加えて任意の基本 IDO 内のプロパティを参照できます。

拡張 IDO を 1 つ以上の他の IDO で拡張することも可能です。継承チェーンのレベル数にハードリミットはありません。任意の数の拡張 IDO で同じ基本 IDO を共有できますが、基本 IDO の置換として、複数の同レベル IDO にフラグを立てることはできません。

IDO ランタイムは、IDO 要求の処理時に、IDO 拡張クラスで操作可能なイベントを生成します。拡張 IDO に対して 1 つまたは複数の基本 IDO があり、それらに拡張クラスが関連付けられている場合、イベントは全ての拡張クラスでが開始されますが、その順序は決まっていません。

基本 IDO と置換フラグは、新規 IDO の作成時のみ設定できます。既存 IDO の場合、それらの属性は読取り専用です。