¿Cómo pasar el parámetro a JsonSerializer?

Tengo un servicio de datos simple:

@GET
public Data getData(@QueryParam("id") Long id) {
  Data data = dataService.getData(id);
  return data;
}

Y una coincidenciaDataSerializer que implementaJsonSerializer<Data> : LosDataSerializer está registrado en Jackson a través de:

simpleModule.addSerializer(Data.class , dataSerializer);
ObjectMapper mapper = new ObjectMapper();
mapper.registerModule(simpleModule);

Funciona bien. Pero hoy, quiero agregar otroLocale parámetro, y espero que elDataSerializer para dar salida al contenido correspondiente:

@GET
public Data getData(@QueryParam("id") Long id , @QueryParam("locale") Locale locale)

Los 'Data'en sí contiene varias variaciones de configuración regional, y espero que e obtenga la salida de configuración regional asignada.

Pero cuando recibo ellocale desde el parámetro, no sé cómo pasar ellocale valor para elDataSerializer

¿Hay alguna forma de lograr esto?

Excepto esta solución:

Data data = dataService.getData(id.get() , locale);

que no es lo que quiero

PareceThreadLocal es la única forma de lograr esto, pero siento que es feo. ¿Alguna otra solución factible?

Gracias.

Entornos: dropwizard-0.7.0-rc2, jackson-core: jar: 2.3.1

===================== actualizado ==========

responde a @ andrei-i:

Porque mis datos ya contienen varias versiones locales. por ejemplo :

Data helloData = dataService.get("hello");
helloData.getName(Locale.English) == "Hello";
helloData.getName(Locale.France) == "Bonjour";
helloData.getName(Locale.Germany) == "Hallo";

Quiero pasar directamente la configuración regional de la URL a JsonSerializer, para obtener una versión de la presentación de datos.

Y 'puede' haber otra versión (no solo la configuración regional), por lo que no se considera heredar la mezcla de datos.

Respuestas a la pregunta(2)

Su respuesta a la pregunta