Buenas,
Si la vas a utilizar desde muchos sitios de primeras creo que yo si que la envolvería en algún tipo de clase de utilidad para no duplicar código.
Por otro lado seria interesante que optimices las creaciones del marshallers y unmarshallers JAXB, ya que son muy costosas y lo suyo seria reutilizarlo.
No es exactamente lo que buscas pero este articulo es bastante interesante:
https://elandings.atlassian.net/wiki/display/ifdoc/Tutorial+04+-+Improving+the+JAXB+code+and+Adding+Wrapper+Classes+to+the+Client
Un saludo,
Hola
Tengo un codigo, abajo, que va a ser muy utilizado en mi aplicacion desde todos los puntos donse se tenga que pasar a objeto o a xml usando JAXB .
son diferentes xmls que corresponden a diferentes clases de JAXB y quiero que se use este codigo para convertir a objeto y xml.
en vez de usarlo directamente desde las diferentes clases seria conveniente ponerle alguna emboltura?
le dariais alguna forma concreta a esta clase o a su emboltura si fuera necesaria para usarla de manera mas eficiente?
Muchisimas Gracias
public static String marshall(Class<?> clazz,Object o){
try {
final JAXBContext context = JAXBContext.newInstance(clazz);
final Marshaller marshaller = context.createMarshaller();
marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, Boolean.TRUE);
final StringWriter stringWriter = new StringWriter();
marshaller.marshal(o, stringWriter);
return stringWriter.toString();
} catch (JAXBException e) { }
}
public static Object unMarshall(Class<?> clazz,String strXML){
ByteArrayInputStream input = new ByteArrayInputStream (strXML.getBytes());
JAXBContext context;
try {
context = JAXBContext.newInstance(clazz);
Unmarshaller u = context.createUnmarshaller ();
return u.unmarshal (input);
} catch (JAXBException e) { }
}