7.4. データ型とコレクションについて

データマッパーはソースフィールドとターゲットフィールドを表示し、必要なフィールド間のマッピングを定義します。

データマッパーでは、フィールドは以下のいずれかになります。

  • 単一の値を格納する プリミティブ タイプ。プリミティブタイプの例には、 booleancharbyteshortintlongfloat、および double があります。プリミティブタイプは単一のフィールドであるため拡張できません。
  • 異なるタイプの複数のフィールドで設定される コンプレックス タイプ。コンプレックスタイプの子フィールドを設計時に定義します。データマッパーではコンプレックスタイプを拡張して子フィールドを表示できます。

各タイプのフィールド (プリミティブおよびコンプレックス) をコレクションとすることもできます。コレクションは、複数の値を持つことができる単一のフィールドです。コレクションのアイテム数はランタイム時に決定されます。設計時、データマッパーではコレクションは the Collection icon で示されます。コレクションがデータマッパーインターフェイスで拡張可能かどうかは、タイプにより決定されます。コレクションがプリミティブタイプの場合、拡張できません。コレクションがコンプレックスタイプの場合、データマッパーを展開し、コレクションの子フィールドを表示できます。各フィールドをマップ元またはマップ先とすることができます。

以下に例を示します。

  • id はプリミティブタイプのフィールド (int) です。実行時に、社員は ID を 1 つだけ持てます。たとえば、ID=823 のみを持てます。そのため、ID はコレクションではないプリミティブタイプです。データマッパーでは、ID は拡張できません。
  • email はプリミティブタイプのフィールド (文字列) です。実行時に、社員は複数の email の値を持つことができます。たとえば、email<0>=aslan@home.com および email<1>=aslan@business.com を持つことができます。そのため、email はコレクションでもあるプリミティブタイプです。データマッパーは、 the Collection icon を使用して、email フィールドがコレクションであることを示しますが、email はプリミティブタイプであるため (子フィールドがない)、拡張できません。
  • employee は、IDemail を含む複数の子フィールドを持つ複雑なオブジェクトフィールドです。会社には多くの従業員がいるため、起動時に employee はコレクションでもあります。
    設計時に、データマッパーは the Collection icon を使用して employee がコレクションであることを示します。employee フィールドは、子フィールドが含まれるコンプレックスタイプであるため、拡張可能です。