| |
1-8 Java zu abbildendem IDL, v1.3 September 2003 1 1,3,2,4 Javanamen mit ungültigen IDL-Bezeichnerbuchstaben Den gegenwärtigen Mangel an Unterstützung für Unicode in OMG IDL gegeben, definieren wir einen einfachen Namen mangling Entwurf zum Stützen des Diagramms der Javabezeichner zu den Bezeichnern OMG IDL. Für Javabezeichner, die ungültige Bezeichnerbuchstaben OMG IDL wie ' $ ' enthalten oder Buchstaben Unicode außerhalb ASCII, irgend solche unzulässige Zeichen werden durch "U" ersetzt gefolgt von den 4 hexadezimalen Buchstaben (in den Versalien) das Unicode darstellend Wert. So das Java Namenß$+0 a$b wird zu aU0024b abgebildet und x\u03bCy wird zu abgebildet xU03BCy . 1,3,2,5 Namen für innere Kategorien Wenn man Namen für innere Kategorien Java abbildet, wird ein zusammengesetzter Name vorbei gebildet Verketten des Namens für die äußere Kategorie, zwei Unterstreichen und den Namen vom inneren Kategorie. Die Korrekturen für die ungültigen Bezeichner OMG IDL, die oben beschrieben werden, sind dann angewandt. Z.B. eine innere Kategorie Fred innerhalb einer Kategorie Bert erhält zu einem OMG abgebildet IDL-Name von Bert__Fred . 1,3,2,6 Überbelastete Methodennamen Wenn eine Methode Java RMI/IDL nicht überbelastet wird, dann wird der gleiche Methodenname innen verwendet OMG IDL, wie in Java verwendet wurde. Das Fehlen überbelasteten Methoden in gegenwärtigem OMG IDL gegeben, definieren wir ein einfaches Namensmangling für überbelastete Methoden. Merken Sie, daß eine Methode in einer Unterseitenschnittstelle (und folglich in seinem Namen einzigartig definiert werden kann seien Sie nicht mangled dadurch daß Schnittstelle) und dann wird überbelastet in einer abgeleiteten Schnittstelle (in welcher Fall der Name ist, mangled in der abgeleiteten Schnittstelle). Für überbelastete RMI-/idlmethoden mangled Namen OMG IDL wird gebildet indem das Nehmen der Javamethodenname und zwei Unterstreichen dann anfügen, gefolgt von jedem von völlig qualifizierte Arten OMG IDL der Argumente (irgendwie führen entfernend ":: ", und Ersetzen eingebettet ":: ", mit "_") getrennt durch zwei Unterstreichen. Irgendwelche Räume (wie in der Art OMG IDL lang lang werden durch Unterstreichen und irgendwie führen geersetzt Unterstreichen in entgangenen Bezeichnern OMG IDL werden entfernt. Z.B. die vier überbelasteten Javamethoden: leeres hello(); leeres hello(int x, a.b.c y, internes z); leeres hello(intz[ ]); leeres hello(Object O); werden zu den Methoden OMG IDL abgebildet: leeres hello__(); leeres hello__long__a_b_c__long(in langes x, in::a::b::c y, in langem z); |  |
|
| |
|
|