Hallo,
bei einer Anwendung möchte ich verschiedene XML-Dateien einlesen. In diesen Dateien sind 'Objekte' also im Prinzip z.B
Man soll mehrere XML-Dateien gleichzeitig einlesen, darstellen und ändern können, also als WYSIWYG, nicht das XML an sich. Nun kann es vorkommen, dass Man z.B. XML-Dateien gleichzeitig öffnet, die das gleiche 'Objekt' enthalten, jedenfalls laut ID. Z.B. man hat eine XML-Datei in der alle Klassen aufgelistet sind, in einer anderen Datei sind die Zimmerbelegungen aufgelistet. (Ich weiß, mit Datenbanken ließe sich das viel einfacher realisieren, aber das geht in dem Fall nicht.)
Ich habe mir nun gedacht, dass ich für Objekte eines Typs einfach eine Hashtable anlege und sie dort reinspeichere und bei der Darstellung der XML-Dateien im WYSIWYG immer nur die Referenzen auf das entsprechende Objekt habe. Also z.B. wenn ich eine JTable hat, die die verschiedenen Klassen mit allen Attributen etc. darstellt, sind da nur die Referenzen auf die Objekte, die in der Hashtable sind, abgelegt. Gleichzeitig wird vielleicht eine Tabelle dargestellt, die die Zimmerbelegung für die Klassen anzeigt, dort benutze ich auch nur eine Referenz. Wenn man jetzt dort den Lehrer ändert/editiert kann dann automatisch auch die andere Ansicht aktualisiert werden, da sich ja das eine Objekt ändert.
Die Frage ist nun, sollte man dies so machen oder ist das ein ganz falscher Ansatz.
Und die zweite Frage ist, wenn ich beim Einlesen einer Datei die Objekte in die Hashtable speichere, und beim einlesen einer zweiten Datei nur schaue ob ein Objekt schon existiert (kann ich über die ID prüfen) dann bleiben die Objekte ja immer in der Hashtable liegen, weil dort immer eine Referenz vorhanden ist. Kann man irgendwie zählen, wieviele Referenzen auf ein Objekt bestehen, denn wenn man alle 'Views'/XML-Dateien wieder schließen würde, bräuchte man das Objekt ja nicht mehr.
Wahrscheinlich habe ich mich vollkommen unverständlich ausgedrückt. Ich würde mich trotzdem freuen, wenn jemand eine Idee hat.
bei einer Anwendung möchte ich verschiedene XML-Dateien einlesen. In diesen Dateien sind 'Objekte' also im Prinzip z.B
Code:
<Klasse>
<Id></Id>
<Klassenlehrer>Herr SoUndSo</Klassenlehrer>
</Klasse>
Man soll mehrere XML-Dateien gleichzeitig einlesen, darstellen und ändern können, also als WYSIWYG, nicht das XML an sich. Nun kann es vorkommen, dass Man z.B. XML-Dateien gleichzeitig öffnet, die das gleiche 'Objekt' enthalten, jedenfalls laut ID. Z.B. man hat eine XML-Datei in der alle Klassen aufgelistet sind, in einer anderen Datei sind die Zimmerbelegungen aufgelistet. (Ich weiß, mit Datenbanken ließe sich das viel einfacher realisieren, aber das geht in dem Fall nicht.)
Ich habe mir nun gedacht, dass ich für Objekte eines Typs einfach eine Hashtable anlege und sie dort reinspeichere und bei der Darstellung der XML-Dateien im WYSIWYG immer nur die Referenzen auf das entsprechende Objekt habe. Also z.B. wenn ich eine JTable hat, die die verschiedenen Klassen mit allen Attributen etc. darstellt, sind da nur die Referenzen auf die Objekte, die in der Hashtable sind, abgelegt. Gleichzeitig wird vielleicht eine Tabelle dargestellt, die die Zimmerbelegung für die Klassen anzeigt, dort benutze ich auch nur eine Referenz. Wenn man jetzt dort den Lehrer ändert/editiert kann dann automatisch auch die andere Ansicht aktualisiert werden, da sich ja das eine Objekt ändert.
Die Frage ist nun, sollte man dies so machen oder ist das ein ganz falscher Ansatz.
Und die zweite Frage ist, wenn ich beim Einlesen einer Datei die Objekte in die Hashtable speichere, und beim einlesen einer zweiten Datei nur schaue ob ein Objekt schon existiert (kann ich über die ID prüfen) dann bleiben die Objekte ja immer in der Hashtable liegen, weil dort immer eine Referenz vorhanden ist. Kann man irgendwie zählen, wieviele Referenzen auf ein Objekt bestehen, denn wenn man alle 'Views'/XML-Dateien wieder schließen würde, bräuchte man das Objekt ja nicht mehr.
Wahrscheinlich habe ich mich vollkommen unverständlich ausgedrückt. Ich würde mich trotzdem freuen, wenn jemand eine Idee hat.