Acceleo在生成代码的时候支持两种方式支持用户代码块。用户代码块限定了使用生成模板一次性生成代码的部分,允许以增量的方式进行修改,并且在指定的代码块中保存用户的修改。
1 保护机制:使用 [protected (id)]...[/protected]结构
//[protected ('imports')]
//@Override
//[/protected]
使用该结构生成的代码块会保护用户的修改,在进行第二次生成的时候,不会覆盖用户的修改。
//Start of user code imports
//@Override
//End of user code
如果将@Oveeride删除之后,再次生成不会生成该语句。
注:位于该结构外面的代码块不会保护用户的修改,在进行第二次生成的时候,会覆盖用户的修改。
super.onCreate(savedInstanceState);
如果将该句话删除之后,再次生成会生成该语句。
2 第二种针对Java语言的生成器,添加@generated注解。(还没有自己做实验验证)
添加该注解的部分,再次生成不会记录用户的修改,会进行改变。
添加其他注解部分(@generated NOT @not-generated),再次生成会记录用户的修改,不会改变。