0

PIMの作成にはEAを使用しています。Javaコードを直接生成すると、必要な場所で正しいデータ型が得られます-関連付けプロパティに修飾子を設定するマップは、マップになることを理解しています。そして、それは期待どおりに機能します。ただし、MDA 変換と生成コードを実行すると、プロパティは List に変換されます (これは悪いことです) バグ セッターとゲッター メソッドは、次の例のように Map を使用し続けます。

public class Check {

private List< Comp> comps;
private List< Gratuity> gratuities;

public Check(){

}

public Map<String, Comp> getcomps(){
    return comps;
}

public Map<String, Gratuity> getgratuities(){
    return gratuities;
}

Java のデフォルトの変換パッケージを使用しています。コネクタの Java 変換に次の行を追加しようとしましたが、ソース セクションです

%connectorType%
%PI="\n  "%
{
%TRANSFORM_CURRENT()%
%TRANSFORM_REFERENCE("Connector",connectorGUID)%
Source
{
%TRANSFORM_REFERENCE("Class",connectorSourceElemGUID)%
access=%qt%%connectorSourceAccess == "Public" ? "Private" : value%%qt%
qualifier=%connectorSourceQualifier%
%TRANSFORM_CURRENT("Source","access")% 
}
Target
{
%TRANSFORM_REFERENCE("Class",connectorDestElemGUID)%
access=%qt%%connectorDestAccess == "Public" ? "Private" : value%%qt%
%TRANSFORM_CURRENT("Target","access")%
%PI="\n"%
}
}

しかし、それは役に立たないようです

4

2 に答える 2

0

これは不完全な回答ですが、コメントするには長すぎます。

コネクタ ソース修飾子によって、使用されるコレクション クラス (Map、List) が決まるとは思えません。ここには、MDA 変換テンプレート、コード生成テンプレート、コレクション クラス オプションの 3 つが含まれます。

ツール -- オプション -- ソース コード エンジニアリング -- Java を確認します。そこには、デフォルトのコレクション クラスと追加のコレクション クラス (これらは属性に使用されます) の設定、および ([コレクション クラス] ボタンをクリックして) 関連付けのコレクション クラスの設定があります。これらを確認してください。

また、Java コード生成用の Linked Attribute Declaration テンプレートも確認してください。これは修飾子をチェックしないように思えますが、%linkAttCollectionClass% をチェックします。

于 2013-10-13T20:51:27.950 に答える
0

エンタープライズ アーキテクト サポートから返信がありましたが、これはバグです - 元のメッセージ:

コネクタの「修飾子」の変換に関する問題があるため、機能しません。

変換テンプレート '%TRANSFORM_CURRENT()%' (および新しく追加された 'qualifier="tr: String') はすべて正しいですが、この問題により、その修飾子の値を変換できません。

この問題は、EA の今後のリリースで解決する予定です。残念ながら、私はリリースのタイムフレームを提供することはできません.

問題 ID: 13106266

于 2013-10-22T11:07:55.343 に答える