Issue 2550: Dealing with reserved suffixes (e.g. POA) (java-rtf) Source: (, ) Nature: Uncategorized Issue Severity: Summary: Summary: ptc/98-10-14 changes the mapping of names for skeleton classes; for: Module M { interface Face {}; }; the name of the skeleton and tie classes are now M.FacePOA and M.FacePOATie instead of the C++-style POA_M.Face and POA_M.Face_tie. Resolution: Close, no change. Revised Text: Actions taken: March 18, 1999: received issue February 27, 2001: closed issue Discussion: Close, no change. Section 2.1 seems clear that the mapping rules apply to names of the form *interface*POA, not to plain POA End of Annotations:===== X400-Received: by mta umg in /PRMD=ICL/ADMD=GOLD 400/C=GB/ ; Relayed ; Thu, 18 Mar 99 18:24:10 +0000 X400-Received: by mta man23xc in /PRMD=icl/ADMD=gold 400/C=GB/ ; ; converted (IA5-Text) ; Relayed ; Thu, 18 Mar 99 18:12:01 +0000 X400-Received: by /PRMD=icl/ADMD=gold 400/C=GB/ ; converted (IA5-Text) ; Relayed ; Thu, 18 Mar 99 18:29:08 +0000 Date: Thu, 18 Mar 99 18:29:08 +0000 X400-MTS-Identifier: [/PRMD=icl/ADMD=gold 400/C=GB/;man0506 0000026100001575] X400-Originator: "NP Sharman" X400-Recipients: java-rtf@omg.org X400-Content-Type: P2-1984 (2) Original-Encoded-Information-Types: { 1 3 12 2 1001 1 0 4 300 0 707 } Content-Identifier: 1575 Priority: normal From: "NP Sharman" To: java-rtf@omg.org References: <199903180812.AAA04960@wheel.dcn.davis.ca.us> Importance: normal Subject: Dealing with reserved suffixes (e.g. POA) ptc/98-10-14 changes the mapping of names for skeleton classes; for: Module M { interface Face {}; }; the name of the skeleton and tie classes are now M.FacePOA and M.FacePOATie instead of the C++-style POA_M.Face and POA_M.Face_tie. To support this change, POA and POATie are added to the list of reserved suffices. I've just changed our compiler to include this change, with the following interesting results: IDL interface POA => Java interface _POA IDL operation POA::create_POA => Java method _POA._create_POA I don't think that's what is supposed to happen! The first problem is resolved by prefixing names only when one of the special suffixes is a _proper_ suffix of the IDL name, where xPOA has POA as a proper suffix (so is mapped to _xPOA) but plain POA doesn't (so stays the same). Does that need clarifying in the spec, or is it already clear enough for everyone except me? To solve the second problem, I think it isn't necessary to check operation names against the list of suffixes; they can only clash against classes derived from other types in the same interface, but they've already been pushed out into FacePackage (by section 25.17). Incidentally, 25.17 could also cover types nested in other types, such as: //IDL struct { enum Horrible {X,Y,Z} nasty; } (or has that already been banned by the Core RTF?) Regards Nick Nick Sharman DAIS Product Architect PeerLogic Ltd nsharman@peerlogic.com