ich eine Grammatik, die Xtext: Erstellen Sie eine eindeutige ID für Objekte
A:
...
B:
...
gebe ich möchte in der Lage sein wie
sieht jedes Element vom Typ B eine Seriennummer. Jedes Mal, wenn die Grammatik ein B-Objekt erstellt, erhält sie eine (eindeutige) neue ID als Feld.Ich habe versucht, wie etwas zu tun:
B:
myID=Tracer.getID()
...
wo:
class Tracer {
static int ID=0;
static int getID() { return ID++;}
Aber ich externe Java-Klasse nicht aus der Grammatik aufrufen können.
Es wäre besser, wenn es lösbar ist, ohne die src-gen-Dateien zu berühren.
Danke.
Haben Sie darüber nachgedacht, für ein externes Metamodell zu wechseln? Der Erweiterungspunkt 'IXtext2EcorePostProcessor' wird in 2.9+ nicht mehr so gut unterstützt. (https://bugs.eclipse.org/bugs/show_bug.cgi?id=483209) –
Ich versuche es zu tun, wie in Ihrem Blog https://christiandietrich.wordpress.com/2011/07/22/customizing -xtext-metamodel-inference-using-xtend2/aber ich finde org.eclipse.xtext.generator.Generator nicht. Ist es org.eclipse.emf.codegen.ecore.Generator oder org.eclipse.emf.codegen.ecore.generator.Generator? Oder vielleicht die Schnittstelle org.eclipse.xtext.generator.IGenerator? –
in xtext 2.9+ es ist wie im Fehler beschrieben –