From 3e469e9f5b82f91f75e5772b432d15e665630935 Mon Sep 17 00:00:00 2001 From: joss Date: Tue, 10 Jun 2025 18:34:02 +0200 Subject: [PATCH] Text part wrote about model --- src/data/Model.java | 1 + text/content.troff | 13 ++++++++++++- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/src/data/Model.java b/src/data/Model.java index ba7ecb2..57a5d84 100644 --- a/src/data/Model.java +++ b/src/data/Model.java @@ -17,6 +17,7 @@ import java.util.HashMap; * UID als Key. Das erlaubt schnelle forward-lookups (also Suche nach Obj mit gegebener UID), * was die deutlich häufiger ausgeführte Operation sein sollte. */ +// TODO: Interface? public class Model { // die Hilfsvariable für das Singleton-Pattern diff --git a/text/content.troff b/text/content.troff index 9d55e0f..53c3674 100644 --- a/text/content.troff +++ b/text/content.troff @@ -70,7 +70,18 @@ Von dem DataObject erben nun mehrere Klassen, welche spezifischere Felder und Me Das hat den Vorteil dass das Model selber sich nur um die Verwaltung einer Liste von DataObjects kümmern muss ohne die genaue Semantik zu kennen oder eine Trennung zwischen verschiedenen Typen machen zu müssen. Für das Verwenden der Objekte werden dann Javas Möglichkeiten der Reflexion bzw. Introspektion benutzt. -.TODO Model erklären!\" +.TODO Mehr Informationen zum Model!\" +Das Model ist nun für die Verwaltung der DataObjects zuständig. +Es befindet sich in der Klasse \fChsmw.jotto5.beleg.data.Model\fR und ist als Interface konzipiert. +Dadurch ist das eigentliche Speichern der Daten unabhängig vom Rest des Codes, was zum Beispiel Anbindungen an Verzeichnisdienste oder relationale Datenbanken vereinfacht. +.TODO Klassendiagramm Model + +.H3 Beabeiten von DataObjects +Ein Bearbeiten der gespeicherten Daten soll für Endbenutzer*innen auch möglich sein. Dafür ist ein Formular unter dem Endpunkt \fC/object/\fR vorgesehen, mit \fC\fR als UID des Objektes. Um ein manuelles Anpassen des Formulars an alle möglichen Kindklassen von DataObject wurde dafür auf Reflexion zurückgegriffen. Für eine Filterung der Felder der Objekte nach sichtbar und bearbeitbar wird die Annotation \fCDataObject.WebField\fR verwendet. Sie besitzt als Attribute den String \fCdisplayAs\fR welcher angibt wie das Feld im Formular benannt werden soll. +.TODO Eventuelle weitere Attribute WebField\" + +Beim Aufruf des Endpunktes wird aus dem Model das Objekt mit der entsprechenden UID abgerufen. Mithilfe der \fCgetFields()\fR-Methode der Klasse \fCjava.lang.reflect.Class\fR wird eine Liste aller Felder des Objektes abgerufen, und dann danach gefiltert welche Felder die entsprechende Annotation besitzen. + .H3 Der Webserver und die Views Der Webserver selber ist mithilfe der Bibliotheken aus dem JDK entwickelt, und nutzt die Klassen aus \fCcom.sun.net.httpserver\fR. Dazu wird die Klasse \fCHttpServer\fR in der Main-Methode einmal instanziiert und die Endpunkte werden festgelegt.