Macro de Lista [Guía de Usuario de Enterprise Architect]

Top Previous Next

Macro de Lista

button_main button_prev button_next

Si necesita hacer un bucle en o iterar a través de un conjunto de Objetos que están contenidos dentro o están debajo del objeto actual, puede hacerlo utilizando el macro %lista. Este macro realiza un paso iterativo en todos los objetos en el alcance de la plantilla actual, y llama a otra plantilla para procesar a cada uno.

La estructura básica es:

%list=<TemplateName> @separator=<string> @indent=<string> ( <conditions> ) %

 

donde <string> es una cadena literal entre comillas dobles y <TemplateName> puede ser alguno de los siguientes nombres de plantilla:

Attribute

AttributeImpl

Class

ClassBase

ClassImpl

ClassInterface

Constraint

Plantilla Personalizada (las plantillas personalizadas le permiten definir sus propias plantillas)

Effort

InnerClass

InnerClassImpl

LinkedFile

Metric

Namespace

Operation

OperationImpl

Parameter

Problem

Requirement

Resource

Risk

Scenario

Test

 

<conditions> es opcional y se ven igual que las condiciones para las declaraciones if y elseIf.

Ejemplo

En una transformación de Clase, la Clase puede contener múltiples Atributos; el siguiente ejemplo llama a la transformación del Atributo y tiene como salida el resultado de procesar la transformación para cada atributo de la Clase en alcance. La lista resultante separa sus ítems con una nueva línea individual y les pone sangría en dos espacios respectivamente. Si la Clase de alcance tenía algunos atributosestereotipados, serían generados utilizando la plantilla apropiadamente especializada.

 

%list="Attribute" @separator="\n" @indent=" "%

 

El atributo separador, denotado arriba por @separator, especifica el espacio que debería ser utilizado entre los ítems de la lista, excluyendo el último ítem de la lista.

El atributosangría, denotado por @indent, especifica el espacio de sangría que debería tener cada línea en la salida generada.

Casos Especiales

Hay algunos casos especiales para considerar al utilizar el macro %lista:

Si la plantilla Atributo es utilizada como un argumento para el macro %lista, esto también genera atributos derivados desde Asociaciones al ejecutar la plantilla LinkedAttribute apropiada

Si la plantilla ClassBase es utilizada como un argumento para el macro %lista, esto también genera bases de Clase derivadas desde vínculos en el modelo al ejecutar la plantilla LinkedClassBase apropiada

Si la plantilla ClassInterface es utilizada como un argumento para el macro %lista, esto también genera bases de Clase derivadas desde vínculos en el modelo al ejecutar la plantilla LinkedClassInterface apropiada

Si InnerClass o InnerClassImpl es utilizado como un argumento para el macro %lista, estas Clases son generadas utilizando las plantillas Clase y ClassImpl respectivamente; estos argumentos dirigen que las plantillas deberían ser procesadas basado en las Clases internas de la Clase al alcance

Aprender más

Crear Plantillas Personalizadas

Personalizar Plantillas Base

Macros de Control