Ich arbeite gerade an einem Eclipse-Plugin. Ich möchte programmgesteuert eine Xtend-Klasse als Super-Klasse einer Java-Klasse festlegen. Wenn beide Klassen Java-Klassen wären, würde ich das mit der JDT-API tun. Das Problem ist, dass ich nicht über Java AST oder das Java Model auf die Xtend Klassen zugreifen kann.Programmgesteuertes Festlegen einer Xtend-Klasse als Superklasse einer Java-Klasse
Dies ist, was ich versucht, die Xtend Klassen zuzugreifen:
- eine
ASTParser
- mit mit
IJavaProject.findType()
Gibt es eine Möglichkeit, eine Xtend-Klasse als Superklasse zu setzen? Gibt es eine Möglichkeit, eine Oberklasse mit einer Zeichenfolge (Paket + Klassenname) ohne den Verweis auf die IType
oder TypeDeclaration
festzulegen?
EDIT: Sowohl die Java-Klasse als auch die Xtend-Klasse existieren bereits.
Vielen Dank für Ihre Antwort! Genau das habe ich gesucht. Die Klassen existieren bereits. Ich habe nie 'ASTRewrite' vorher benutzt, kannst du mir sagen, wie es funktioniert? – ConveniencePatterns
Nachdem wir bereits über die Tutorial-Folien "Wie man den JDT-Drachen trainiert" gesprochen haben, gehen Sie einfach auf Folie 46 für ein Intro. Darüber hinaus kann viel aus dem Durchsuchen der Implementierung von JDT/UI gelernt werden, wo alle Schnellkorrekturen/Hilfsprogramme und Refactorings mittels ast rewriting implementiert werden. –
Vielen Dank für Ihre Hilfe bis jetzt! Ich habe es mit all deinen Tipps und anderen Beispielen versucht, aber ich habe Mühe, die Änderungen in den Java-Klassen sichtbar zu machen. Ich habe hier eine Frage geschrieben, weil mir die Ideen ausgegangen sind: http://stackoverflow.com/questions/42279095/eclipse-ast-not-changing-class-files-when-wechselnde-typedeclaration – ConveniencePatterns