掲示板一覧   -   トピック一覧
   Enterprise Architect 全般
     「属性の既定の名前」の設定方法


スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 トピック
未登録ゲスト
投稿日時: 2004-10-24 2:04

「属性の既定の名前」の設定方法

自動的に生成される属性名を小文字開始の大文字接続の形式,"hogeHoge"のようにしたいのですが,どのように設定すればよいのでしょうか?

ローカルオプションの「生成」-「属性と操作」の「属性に関する設定」で「属性の既定の名前」にデフォルトでは"m_$LinkClass"となっているのですが,これだと例えばクラス名が"HogeHoge"の場合,"m_HogeHoge"となってしまいます.
"$linkClass"とかやってみたのですが,そのまま出力されました.

きちんと関連端名を記述するしかないのでしょうか?

あと,"$LinkClass"とかのような設定用マクロ言語(?)の説明ってどこかにあるのでしょうか?
tkouno
投稿日時: 2004-10-25 9:54
EA Administrator
投稿: 3939

Re: 「属性の既定の名前」の設定方法

ご要望の内容としては、
・モデル内ではHogeHogeと大文字になっているクラスを
・出力時にはhogeHogeとしたい
ということでよろしいでしょうか?

ちょっと意図がわかりませんでしたので、ご確認をお願いします。

なお、その場合には、コード生成テンプレートを編集することで
ご希望の結果を得られるのではないかと思います。


なお、$LinkClassにつきましては、属性の名前を意味する
ただの文字列であり、特に意味はありません。また、
ここに別のマクロを利用できるというわけでもありません。
(変数名の前にm_をつけたい、とか後ろに_をつけたい、とか
指定する場合に、こうした文字列がないと指定しづらいかと
思います)

未登録ゲスト
投稿日時: 2004-11-3 5:07

Re: 「属性の既定の名前」の設定方法

すみません.
最近見ていなかったので,返事が遅れました.

ちょっと,違うようなのですが,もしかしたらコードテンプレートなら出来るのかも.


こちらの意図していたのは,関連端名の自動生成です.

例えば,A->HogeHogeの場合,


class A {
  HogeHoge m_HogeHoge;
}


と"m_HogeHoge"という関連端名を自動的にクラス名から生成してくれますが,これを


class A {
  HogeHoge hogeHoge;
}


としたいのです.

この場合,コードテンプレートをいじるしかないのでしょうか?
#ヘルプを読むのが面倒ですけど.

ちなみにこの生成がJavaのデフォルトなのもちょっといけていません.
以下のサイトのものがデフォルトであるべきだと思いますが.
#もっとも個人的には全てagreeなわけではないけど…

Code Conventions for the Java Programming Language
未登録ゲスト
投稿日時: 2004-11-3 23:39

Re: 「属性の既定の名前」の設定方法

Javaのデフォルトのコードテンプレートは、未登録ゲストさんの言っている内容になってくれることに一票。
tkouno
投稿日時: 2004-11-4 10:09
EA Administrator
投稿: 3939

Re: 「属性の既定の名前」の設定方法

まず、変数の名前の既定値がm_$LinkClassになっている件については
この設定は全ての言語に共通の値ということもあり、Javaに
特化した値にはできない、ということはご理解いただけるのではないかと思います。

その上で、コード生成時につきましては、
JavaのLinkedAttributeDeclarationの下から3行目にある
%REPLACE(genOptDefaultAssocAttNameで始まる行を

$head=%LEFT(linkAttName,"1")%
%TO_LOWER($head)%
%MID(linkAttName,"1")%
;

という4行で置換することで、希望の出力結果になると思いますので
ぜひお試しください。


変数名などの名前付けの規則については、会社や部署や各個人において
さまざまな考え方があるかと思いますので、弊社としましては
特定の考え方が正しい、と考えることはいたしておりません。
また、そうした背景があるがゆえに、このコードテンプレートの
カスタマイズ機能があると考えております。

このあたりにつきましては、ぜひご利用になる部署や各個人の
「オリジナルEABase.eapテンプレート」を作成の上、
それをご利用になると、毎回変更する手間が省けますので
よろしいかと思います。


スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ