| 

.NET C# Java Javascript Exception

Problem mit Annotationen an Parametern von Closures

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.


Problem mit Annotationen an Parametern von Closures

herrmama - 05.04.2010 11:19
Hallo zusammen,

ich verwende Groovy als Teil von COPE (http://cope.in.tum.de/pmwiki.php) um eine Modellmigration zu definieren, die durch eine Metamodelländerung notwendig wird. Vor kurzem wollte ich von Groovy Version 1.5.7 auf 1.7.0 umsteigen. Leider kompilieren jetzt meine existierenden Groovy-Dateien nicht mehr. Ich bekommen den Fehler "class description is not an annotation in @description" bei Annotationen an Parametern von Closures. Hier ein Codestück, bei dem das Problem auftritt:

----------------------------------------------------------------------------------------------------
import org.eclipse.emf.ecore.util.*
import edu.tum.cs.cope.migration.*

@label("New Class")
@description("In the metamodel, a new class is created. Nothing is changed in the model.")
newClassImpl = {
@description("The package in which the class is created") EPackage ePackage,
@description("The name of the new class") String name,
@description("The super classes of the new class") Collection<EClass> superClasses = [],
@description("Whether the class is abstract") boolean abstr = false ->

ePackage.newEClass(name, superClasses, abstr)
}
newClass = newClassImpl


@label("New Reference")
@description("In the metamodel, a new reference is created. Nothing is changed in the model.")
newReferenceImpl = {
@description("The class in which the reference is created") EClass eClass,
@description("The name of the new reference") String name,
@description("The type of the new reference") EClass type,
@description("The lower bound of the new reference") int lowerBound = 0,
@description("The upper bound of the new reference") int upperBound = 1,
@description("Whether the new reference is a containment reference") boolean containment = false,
@description("The opposite reference of the new reference") EReference opposite = null ->

eClass.newEReference(name, type, lowerBound, upperBound, containment, opposite)
}
newReference = newReferenceImpl
-----------------------------------------------------------------------------------------

Den Fehler bekomme ich nicht für die description Annotationen direkt vor dem Closure, sondern nur für die description Annotationen an seinen Parametern. Ich habe einige Sachen ausprobiert, z.B. die Annotationen explizit zu definieren, aber ich konnte leider keine Lösung für das Problem finden. Könnt ihr euch das bitte mal anschauen und mir helfen das Problem zu lösen? Wenn ich dieses Problem nicht lösen kann, kann ich leider nicht auf Groovy 1.7.0 umsteigen.
Vielen Dank für eure Hilfe im Voraus.

Markus

--
Markus Herrmannsdörfer Technische Universität München
[www4.in.tum.de] Institut für Informatik
phone: +49 (89) 289-17336 Software & Systems Engineering
fax: +49 (89) 289-17307 Boltzmannstraße 3
room: 01.11.043 85748 Garching


Stelle deine Groovy-Frage jetzt!


Diese Seite zeigt den Thread "Problem mit Annotationen an Parametern von Closures" 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.