Section G.2. Identifiers


G.2. Identifiers

Identifiers can name various IDL constructs, such as modules, interfaces, and constants. In IDL, an identifier has to follow these rules:

  • It can be any length of alphanumeric characters from the ISO Latin-1[2] character set (e.g., a-z, A-Z, 0-9, plus various characters with accents, graves, tildes, etc.), and the underscore character ( _ ).

    [2] This refers to the ISO standard 8859, "Information Processing8-bit single-byte coded graphic character setsPart 1: Latin alphabet No. 1," ISO 8859-1:1987. You can find a listing of the character set in the HTML 4.0 standard at http://www.w3.org/TR/html4.

  • All characters in an identifier are significant.

  • The first character must be an alphabetic character.

  • Identifiers are case-insensitive, in the sense that two identifiers that differ only by case are considered a name collision and will cause an IDL compiler error. This rule stems from the fact that IDL needs to be mappable into many implementation languages, some of which are case-insensitive.

  • Identifiers must be spelled and capitalized consistently throughout an IDL file.

  • All IDL identifiers share the same namespace, so interfaces, modules, user-defined types, and so on within the same scope all must have unique identifiers. An interface named List and a module named List within the same scope will cause a name collision and an IDL compiler error. See "Naming Scopes" later in this appendix for more details.

G.2.1. Mapping Identifiers to Java

An IDL-to-Java compiler attempts to map all IDL identifiers unchanged into equivalent Java identifiers.

An exception is the case in which a mapped identifier conflicts with an identifier created automatically by the IDL compiler. IDL interfaces, for example, when they are mapped to Java, have two additional Java interfaces created for them, named using the name of the original interface with Helper and Holder appended (see Chapter 14 for details on the purpose of these generated interfaces). So an interface named List will be mapped into a Java interface named List, but will also cause the creation of a Java interface named ListHelper and another named ListHolder. If there is another identifier in the IDL file that you've named ListHelper or ListHolder, its mapped Java identifier will have an underscore prepended to it (e.g., _ListHelper, _ListHolder), to avoid a conflict with the generated interface names. In general, identifiers automatically generated by the IDL compiler have precedence over other identifiers declared explicitly in the IDL file.

The other exception to the general rule of directly mapping IDL identifiers to Java identifiers is with a mapping that conflicts with Java keywords. In these cases, the mapped Java identifier has an underscore prepended to it. If, for example, you declared a constant named package (not a reserved keyword in IDL), it is mapped into a Java variable named _package.



Java Enterprise in a Nutshell
Java Enterprise in a Nutshell (In a Nutshell (OReilly))
ISBN: 0596101422
EAN: 2147483647
Year: 2004
Pages: 269

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net