将代码注入生成的xText类中

时间:2013-04-12 14:16:10

标签: xtext

xText中名为“Component”的规则通常会在src-gen文件夹中生成一个“Component”类。 我想为这些类添加其他方法,而不是每次我对DSL进行微小更改时都会覆盖它们。将自己的代码注入这些类的正确方法是什么?有没有办法让所有类扩展我自己的根类而不是默认的EObject?

提前致谢。

1 个答案:

答案 0 :(得分:2)

你基本上有两个选择:

  • 您可以使用IXtext2EcorePostProcessor修改从语法中推断出的Xtext的EMF模型。实际的代码生成是由EMF完成的,因此您必须通过该瓶颈来调整代码。详细信息在blog of Christian Dietrich中描述。这种方法仅适用于小的修改。

  • 您可以使用“代沟模式”(也称为“实现间隙模式”),它允许您从生成的模型类派生的写入类。在这里你可以添加你想要的任何东西详细信息在blog of Heiko Behrens中描述。这种方法更适合通过继承进行大规模修改。

你当然可以混合两种方法......