掲示板一覧   -   トピック一覧
   EA ソースコード生成・コード生成テンプレート
     ステートマシンのソースコードの生成/読み込みで操作が重複して生成される


フラット表示 前のトピック | 次のトピック
投稿者 トピック
sugimoto
投稿日時: 2011-7-5 10:42
EA Administrator
投稿: 1895

ステートマシンのソースコードの生成/読み込みで操作が重複して生成される

サポートに寄せられたご質問の要約です。

○ご質問

ステートマシンを含むクラスのソースを生成/読み込みする場合、
読み込みの際にクラスの操作として取り込まれるため、
繰り返すと重複してソースが出力されてしまいます。

1)ソース生成の際にステートマシンの出力のオン/オフを選べるように
 テンプレートをカスタマイズする方法はありますでしょうか?

2)読み込みの際に、ステートマシンに該当する部分を
 読み込まないようにする方法はありますでしょうか?

○回答

ステートマシン図を含むクラス要素につきましては、上書き生成のみ対応しており、
リバースすることは考慮に入れられておりません。


1)ステートマシン図を含むクラス要素には、ステートマシン図を生成するための
 メソッドの定義はないが、一度生成した後、読み込みをすると、クラス要素内に
 メソッドとして作成されるため、次回生成した際に同じ名前のメソッドが2つ
 生成されているということではないかと思います。

 このため、ご質問とは異なりますが、クラス要素に設定されたメソッドで
 ステートマシン図と同じ名前の場合は生成しないことができるか?という
 お問い合わせではないかと思っています。

 この場合は、ソースコード生成ルールをカスタマイズし、該当のメソッドは
 生成しないようにすることは可能です。
 コード生成テンプレートのOperationの先頭で、if文で上記判断を行い、
 不要な条件に一致する場合はendTemplateを行うことになります。

 もし、ステートマシン図用のメソッド名に何か規則がある場合は、
 操作の名前にその規則が含まれているかを判定することで、
 容易に該当の操作を生成しないようにすることは可能です。

 例)Operationテンプレートの先頭で
 $index = %FIND(opName,"state")%
 %if $index!= "-1"%
 %endTemplate%

2) 読み込みルールのカスタマイズにつきましては、EAの機能としては
 対応はしておりません。

 関連する情報を以下の掲示板に掲載しております。
 「「ソースディレクトリの読み込み」をカスタマイズできますか?」
 https://www.sparxsystems.jp/forum/modules/xhnewbb/viewtopic.php?topic_id=4027

 上記掲示板の中にあるサービスについては、以下のWebページに記載しております。
 https://www.sparxsystems.jp/advanced.htm
フラット表示 前のトピック | 次のトピック

題名 投稿者 日時
 » ステートマシンのソースコードの生成/読み込みで操作が重複して生成される sugimoto 2011-7-5 10:42