| |
[Java] 関連からフィールド作成関連端名を指定しない場合のフィールド名の既定値ですが、 $LinkClass を使用すると先頭が大文字になってしまい Java の規約に違反してしまいます。 そこで、コード生成テンプレートの LinkedAttributeDeclaration を以下のように変更してみました(抜粋)。
$initial="" %if $type != linkAttName% $initial = " = new " + $type + "()" $initial = %REPLACE($initial, ".List", ".ArrayList")% $initial = %REPLACE($initial, ".Map", ".LinkedHashMap")% %endIf%
%if linkAttRole != ""% %linkAttRole% $initial; %else% $name = %REPLACE(genOptDefaultAssocAttName,"$LinkClass",linkAttName)% $head = %LEFT($name, 1)% $name = %TO_LOWER($head)% + %MID($name, 1)% %if $type != linkAttName% $name += "s" %endIf% $name $initial; %endIf%
目的どおり、 java.util.List<Foo> foos = new java.util.ArrayList<Foo>(); のようなコードが生成できたのですが、 コード生成するたびにこの行が複製されてしまいます。 フィールド名を変更しているのが問題のようなのですが、 対処方法がわかりましたらご教示ください。
|