1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
|
/**
* Désérialise un objet sauvegarder dans une structure XML
*
* @param <T> le type objet correspondant au fichier XML sérialisé
* @param xmlStream le flux contenant la structure XML à charger
* @param destClass la class de l'objet serialisé
* @param gzip true si la structure est compressé au format gzip, false sinon
* @return l'objet désérialisé
* @throws JAXBException
*/
public static <T> T loadMarshallStructure(InputStream xmlStream, Class<T> destClass, boolean gzip)
throws JAXBException, IOException {
T structure = null;
// on crée un contexte JAXB
JAXBContext context = JAXBContext.newInstance(destClass);
// on crée un Unmarshaller à partir du contexte
Unmarshaller um = context.createUnmarshaller();
InputStream is;
if(gzip)
is = new GZIPInputStream(xmlStream);
else
is = xmlStream;
// on demande au marshaller de générer la structure
structure = (T)um.unmarshal(is);
is.close();
return structure;
} |
Partager