ggalmazor/grails-i18n-fields-plugin — pull request #2 by jmartindiez (2012-11-08 18:37:15+00:00)
Title: Added equals and hashcode ast transformation

Aprovechando que a partir de Groovy 1.8, se proporcionan mecanismos para generar automáticamente los métodos equals y hashCode por medio de una transformación AST, he creado un par de clases nuevas que permiten generar con una anotación el equals y el hashCode en clases que previamente han sido internacionalizadas. Este equlas y hashCode generado, serán coherentes con el locale actual. Esto es, el hashCode de un objeto será el mismo aunque variemos el locale que se utiliza para acceder a los campos internacionalizados.

Esto permite, entre otras cosas, dejar que este código funcione.

def myInternationalizedObject = new InternationalizedObject()
def objectMap = [:]

withLocale(new Locale('es')) {
objectMap[myInternationalizedObject] = true
}

withLocale(new Locale('en')) {
assert objectMap[myInternationalizedObject]
}

Me he visto obligado a actualizar a Grails 2.1.1, lo que ha provocado que se rompan los tests que ya existían.

Un saludo,
Julián.