next up previous contents
Nächste Seite: 7.4 Code Repositories Aufwärts: 7. Realisierung Vorherige Seite: 7.2 Vorarbeiten   Inhalt

7.3 Eindeutige Identifikatoren

Zur Beseitigung der in Kap. 3.2.2 geschilderten Unzulänglichkeiten im Umgang mit String-Repräsentationen der Klasse CfMAF.Name, wurde die zugehörige Hilfsklasse tools.NameWrapper angepaßt, so daß alle drei Komponenten von CfMAF.Name signifikant für die String-Repräsentation sind. Die Umsetzung erfolgt nun in der Methode toString() nach folgendem Schema:

name_string :== [identity!authority!type]

Entsprechend dieser Definition wurden auch der Konstruktor NameWrapper( String inNameStr) angepaßt, so daß dieser die inverse Funktion zu toString() implementiert. Damit liefert jetzt das Fragment


NameWrapper a, b;
String      aStr;
a    = new NameWrapper(\ldots);
aStr = a.toString();
b    = new NameWrapper( aStr);

zwei identische Objekte a und b.

Die Änderung der toString()-Methode führte zu vielfachen Seiteneffekten, da in der alten Implementierung häufig direkte Vergleiche mit dem Ergebnis von toString() und einem identity-Strukturelement gemacht wurden, anstatt die entsprechende equals()-Methode zu benutzen. Alle hieraus resultierenden Fehler wurden in den CVS-Verzeichnissen system/ und system_gui/ behoben.


next up previous contents
Nächste Seite: 7.4 Code Repositories Aufwärts: 7. Realisierung Vorherige Seite: 7.2 Vorarbeiten   Inhalt
harald@roelle.com