ポリモアフィック・マップの作成

ポリモアフィック・マッピングを使用すると、単一のソース・ビジネス・オブジェクトを多くの潜在的な宛先ビジネス・オブジェクトの 1 つにマップできます。 この形式のマッピングを行うには、次の操作が必要です。

  1. 発生しうる結果ごとに異なるマップ (1 つのソース・オブジェクトと 1 つの宛先オブジェクト) を作成します。
  2. 単一のソース・ビジネス・オブジェクトと複数の宛先オブジェクトを持つメイン・ポリモアフィック・マップを作成します。
  3. 各宛先ビジネス・オブジェクトの最初の属性内で、どの宛先ビジネス・オブジェクトを入力するかを指定する条件を検査します。条件が真である場合、望ましい結果を得るため、runMap() メソッドを使用して該当するマップを実行します。

例: 下に示すのは、メイン・ポリモアフィック・マップの宛先ビジネス・オブジェクトの 1 つにある最初の属性から取ったサンプル・コードです。この例で、ObjInput はソース・ビジネス・オブジェクトのインスタンス変数です。ObjOutput1 はこのコードが入った出力オブジェクトのインスタンス変数です。InputToOutput1 ObjInput から ObjOutput1 へ実際のマッピングを行うサブマップです。この場合、マッピングの実行を指定する条件は、ソース・ビジネス・オブジェクト内の Attr1 属性の値に基づいています。当然ながら、ユーザーの実際の条件は異なります。

BusObj[] rSrcBO = new BusObj[1];
 BusObj[] rDstBO = new BusObj[1];
  
 rSrcBO[0] = ObjInput;
 String Attr1Val = ObjInput.getString("Attr1");
  
 if (Attr1Val.equals("Poly1"))
    {
    try
       {
       rDstBO = DtpMapService.runMap("InputToOutput1",
          DtpMapService.CWMAPTYPE,rSrcBO,cwExecCtx);
  
       ObjOutput1.setContent(rDstBO[0]);
       }
  
    catch (MapFailureException e)
       {
       e.toString();
       e.printStackTrace();
       raiseException(e);
       }
  
    catch (MapNotFoundException e)
       {
          raiseException("MapNotFoundException",
             "runMap did not find map");
       }
  
    catch (Exception e)
       {
       e.printStackTrace();
       }
    }
 

Copyright IBM Corp. 2004