掲示板一覧 - トピック一覧 Enterprise Architect 全般
メンバ変数の初期値が「タグ付き値」の「initializer」部分に移動してしまう件について |
| スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
| 投稿者 | トピック |
|---|---|
| 未登録ゲスト | 投稿日時: 2008-4-24 20:32 |
メンバ変数の初期値が「タグ付き値」の「initializer」部分に移動してしまう件についてお疲れ様です。
いつもお世話になっています。 メンバ変数の初期値が「タグ付き値」の「initializer」部分に移動してしまうという現象が起きました。 現象の確認よろしくお願い致します。 移動してしまうのは問題だと思います。 オプションの設定等で移動しなくなったり対応方法などがあれば 教えてください。 よろしくお願い致します。 【現象】 1.「属性のプロパティ」画面にてメンバ変数を追加し「初期値」に値を追加。 2.「ソースコードの生成」を行なう。 3.「ソースコードの読み込み」を行なう。 4.メンバ変数の初期値が「初期値」ではなく、クラスのコンストラクタの 「タグ付き値」の「initializer」部分に移動される。 ※ソースコード上では問題ありません。 【環境】 EAバージョン7.1.828(ビルド:828) 以上よろしくお願い致します。 |
|
| tkouno | 投稿日時: 2008-4-25 9:07 |
EA Administrator ![]() ![]() 投稿: 3939 |
Re: メンバ変数の初期値が「タグ付き値」の「initializer」部分に移動してしまう件についてご迷惑をおかけし申し訳ございません。
ご指摘の件につきまして、再現することができませんでした。 過去のご質問の内容から推測すると、対象の言語はC++でしょうか? ただ、C++では、属性の初期値の情報はソースコードには反映されませんので、 あるいは、他の言語でしょうか? お手数をおかけし申し訳ございませんが、もう少し詳細な 情報をお寄せください。 |
| 未登録ゲスト | 投稿日時: 2008-4-25 11:08 |
Re: メンバ変数の初期値が「タグ付き値」の「initializer」部分に移動してしまう件についてお疲れ様です。
対象言語は、C++です。 メンバ変数の「属性の初期値」情報をコード生成するように「コード生成のテンプレート」を修正しています。 また、クラスのコンストラクタの「タグ付き値」の「initializer」部分にメンバ変数の初期値設定がされている場合 についてもコード生成するように「コード生成のテンプレート」を修正しています。 EAのメンバ変数の「属性の初期値」情報がある場合、 以下のような【ソースコード】について「ソースコードの読み込み」を行なった時の 以下記載の2件について今現在問題になっています。 (1)メンバ変数の「属性の初期値」が削除される。 (2)メンバ変数のクラスのコンストラクタの「タグ付き値」の「initializer」に初期値が追加される。 以下に現象が起きたいときの例を記入致します。 【メンバ変数】 Private int m_Test 【メンバ変数の初期値】 0 【ソースコード】 CTestClass::CTestClass () : m_Test(0) { } 【状況一覧】 ソースコードの読み込み: 前、 後 「属性の初期値」: 0、 削除 「タグ付き値」の「initializer」: なし、 m_Test(0) ご不明な点などありましたらご連絡ください。 以上よろしくお願い致します。 |
|
| tkouno | 投稿日時: 2008-4-25 11:25 |
EA Administrator ![]() ![]() 投稿: 3939 |
Re: メンバ変数の初期値が「タグ付き値」の「initializer」部分に移動してしまう件について詳細な情報をお寄せ下さいまして
ありがとうございました。 今回の件、どちらも現状のEnterprise Architectの意図した 正しい挙動となります。 (また、これらの挙動は以前より変わっていないという認識です。 この点について、以前は初期値が削除されなかったという 点があれば、お知らせください。) まず、初期値の件ですが、Enterprise Architectの既定の テンプレートでは初期値の情報は出力されません。 また、読み込みの際にはヘッダファイル内の Private int m_Test; の部分のみが解析対象となっています。 ここには、初期値の情報がないため、初期値の情報を 初期化しています。 (対応する情報がない場合に値を空にすべきかどうか、については 検討すべき課題だと思います。) そのため、コードからの読み込みを実行すると、初期値が 消えるように見えます。 また、この初期値の挙動とは全く関係なく、 Enterprise Architectの動作として、クラスのコンストラクタに 付随する初期化情報は、タグ付き値に保存して 既定のテンプレートの状態で、ラウンドトリップできるようにしています。 これらの2つの挙動をあわせますと、確かに「移動した」ように 見えますが、これはEnterprise Architectが移動したわけではなく 上記2つのまったく別の挙動が組み合わさった結果、と ご理解ください。 その上で、解決策としては、 ・C++の場合には初期値の情報がない(不明)のだから、初期値の情報は 削除しないように変更する か、あるいは ・003107さんが行っているようなテンプレートをEnterprise Architectの 既定のテンプレートとし、この内容に対応して 属性の初期値の情報を同期できるようにする のいずれか(あるいは両方)になるかと思います。 いずれにしましても、ご指摘の件はバグではなく Enterprise Architectの意図した2つの挙動です。 ご指摘の件は機能改善要望として検討させていただきます。 引き続きご迷惑をおかけし申し訳ございませんが ご理解いただけますと助かります。 |
| 未登録ゲスト | 投稿日時: 2008-4-25 14:37 |
Re: メンバ変数の初期値が「タグ付き値」の「initializer」部分に移動してしまう件についてお疲れ様です。
--------------------------------------------------------------------- その上で、解決策としては、 ・C++の場合には初期値の情報がない(不明)のだから、初期値の情報は 削除しないように変更する --------------------------------------------------------------------- 以上の対策案に関して 「ソースコードの読み込み」時、初期値情報を削除しないようにテンプレートを 修正するということでしょうか? 以前、「ソースコードの読み込み」のテンプレートは修正出来ないという話を伺ったのですが。 機能改善要望としての検討、よろしくお願い致します。 |
|
| tkouno | 投稿日時: 2008-4-25 17:57 |
EA Administrator ![]() ![]() 投稿: 3939 |
Re: メンバ変数の初期値が「タグ付き値」の「initializer」部分に移動してしまう件について当方の説明が悪く、お手数をおかけし申し訳ございません。
ご理解の通り、「ソースコードの読み込み」のテンプレートは 修正できません。 よって、今回の解決案は、いずれもEnterprise Architect側で 修正すべき問題です。お客様側で回避可能な方法では ございません。 この点について不明瞭であり、申し訳ございませんでした。 |
| 未登録ゲスト | 投稿日時: 2008-5-8 16:37 |
Re: メンバ変数の初期値が「タグ付き値」の「initializer」部分に移動してしまう件について解答ありがとうございました。
今後ともよろしくお願い致します。 |
|
| スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |




