Ich habe eine xsd von einer externen Quelle, über die ich keine Kontrolle habe. Nun wollen wir den von JAXB generierten Klassen benutzerdefinierte Methoden hinzufügen, damit das Objekt mehr über sich selbst erfahren kann als ein einfacher POJO mit Gettern und Sätzen zu sein.Wie benutzerdefinierte Verhaltensweisen zu JAXB generierten Klassen hinzugefügt werden. Custom überschreiben bestehende Methoden
Die Idee ist, wie wenn wir diese Art von Ansatz implementieren, brauchen wir nicht das hydrierte Objekt zu bohren, sondern das Objekt nach bestimmten Informationen, die wir durch den Aufruf der benutzerdefinierten Methoden benötigen, und könnten bekommen was wir wollen?
Natürlich gibt es die traditionelle Programmierung Ansatz, wo ich weiter unten die Kinder von Kindern Kinder des Root-Objekts, Getter-Methoden auf jedem Kind aufrufen und Business-Logik implementieren. Aber irgendwie will es das Team hier nicht.
Ein Ansatz, den ich bisher gemacht habe, ist Brute Force One. Wie ich Klassen von XSD mit JAXB generieren. dann habe ich ein externes Dienstprogramm (im Moment ist dies ein eigenständiges Java-Programm), das bei der Ausführung einige Textdateien (auf unsere eigene Art und Weise strukturiert, um herauszufinden, welche Methode in welche .java-Datei gehen soll) in einem bestimmten Verzeichnis zu lesen welche die benutzerdefinierten Methoden enthält und diese Methoden in geeignete JAXB-generierte Klassen verschiebt. Jedes Mal, wenn ich eine neue Version von XSD bekomme, muss ich Klassen generieren, dieses Dienstprogramm aufrufen und eventuell einige Kompilierungsprobleme lösen, falls es Variablenänderungen in JAXB generierten Klassen gibt. Das Dienstprogramm funktioniert einwandfrei. Aber ich möchte das wissen.
Gibt es einen besseren Weg, dies zu tun? Ich habe das Internet überprüft. Es gibt einige Lösungen, die jedoch die vorhandenen get-Methoden in den JAXB-generierten Objekten überschreiben und keine komplett neuen Methoden hinzufügen.
Bitte vorschlagen.