Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Current implementation is a Proof of Concept #2

Open
stempler opened this issue Nov 13, 2017 · 0 comments
Open

Current implementation is a Proof of Concept #2

stempler opened this issue Nov 13, 2017 · 0 comments

Comments

@stempler
Copy link
Member

The current state of the implementation is a Proof of Concept with a lot of room for improvements.

Here is a list of some possible improvements (in German):

  • Bei der Generierung werden Klassen für alle von HALE per default als "Mapping relevant types" klassifizierten Typen generiert, plus alle entsprechenden Abhängigkeiten. Man kann die Ausgansgtypen prinzipiell aber auch auf eine bestimmte Auswahl von Typen beschränken (wird allerdings im CLI aktuell nicht unterstützt)
  • In die spezielle Handhabung der Geometrien konnte ich nicht viel Zeit investieren - die JTS-Geometrien sind aktuell wie in HALE in den explizit als Geometrie-Eigenschaften markierten Eigenschaften untergebracht (Typ GeometryProperty). Am besten für ein Beispiel in den "SimpleWriteRead"-Test schauen.
  • Für das Lesen oder Schreiben von GML mit der HALE API ist es immer nötig auch das entsprechende Schema zu laden. Das Lesen/Schreiben der Modell-Objekte funktioniert so, dass diese aus oder in HALE-"Instance"s konvertiert werden. Dazu werden die in den Modell-Klassen per Annotations hinterlegten Meta-Informationen herangezogen. Das war im Rahmen des PoC der am schnellsten umzusetzende Ansatz. Ein Vorteil liegt darin, dass das Vorgehen unabhängig von der Art des Schemas ist, man könnte also genauso z.B. auch Daten aus einer Datenbank verarbeiten
  • In der Hierarchie der generierten Modellklassen gibt es noch Probleme bei bestimmten XML Schema Konstrukten die zu Konflikten führen können, deshalb sind für die Generierung des 3A-Modells ca. 10 Klassen ausgenommen die zu Compiler-Problemen führen. An anderer Stelle tritt das Problem teilweise auch auf, sollte die Funktionsweise aber nicht einschränken.
  • Allgemein gibt es noch viel Potential die Benamung von Klassen und Eigenschaften zu verbessern, speziell bei im XML Schema definierten anonymen Typen und Choices/Sequences. Prinzipiell ist für die Package-Name ein Präfix vorgesehen, wird aber im CLI nicht unterstützt.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant