Abbildung 8.3 zeigt ein UML-Diagramm der Klasse Paragraph.java
Wie speichert der Parser die vom Tokenizer erzeugten Tokens in einem Paragraph-Objekt? Die RTF-Syntax bietet die M?glichkeit Gruppen zu bilden. Definitionen die innerhalb einer Gruppe gemacht wurden, haben auch nur innerhalb dieser und ihren Untergruppen G?ltigkeit. Es ist also wichtig, dass der Parser nicht einfach zwischen Kontrollw?rtern und Textelementen unterscheidet, sondern es muss gleichzeitig die Klammerstruktur beachtet werden. Nur dann kann auch festgestellt werden, welches Kontrollwort wie viele Zeichen innerhalb eines Paragraphen beeinflusst.
Bei nicht eingeschalteter Datenbereinigung werden alle Kontrollw?rter des Paragraphen in einer Hashtabelle gespeichert. Dabei bildet ein Kontrollwort jeweils einen Schl?ssel und die Anzahl der Zeichen, die vom Kontrollwort beeinflusst werden, wird als zugeh?riger Wert gespeichert. Ist die Datenbereinigung aktiviert, wird f?r jedes Kontrollwort ?berpr?ft, ob es sich in der Menge der irrelevanter Kontrollw?rter (siehe 8.1.4) befindet. Ist das nicht der Fall, so wird das Kontrollwort in der Hashtabelle gespeichert, andernfalls wird es verworfen.
Die komplette Hashtabelle und ein String, der dem Text des Paragraphen entspricht, wird letztlich im Paragraph-Objekt gespeichert.
Der Vollst?ndigkeit halber sollte erw?hnt werden, dass Gruppen, die Destinations enthalten, durch den Parser ?bersprungen werden. Fu?notentext oder Eintr?ge im Inhaltsverzeichnis eines Dokumentes werden demzufolge nicht betrachtet.