変更管理の委任
wt.change2 パッケージにはカスタマイズを可能にする委任が定義されています。以下の概要を読むと、その基本がわかります。
ConcreteAssociationDelegate
ConcreteAssociationDelegate は StandardChangeService2 内で使用します。これは、Change2DelegateFactory から取得します。
ConcreteAssociationDelegate の多くのサブクラスがあります。それぞれが 2 つの引数をとり、2 つのオブジェクトをリンクしています。それぞれが 2 つのオブジェクトをリンクするリンクオブジェクトを返します。リンクオブジェクトに属する属性に値を追加するメカニズムはないので、このメカニズムは、追加の属性を使用してカスタマイズされないリンクオブジェクトに最適です。
この代理を複雑にしているもう 1 つの要因は、メインのクラスをカスタマイズする場合に、直感的に理解できないプロパティファイルエントリを追加する必要があることです。
カスタマイゼーションパッケージ内の myChange2 パッケージの変更オーダーをカスタマイズ (つまり、wt.change2.WTChangeOrder2 のサブクラスを作成) して、MyChangeOrder という名前を付けたと仮定します。
wt.change2.ConcreteAssociationDelegate の適切なサブクラスを探す場合は、変更オーダーを変更リクエストにリンクするときに wt.change2.change2.properties のセクション 9 にある次のエントリを使用します。
wt.services/svc/default/wt.change2.ConcreteAssociationDelegate/
wt.change2.WTChangeOrder2/wt.change2.WTChangeRequest2/
1=wt.change2.AddressedBy2Delegate/singleton
• wt.change2.WTChangeRequest2 への参照は、継承が適用されるフィールドにあります。言い換えると、wt.change2.WTChangeRequest2 を customization.myChange2.MyChangeRequest としてサブクラス化した場合、customization.myChange2.MyChangeRequest は wt.change2.WTChangeRequest2 なので、委任検索プロセスでは引き続きプロパティファイルのこの行を使用します。
• wt.change2.WTChangeOrder2 への参照は、継承が適用されないフィールドにあります。言い換えると、wt.change2.WTChangeOrder2 を customization.myChange2.MyChangeOrder としてサブクラス化した場合、文字列 "customization.myChange2.MyChangeOrder2" は文字列 "wt.change2.WTChangeOrder2" と完全には一致しないので、代理検索プロセスではプロパティファイルのこの行は使用されません。必要なのは、次に示すプロパティファイルの別の行です。
wt.services/svc/default/wt.change2.ConcreteAssociationDelegate/
customization.myChange2.MyChangeOrder/
wt.change2.WTChangeRequest2/
1=wt.change2.AddressedBy2Delegate/singleton