[XStream] Wie Standard-unmashal im eigenen Converter benutzen?

metaner

Mitglied
Hallo,

folgende Ausgangssituation: Ich habe zahlreiche fachliche Klasse die alle von der Oberklasse "ApplicationObject" abgeleitet sind. Jedes Objekt einer fachliche Klasse kann in Attributen ggf. Objekte anderer fachlicher Klasse enthalten. Diese komplexen fachlichen Objekte werden bereits mit XStream erfolgreich nach XML konvertiert bzw. aus XML erzeugt.

Nun möchte ich die Art und Weise, wie diese fachlichen Objekte in XML geschrieben werden beeinflussen. Zu diesem Zweck habe ich einen eigenen ApplicationObjectConverter erstellt und registriert. Dieser Converter wird auch von XStream genutzt, sobald ein Objekt der Oberklasse "ApplicationObject" gefunden wurde. Die Objekte werden auch nach meinen Wünschen in XML erzeugt.

Die Erzeugung der Objekte aus XML soll jedoch weiterhin nach dem Standardverhalten von XStream erfolgen (vermutlich der des ReflectionConverter's). Daher meine Frage: Wie lässt sich der übergebene Content in der unmashal(...)-Methode meines eigenen Converters so verarbeiten, wie es standardmäßig XStream machen würde?

Gruß Jan
 

Harry Kane

Top Contributor
Da musst du wohl etwas experimentieren.
Wie wärs wenn du deinen ApplicationObjectConverter von ReflectionConverter ableitest und die marshall Methode nicht überschreibst? Oder du hältst in deiner converter-Klasse eine Referenz auf eine ReflectionConverter Instanz und lässt diese das marshalling übernehmen?
 

metaner

Mitglied
Danke für Eure Rückmeldungen. Die Tutorials kenne ich natürlich von der XStream-Seite. Ist auch nicht mein erster Converter den ich schreibe ... aber der erste, bei dem ich nur einen Teil des Standards überschreiben möchte.

Ich habe am Freitag nun doch die unmashal() Methode meines Converters so implementiert, dass dieser aus dem XML meine fachlichen Klassen erzeugt. Habe dafür Reflections und rekursive Aufrufe der unmashal()-Methode benutzt. War letztlich doch nicht so wild ... leider ist die Javadoc :rtfm: zum XStream wenig hilfreich (weil kaum dokumentiert ist). Aber "try & error" haben dann doch zum Ziel geführt. :D

Das "Problem" ist somit erledigt! Schönes Wochenende.
 
Zuletzt bearbeitet:

Ähnliche Java Themen

Neue Themen


Oben