Heiner KückerCodegenerator für hierarchische Datenstrukturen |
|||||||||
|
Home Java-Seite . Weiterentwicklung_Java . WebCam_Demo . JSP WorkFlow . PageFlow FlowControl . Page Flow Engine . Web Flow Engine . Control_and_Command . JSP_Spreadsheet . Kognitions-Maschine . semantisches Netz . Domain Parser . Codegenerator_für . hierarchische . Datenstrukturen . Expression_Engine . Formula_Parser . Thread Preprocessor . State Transition Engine . AspectJ . Java_Explorer . DBF_Library . Kalender_Applet . SetGetGen . BeanSetGet . CheckPackage . LineNumbers . GradDms . Excel-Export . StringTokenizer . JspDoc . JspCheck . JSP-Schulung . Java Server Pages . Struts . Ascii-Tabellen- . Layouter . Ascii-Baum- . Layouter . Ascii-Art-Fluss- . Diagramm- . Parser . AsciiArt . AssignmentMatrix . Layouter . StringSerial . Silbentrennung . JDBC_Schlüssel- . Generierung . bidirektional/ . unidirektional . gelinkte Liste . Java_Sitemap . Generator . XmlBuilder . RangeMap . StringFormatter . VersionSafe . XCopy . JTextField . CommandLine- . ParamReader . Bitmap-Grafik . MultiMarkable- . Buffered- . InputStream . JavaCache . JdomUtil . CollectionUtil . XML Really . Pull Parser . Log-Filter . Remote-Protokoll . Sudoku-Generator . Delegation statt . Mehrfachvererbung . Disjunct . Interval Set . Constraint Class . Code Generator Alaska-XBase++-Seite Projekte Philosophien Techniken Konzepte Sudoku Kontakt / Impressum Links SiteMap Letzte Aktualisierung: 19.02.2005 |
Codegenerator für hierarchische DatenstrukturenCode generation for hierarchic data structures
Dieser kleine Codegenerator ist ein Beispiel für die
Anwendung des Domain Parser's
(Parser für fachspezifische Sprachen,domain specific languages).
Für komplexe Strukturen (definieren eine in geschwungene Klammern eingeschlossene Unterstruktur) werden Klassen generiert. Nicht als Liste definierte Strukturen werden als Variablen mit set- und get-Methoden in den generierten Klassen hinterlegt. Listen (gekennzeichnet durch paaarweise eckige Klammern [] hinter dem Klassen-Namen) werden als ArrayList mit add-, getXxxCount- und getXxx(index)-Methoden in den generierten Klassen hinterlegt. Die hierarchische Datenstruktur wird in folgender Notation in einer Definitionsdatei Haus.strudef hinterlegt. Dabei ist das Beispiel Haus nur eine angenommene hierarchische Datenstruktur:
In obigem Beispiel erzeugt der Codegenarator die Klassen Haus, Etage, Wohnung, Raum, Keller, KellerRaum und Person. Im Zip-File Hierarchy.zip mit dem Quellcode sind die generierten Java-Klassen für das Haus-Beispiel enthalten. Die erzeugten Klassen bilden eine Komposition, eine Sonderform der Aggregation (Composite-Pattern). In der jetzigen Version bietet der Codegenerator noch reichlich Raum für Verbesserungen. So könnte man für die Erzeugung des Codes eine Template-Engine verwenden. Durch eigene Schlüsselwörter wäre es möglich die Code-Erzeugung besser zu steuern. Denkbar sind zum Beispiel immutable Klassen (alle Werte werden im Konstruktor gesetzt und stehen danach nur noch lesend (get-Methoden) zur Verfügung). Sicher wird der zu erzeugende Code je nach Projektumfeld variieren. Für diesen Zweck kann sich der geschätzte Benutzer meinen Code relativ leicht anpassen. Download der Quelldateien und des Haus-Beispiels Hierarchy.zip Mitgelieferte Dateien:
Zum Kompilieren und Starten des Codegenerators müssen noch die Sourcen des DomainParser's eingebunden werden.
Achtung: Erweiterungen und Fixes stelle ich ohne Historie
und ohne Ankündigung hier bereit. Lizenzbedingungen:
Die Programme, Quelltexte und Dokumentationen können ohne
irgendwelche Bedingungen kostenlos verwendet werden. |
||||||||