我有xtext文件類似於這裏描述的xtext: (www.ebpml.org/blog2/index.php/2010/11/05/mde-xtext-and-json )Xtext - 生成對象 - 生成更多數據
JSONDataSource: root = Object ;
Object: '{' firstObject=TerminalObject (',' objects+=TerminalObject)* '}';
Array: '['firstItem=ObjectValue (',' items+=ObjectValue)* ']';
EmptyObject: isEmpty?= '{}' ;
EmptyArray: isEmpty?= '[]' ;
ObjectValue: value=STRING | Object | Array | EmptyObject | EmptyArray ;
TerminalObject: element=STRING ':' (content = ObjectValue) ;
所以在生成代碼後,我有所有在java中生成的對象。 現在我想在這些生成的java文件中有更多的方法。
這樣做的最佳方法是什麼?
謝謝:)
請詳細說明在生成的java文件中使用方法是什麼意思?你是否根據這些值編寫了一個生成器?或者你想在數據源文件中寫一個方法嗎? –
爲上述xtext文件生成的代碼是類JSONDataSource,Object,Array,EmptyObject,EmptyArray,ObjectValue,TerminalObject作爲接口,並且正在生成上述的impl類。 例如生成的類是附加的 –
public class ArrayImpl extends ObjectValueImpl implements Array protected ObjectValue firstItem; 保護EList項目; 保護ArrayImpl(){ 超();} @覆蓋 保護的EClass eStaticClass(){ 返回JsonPackage.Literals.ARRAY;} 公共ObjectValue getFirstItem(){ 返回與firstItem;} 公共NotificationChain basicSetFirstItem(ObjectValue newFirstItem ,NotificationChain消息) {..} 公共無效setFirstItem(ObjectValue newFirstItem) {..} 公共的EList getItems() {..} –