Cómo se crean alias de los nombres de envoltura Java

El generador de EGL aplica las siguientes reglas a los alias de nombres de envoltura de Java:

  1. Si el nombre de EGL está en mayúsculas, conviértalo a minúsculas
  2. Si el nombre es un nombre de clase o un nombre de método, ponga el primer carácter en mayúsculas. (Por ejemplo, el método de obtención para x es getX() no getx().)
  3. Suprima todos los subrayados (_) y guiones (-). (Los guiones son válidos en nombres EGL si utiliza la modalidad de compatibilidad de VisualAge Generator.) Si a continuación del subrayado o guión hay una letra, cambie ese carácter a mayúsculas.
  4. Si el nombre es un nombre calificado que utiliza un punto (.) como separador, sustituya cada punto por un subrayado y añada un subrayado al principio del nombre.
  5. Si el nombre contiene un signo de dólar ($), sustitúyalo por dos subrayados y añada un subrayado al principio del nombre.
  6. Si un nombre es una palabra clave Java, añada un subrayado al principio del nombre.
  7. Si el nombre es * (un asterisco, que representa un elemento de relleno), redenomine el primer asterisco como Filler1, el segundo asterisco como Filler2 y así sucesivamente.

Además, se aplican normas especiales a los nombres de clase de envoltura Java para envolturas de programa, envolturas de registro y elementos de matriz subestructurada. Las secciones restantes tratan estas normas y ofrecen un ejemplo. En general, si existen conflictos de denominación entre campos dentro de una clase de envoltura generada, se utiliza el nombre calificado para determinar los nombres de clase y variable. Si el conflicto sigue sin resolverse, se emite una excepción durante la generación.

Clase de envoltura de programa

Las envolturas de parámetros de registro se denominan utilizando las normas anteriores aplicadas al nombre de definición de tipo. Si el nombre de clase de envoltura de registro está en conflicto con el nombre de clase de programa o el nombre de clase de envoltura de programa, se añade Record al final del nombre de clase de envoltura de registro.

Las normas para los nombres de variable son las siguientes:
  1. La variable de parámetro de registro se denomina utilizando las normas anteriores aplicadas al nombre de parámetro. Por consiguiente, los métodos get() y set() contienen estos nombres en lugar del nombre de clase.
  2. Los métodos get y set se denominan get o set seguidos del nombre de parámetro aplicando las normas anteriores.

Clase de envoltura de registro

Las normas para los nombres de clase de elementos de matriz subestructurada son las siguientes:
  1. El elemento de matriz subestructurada se convierte en una clase interna de la clase de envoltura de registro, y el nombre de clase se deriva aplicando las normas anteriores al nombre de elemento. Si el nombre de clase está en conflicto con el nombre de clase de elemento de matriz subestructurada que la contiene, se añade Structure al nombre de clase de elemento.
  2. Si hay nombres de clase de elemento en conflicto, se utilizarán los nombres de elemento calificados.
Las normas para los nombres de método get y set son las siguientes:
  1. Los métodos se denominan get o set seguidos del nombre de elemento aplicando las normas anteriores.
  2. Si hay nombres de elemento en conflicto, se utilizarán los nombres de elemento calificados.

Clase de elementos de matriz subestructurada

Las normas para los nombres de clase de elementos de matriz subestructurada son las siguientes:
  1. El elemento de matriz subestructurada se convierte en una clase interna de la clase de envoltura generada para el elemento de matriz subestructurada continente, y el nombre de clase se deriva aplicando las normas anteriores al nombre de elemento.
  2. Si el nombre de clase está en conflicto con el nombre de clase de elemento de matriz subestructurada continente, se añade Structure al nombre de clase de elemento.
Las normas para los nombres de método get y set son las siguientes:
  1. Los métodos se denominan get o set seguidos del nombre de elemento aplicando las normas anteriores.
  2. Si hay nombres de elemento en conflicto, se utilizarán los nombres de elemento calificados.

Ejemplo

El siguiente programa y salida generada de ejemplo muestran qué debe esperarse durante la generación de envoltura:

Programa de ejemplo

Program WrapperAlias(param1 RecordA)
  
end

Record RecordA type basicRecord
	10 itemA CHAR(10)[1];
	10 item_b CHAR(10)[1];
	10 item$C CHAR(10)[1];
	10 static CHAR(10)[1];
	10 itemC CHAR(20)[1];
		15 item CHAR(10)[1];
		15 itemD CHAR(10)[1];
	10 arrayItem CHAR(20)[5];
		15 innerItem1 CHAR(10)[1];
		15 innerItem2 CHAR(10)[1];
end

Salida generada

Nombres de la salida generada
Salida Nombre
Clase de envoltura de programa WrapperaliasWrapper, que contiene un campo param1, que es una instancia de la clase de envoltura de registro RecordA
Clases de envoltura de parámetro RecordA, accesible mediante los siguientes métodos:
  • getItemA (desde itemA)
  • getItemB (desde el primer item-b)
  • get_Item__C (desde item$C)
  • get_Static (desde static)
  • get_ItemC_itemB (desde itemB en itemC)
  • getItemD (desde itemD)
  • getArrayItem (desde arrayItem)
ArrayItem es una clase interna de RecordA que contiene campos a los que se puede acceder mediante getInnerItem1 y getInnerItem2.

Tareas relacionadas
Generar envolturas Java

Comentarios
(C) Copyright IBM Corporation 2000, 2005. Reservados todos los derechos.