Text part wrote about model
This commit is contained in:
parent
a000e15264
commit
3e469e9f5b
2 changed files with 13 additions and 1 deletions
|
@ -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
|
||||
|
|
|
@ -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/<uid>\fR vorgesehen, mit \fC<uid>\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.
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue