| 

.NET C# Java Javascript Exception

Plugin-Entwicklung: dynamisches Einfügen von hasMany-Relation via AST-Transformation

Dies ist das Archiv des ehemaligen Forums zum Thema Groovy, Grails, Griffon und Bean Scripting Framework, welches unter groovy-forum.de existierte. Die neue Adresse des Groovy-Forums ist: http://codekicker.de/fragen/themen/groovy.


Plugin-Entwicklung: dynamisches Einfügen von hasMany-Relation via AST-Transformation

Schmettermann - 01.11.2010 18:36
Hallo,

ich stehe grade vor einer Herausvorderung im Bereich der Plugin-Entwicklung.
Ich möchte mit Hilfe eines Plugins bestimmten Domain-Klassen eine hasMany relation hinzufügen.

Beispiel:
Meine Grails-Application enthält folgende Domain-Klasse:

Class Page {
String title
String keyWords
String body
}

Mein Plugin enthält folgende Domain-Klasse:

Class Comment {
String header
String body
Date date
}

Nun möchte ich, dass mein Plugin automatisch allen Domain-Klassen die Relation

static hasMany = [comments:Comment]

hinzufügt.

Bisher habe ich es geschafft allen Domain-Klassen unter Verwendung einer AST-Transformation eine einfache Eigenschaft (z.B. ein Textfeld) hinzuzufügen.
Meine Frage ist: Wie füge ich einer Klasse via AST-Transformation eine hasMany-Relation hinzu?

Falls jemand weiß, wie Grails die hasMany-Relation intern darstellt (bzw. welche Java-Klasse intern verwendet wird), würde mir das auch sehr weiterhelfen.

Vielen Dank vorab!
Beste Grüße
Schmettermann


Re: Plugin-Entwicklung: dynamisches Einfügen von hasMany-Relation via AST-Transformation

milkyman - 02.11.2010 07:40
Moin moin.

Vielleicht kannst du mit der DefaultGrailsDomainClass was anfangen. Ich hab die allerdings bisher nur für den Lese-Zugriff genutzt, ob man damit auch was einfügen kann, weiß ich nicht.

Alternativ frag mal im Groovy-Forum nach, die kennen sich mit solchen Sprach-Interna meistens besser aus.

Bye,
Horst


Re: Plugin-Entwicklung: dynamisches Einfügen von hasMany-Relation via AST-Transformation

Schmettermann - 08.11.2010 20:10
Danke Horst,

ich werde mir die DefaultGrailsDomainClass genauer ansehen.

Ich denke auch, dass mein Vorhaben eher Groovy-lastig ist und im zuehörigen Forum jemand bescheid wissen könnte. Aber bevor ich dort meine Frage stelle, wollte ich hier erstmal anfragen, ob jemand weiß, mit Hilfe welcher Groovy-Klassen die hasMany-Relation innerhalb von realisiert wird.

Beste Grüße


Re: Plugin-Entwicklung: dynamisches Einfügen von hasMany-Relation via AST-Transformation

milkyman - 09.11.2010 12:33
Das hasMany wirst du innerhalb der DefaultGrailsDomainClass wiederfinden. Der Code ist nicht gerade toll kommentiert, aber mit ein wenig Zeit kann man halbwegs nachvollziehen, was da so alles passiert. Die Klasse hat auch die associationMap, in der die ganzen Beziehungen drin stecken.

Bye,
Horst


Stelle deine Groovy-Frage jetzt!


Diese Seite zeigt den Thread "Plugin-Entwicklung: dynamisches Einfügen von hasMany-Relation via AST-Transformation" der ehemaligen Webseite groovy-forum.de, welche durch einen Serverunfall zerstört wurde. codekicker.de hat viele Konversationen über die beliebte Programmiersprache Groovy und zugehörige Frameworks wie das Grails-Framework retten können.

Hast Du eine Frage zum Thema Groovy, Grails oder allgemein Java? Viele ehemalige groovy-forum.de Mitglieder beantworten dir auf codekicker.de deine Frage! Stelle jetzt eine Frage!

Viele weitere Diskussionen zu Grails und Groovy befinden sich auf der Threadübersicht des alten groovy-forum.de.