Macros de Sustitución de Campos

Superior  Previo  Próximo

Las macros de sustitución de campos proveen un acceso a los datos en el modelo. En particular, se usan para acceder a los campos de los datos desde:

Paquetes
Clases
Atributos
Operaciones
Parámetros

 

Las macros de sustitución de campos se denominan de acuerdo a "Camel casing" (*). Por convención, la macro tiene un prefijo con una forma abreviada del elemento de modelado correspondiente. Por ejemplo, los macros relacionados a los atributos comienzan con att, como en la macro %attName%, para acceder al nombre del atributo en contexto.

 

La tabla siguiente lista cada una de las macros de sustitución de campos con una descripción del resultado.

 

Nota: que las macros que representan casillas de verificación devuelven un valor de T si la casilla está marcada. Por el contrario el valor está vacío.

 

Nombre de la macro

Descripción

attAlias

Ventana de Atributo: Alias

attAllowDuplicates

Ventana de Detalle de Atributo: casilla de verificación Permitir Duplicados

attClassifierGUID

GUID único para el clasificador del atributo actual.

attCollection

Ventana de Detalle del Atributo: casilla de verificación El Atributo es una Colección

attConst

Ventana de Atributo: casilla de verificación Const

attContainerType

Ventana de Detalle del Atributo: Tipo de Contenedor

attContainment

Ventana de Atributo: Contención

attDerived

Ventana de Atributo: casilla de verificación Derivada

attGUID

GUID único para el atributo actual.

attInitial

Ventana de Atributo: Inicial

attLength

Ventana Columna: Longitud

attLowerBound

Ventana de Detalle del Atributo: Límite más Bajo

attName

Ventana de Atributo: Nombre

attNotes

Ventana de Atributo: Notas

attOrderedMultiplicity

Ventana de Detalle del Atributo: casilla de verificación Multiplicidad Ordenada

attProperty

Ventana de Atributo: casilla de verificación Propiedad

attQualType

El tipo de atributo calificado por la ruta el espaciodenombre (si esta generando espaciosdenombres) y la ruta del clasificador (dotdelimitado). Si el clasificador del atributo no ha sido establecido, es equivalente al macro attType.

attScope

Ventana de Atributo: Alcance

attStatic

Ventana de Atributo: casilla de verificación Estática

attStereotype

Ventana de Atributo: Estereotipo

attType

Ventana de Atributo: Tipo

attUpperBound

Ventana de Detalle de Atributo: "Límite más Alto

attVolatile

Ventana de Detalle de Atributo: casilla de verificación Transitorio

classAbstract

Ventana de Clase: casilla de verificación Abstracto

classAlias

Ventana de Clase: Alias

classArgumens

Ventana de Detalle de Clase: Plantillas C++: Argumentos

classAuthor

Ventana de Clase: Autor

classBaseName

Ventana de Jerarquía de Tipo: Nombre de Clase (para usarlo cuando no existe ningún vínculo entre hijo y clase de base)

classBaseScope

El alcance de la herencia como ingeniería inversa. (para usarlo donde ningún vínculo existe entre la clase hija y base).

classBaseVirtual

La propiedad virtual de la herencia como ingeniería inversa. (para usarlo donde ningún vínculo existe entre la clase hija y base).

classComplexity

Ventana Clase: Complejidad

classGUID

El GUID único para la clase actual.

classHasParent

Verdadero, si la clase en alcance tiene una o más clases de base.

classImports

Ventana de Generación de Código: "Importa". Para lenguajes soportados esto    también incluye dependencias derivadas de asociaciones.

classIsActive

Ventana Avanzada de Clase : "Is Active" checkbox

classIsInstantiated

Verdad, si la clase es una clase de plantilla instanciada.

classIsLeaf

Ventana Avanzada de Clase : casilla de verificación "Es Hoja"

classIsRoot

Ventana Avanzada de Clase : casilla de verificación "Es Raíz"

classIsSpecification

Ventana Avanzada de Clase : casilla de verificación "Es Especificación"

classKeywords

Ventana de Clase: "Palabras Claves"

classLanguage

Ventana de Clase: "Lenguaje"

classMacros

Una lista de espacio separado definida por la clase.

classMultiplicity

Ventana Avanzada de Clase : "Multiplicidad"

className

Ventana de Clase: "Nombre"

classNotes

Ventana de Clase: "Nota"

classParamDefault

Ventana de Detalle de Clase:

classParamName

Ventana de Detalle de Clase:

classParamType

Ventana de Detalle de Clase:

classPersistence

Ventana de Clase: "Persistencia"

classPhase

Ventana de Clase: "Fase"

classQualName

El nombre de la Clase prefijada por sus clases exteriores. Los Nombres de Clase están separados por dos puntos dobles (::).

classScope

Ventana de Clase: "Alcance"

classStereotype

Ventana de Clase: "Estereotipo"

classStatus

Ventana de Clase: "Estados"

classVersion

Ventana de Clase: "Versión"

connectorDestAggregation

Propiedades del Rol del Objetivo del Conector: "Agregación"

connectorDestAccess

Propiedades del Rol del Objetivo del Conector: "Acceso"

connectorDestContainment

Propiedades del Rol del Objetivo del Conector: "Contención"

connectorDestElem*

Para cualquier macro de subtitución de clase "clase" que es soportado, obtener la misma información acerca de un elemento al final del objetivo del conector.

connectorDestMemberType

Propiedades del Rol del Objetivo del Conector: "Tipo de Miembro"

connectorDestMultiplicity

Propiedades del Rol del Objetivo del Conector: "Multiplicidad"

connectorDestNotes

Propiedades del Rol del Objetivo del Conector: "Notas"

connectorDestOrdered

Propiedades del Rol del Objetivo del Conector: "Multiplicidad es Ordenada"

connectorDestRole

Propiedades del Rol del Objetivo del Conector: "Rol"

connectorDestScope

Propiedades del Rol del Objetivo del Conector: "Alcance de Objetivo"

connectorDestStereotype

Propiedades del Rol del Objetivo del Conector: "Estereotipo"

connectorDirection

Propiedades del Conector: "Dirección"

connectorEffect

Ventana de Limitaciones del FlujodeEstado: Efecto

connectorGuard

Ventana de Flujo del Objeto y Limitaciones del FlujodeEstado: Guarda

connectorGUID

El GUID único para el conector actual.

connectorName

Propiedades del Conector: "Nombre"

connectorNotes

Propiedades del Conector: "Notas"

connectorSourceAggregation

Propiedades del Rol del Objetivo del Conector: "Agregación"

connectorSourceAccess

Propiedades del Rol del Objetivo del Conector: "Acceso"

connectorSourceContainment

Propiedades del Rol del Objetivo del Conector: "Contención"

connectorSourceElem*

Para cualquier macro de substitución de clase "clase" que es soportado, obtiene la misma información acerca de elemento en el final de la fuente del conector. 

connectorSourceMemberType

Propiedades del Rol de la Fuente del Conector "Tipo de Miembro"

connectorSourceMultiplicity

Propiedades del Rol de la Fuente del Conector: "Multiplicidad"

connectorSourceNotes

Propiedades del Rol de la Fuente del Conector: "Notas"

connectorSourceOrdered

Propiedades del Rol de la Fuente del Conector: "Multiplicidad es Ordenada"

connectorSourceRole

Propiedades del Rol de la Fuente del Conector: "Rol"

connectorSourceScope

Propiedades del Rol de la Fuente del Conector: "Alcance del Objetivo"

connectorSourceStereotype

Propiedades del Rol de la Fuente del Conector: "Estereotipo"

connectorStereotype

Propiedades del Conector: "Estereotipo"

connectorTrigger

Ventana de Límites del FlujodeEstado: "Disparador"

connectorType

El tipo de conector. eg. Asociación o Generalización.

connectorWeight

Ventana de Límites del Flujo del Objeto: "Peso"

eaDateTime

El tiempo actual con formato: DD-MMM-YYYY HH:MM:SS AM/PM

eaGUID

El GUID único para esta generación

eaVersion

Versión de Programa (Ubicado en una ventana de EA seleccionando Ayuda | Acerca de EA) 

elemType

El Tipo de Elemento: "Interfaz" o "Clase"

fileExtension

La extensión del tipo de archivo del archivo que esta siendo generado.

fileName

El nombre del archivo que esta siendo generado

fileNameImpl

El nombre del archivo del archivo de implementación para esta generación si es aplicable

fileHeaders

Ventana de Generación de Código: "Encabezados"

fileImports

Ventana de Generación de Código: "Importar"

genOptDefaultAssocAttName

Ventana de Especificaciones de Atributo: "Nombre Predeterminado para el atributo asociado"

genOptDefaultConstructorScope

Ventana de Tiempos de Vida del Objecto: "Visibilidad del Constructor Predeterminado"

genOptDefaultCopyConstructorScope

Ventana de los Tiempos de Vida del Objecto: "Visibilidad del Constructor de Copia Predeterminado"

genOptDefaultDestructorScope

Ventana de los Tiempos de Vida del Objecto: "Visibilidad del Constructor del Destructor Predeterminado"

genOptCPPCommentStyle

Ventana de Especificaciones C++: "Estilo de Comentario"

genOptCPPDefaultAttributeType

Ventana de Especificaciones C++ : "Tipo de Atributo Predeterminado"

genOptCPPDefaultReferenceType

Ventana de Especificaciones C++ : "Tipo de Referencia Predeterminada"

genOptCPPDefaultSourceDirectory

Ventana de Especificaciones C++ : "Directorio de Fuente Predeterminado"

genOptCPPGenMethodNotesInHeader

Ventana de Especificaciones C++ : casilla de verificación "Notas del Método En Encabezado"

genOptCPPGenMethodNotesInBody

Ventana de Especificaciones C++ : casilla de verificación "Notas del Método En Cuerpo"

genOptCPPGetPrefix

Ventana de especificaciones C++ : "Obtener Prefijo"

genOptCPPHeaderExtension

Ventana de especificaciones C++ : "Extensión del Encabezado"

genOptCPPSetPrefix

Ventana de especificaciones C++ : "Configurar Prefijo"

genOptCPPSourceExtension

Ventana de especificaciones C++ : "Extensión Fuente"

genOptCPPSynchCPPFile

Ventana de especificaciones C++ : "Sincronizar Notas"

genOptCPPSynchNotes

Ventana de especificaciones C++ : "Sincronizar Archivo CPP"

genOptCSDefaultAttributeType

Ventana de Especificaciones C# : "Tipo de Atributo Predeterminado"

genOptCSSourceExtension

Ventana de Especificaciones C# : "Extensión de archivo predeterminado "

genOptCSGenDispose

Ventana de Especificaciones C# : "Generar Disponer"

genOptCSGenFinalizer

Ventana de Especificaciones C# : "Generar Finalizador"

genOptCSGenNamespace

Ventana de Especificaciones C# : "Generar EspaciodeNombre"

genOptCSDefaultSourceDirectory

Ventana de Especificaciones C# : "Directorio de Fuente Predeterminada"

genOptGenCapitalisedProperties

Ventana de Generación: casilla de verificación "Capitalizar los Nombres de los Atributos para las Propiedades"

genOptGenComments

Ventana de Generación: casilla de verificación "Generar Comentarios"

genOptGenConstructor

Ventana de los Tiempos de vida del Objeto: casilla de verificación "Generar Constructor"

genOptGenConstructorInline

Ventana de los Tiempos de vida del Objeto: casilla de verificación "Constructor EnLinea"

genOptGenCopyConstructor

Ventana de los Tiempos de vida del Objeto: casilla de verificación "Generar Constructor de Copia"

genOptGenCopyConstructorInline

Ventana de los Tiempos de vida del Objeto: casilla de verificación "Copiar Constructor Enlinea"

 

 

genOptGenDestructorInline

Ventana de los Tiempos de vida del Objeto: casilla de verificación "Destructor Enlinea"

genOptGenDestructorVirtual

Ventana de los Tiempos de vida del Objeto: casilla de verificación "Destructor Virtual"

genOptGenGetSetOpsForAssocAtts

Ventana de Especificaciones de Atributo: casilla de verificación "Generar Obtener/Configurar para atributos asociados"

genOptGenImplementedInterfaceOps

Ventana de Especificaciones de la Operación: casilla de verificación "Generar métodos para interfaces implementadas"

genOptGenPrefixBoolProperties

Ventana de Generación: "Uso es un prefijo para obtener una propiedad boolean()"

genOptGenRoleNames

Ventana de Generación: "Autogenerar nombres de roles cuando se crean los códigos"

genOptGenUnspecAssocDir

Ventana de Generación: casilla de verificación "No  generar miembros donde la dirección de Asociación no es especificada"

genOptJavaDefaultAttributeType

Ventana de Especificaciones Java: "Tipo de atributo Predeterminado"

genOptJavaGetPrefix

Ventana de Especificaciones Java: "Obtener Prefijo"

genOptJavaDefaultSourceDirectory

Ventana de Especificaciones Java: "Directorio de Fuente Predeterminado"

genOptJavaSetPrefix

Ventana de Especificaciones Java: "Configurar Prefijo"

genOptJavaSourceExtension

Ventana de Especificaciones Java: "Extención Código Fuente"

genOptPHPDefaultSourceDirectory

Ventana de Especificaciones PHP: "Directorio de Fuente Predeterminado"

genOptPHPGetPrefix

Ventana de Especificaciones PHP: "Obtener Prefijo"

genOptPHPSetPrefix

Ventana de Especificaciones PHP: "Configurar Prefijo"

genOptPHPSourceExtension

Ventana de Especificaciones PHP: "Archivo Predeterminado"

genOptPHPVersion

Ventana de Especificaciones PHP: "Versión PHP"

genOptVBMultiUse

Ventana de Especificaciones VB: casilla de verificacion "Multiuso"

genOptVBPersistable

Ventana de Especificaciones VB: casilla de verificacion  "Persistible"

genOptVBDataBindingBehavior

Ventana de Especificaciones VB: casilla de verificación "Comportamiento obligatorio de dato"

genOptVBDataSourceBehavior

Ventana de Especificaciones VB: casilla de verificacion   "Comportamiento de Fuente de dato"

genOptVBGlobal

Ventana de Especificaciones VB: casilla de verificación "Espaciodenombre Global"

genOptVBCreatable

Ventana de Especificaciones VB: casilla de verificacion  "Creable"

genOptVBExposed

Ventana de Especificaciones VB: casilla de verificacion "Expuesto"

genOptVBMTS

Ventana de Especificaciones VB: casilla de verificacion  "Modo de transacción MTS"

genOptVBNetGenNamespace

Ventana de Especificaciones VB: casilla de verificacion  "Generar EspaciodeNombre"

genOptVBVersion

Ventana de Especificaciones VB: casilla de verificacion "Versión Predeterminada"

genOptWrapComment

Ventana de Generación: "Envolver el largo de las líneas de comentario"

importClassName

El nombre de la clase que esta siendo importada.

importFileName

El nombre de archivo de la clase que esta siendo importada.

importFromAssociation

'T' si la clase tiene un vínculo de asociación a una clase en este archivo, De otra manera 'F' .

importFromAtt

'T' si un atributo de una clase en el archivo actual es del tipo de esta clase, de otra manera 'F'.

importFromDependency

'T' si la clase tiene un vínculo de dependencia a una clase en este archivo, de otra manera 'F'.

importFromGeneralization

'T' si la clase tiene un vínculo de generalización a una clase en este archivo, de otra manera 'F'.

importFromMeth

'T' si un tipo de retorno del método de una clase en el archivo actual es el tipo de esta clase, de otra manera 'F'

importFromParam

'T' si un parámetro del método de una clase en el archivo actual es del tipo de esta clase, de otra manera 'F'.

importFromRealization

'T' si la clase tiene un vínculo de realización a una clase en este archivo, de otra manera 'F".

importInFile

'T' si la clase esta en el archivo actual, de otra manera 'F'

importPackagePath

La ruta del paquete con un separador '.' de la clase que esta siendo importada.

linkAttAccess

Ventana del Rol del Objetivo de Propiedades de Asociación: "Acceso"

linkAttCollectionClass

La colección apropiada para el atributo vinculado en alcance.

linkAttContainment

Ventana del Rol del Objetivo de Propiedades de Asociación: "Contención"

linkAttName

Ventana de Propiedades de Asociación: "Objetivo"

linkAttNotes

Ventana del Rol del Objetivo de Propiedades de Asociación: "Notas del Rol"

linkAttQualName

El objetivo de la Asociación por la ruta espaciodenombre  (si esta generando espaciodenombres) y la ruta del clasificador (dot delimitado).

linkAttRole

Ventana del Rol del Objetivo de Propiedades de Asociación:"Rol"

linkAttStereotype

Ventana del Rol del Objetivo de Propiedades de Asociación: "Estereotipo"

linkAttTargetScope

Ventana del Rol del Objetivo de Propiedades de Asociaciones: "Alcance del Objetivo"

linkCard

Ventana del Rol del Objetivo de Propiedades del Vínculo:  "Multiplicidad"

linkGUID

El GUID único para el vínculo actual

linkParentName

Ventana de Propiedades de Generalización: "Objetivo"

linkParentQualName

El objetivo de generalización calificado por la ruta del espacio de nombre ( si esta generando espaciodenombres) y la ruta del clasificador (dot delimitado).

linkStereotype

El estereotipo del vínculo actual.

linkVirtualInheritance

Ventana de Propiedades de Generalización : "Herencia Virtual"

opAbstract

Ventana de Operación : casilla de verificación "Virtual"

opAlias

Ventana de Operación: "Alias"

opBehaviour

Ventana del Comportamiento de la Operación : "Comportamiento"

opConcurrency

Ventana de Operación : "Concurrencia"

opConst

Ventana de Operación : casilla de verificación "Const"

opGUID

El GUID único para la operación actual.

opIsQuery

Ventana de Operación :: casilla de verificación"IsQuery"

opMacros

Una lista separada de espacio de macros definidos en la declaración de esta operación.

opName

Ventana de Operación : "Nombre"

opNotes

Ventana de Operación : "Notas"

opPure

Ventana de Operación : casilla de verficación"Puro"

opReturnArray

Ventana de Operación : casilla de verificación "Return Array"

opReturnQualType

El tipo de retorno de operación calificado por la ruta de espaciodenombre (si esta generando espaciodenombres) y la ruta del clasificador (dot delimitado). Si el clasificador de tipo de retorno no ha sido establecido, es equivalente al macro opReturnType.

opReturnType

Ventana de Operación : "Tipo de Retorno"

opScope

Ventana de Operación : "Alcance"

opStatic

Ventana de Operación : casilla de verificación "Estático"

Operation dialog: "Stereotype"

Ventana de Operación : "Estereotipo"

opSynchronized

Ventana de Operación : casilla de verificación "Sincronizado"

packageAlias

Ventana Paquete: "Alias"

packageName

Ventana Paquete: "Nombre"

packageGUID

El GUID único para el paquete actual.

packagePath

El string representando la jerarquía de los paquetes, para la clase en alcance. Cada nombre del paquete esta separado por un punto(.)

paramDefault

Ventana de Parámetros de Operación: "Predeterminado"

paramFixed

Ventana de Parámetros de Operación: casilla de verificación "Fijo"

paramGUID

El GUID único para el parámetro actual.

paramIsEnum

Verdad, si el parámetro usa la clave enum (C++)

paramKind

Ventana de Parámetros de Operación: "Tipo"

paramName

Ventana de Parámetros de Operación: "Nombre"

paramNotes

Ventana de Parámetros de Operación: "Campos de notas"

paramQualType

El tipo de parámetro calificado por la ruta del espaciodenombre (si esta generando espaciosdenombre y la ruta del clasificador (dot delimitado). Si el clasificador del parámetro no ha sido establecido, es equivalente al macro paramType.

paramType

Ventana de Parámetros de Operación: "Tipo"

 

Macros de sustitución de campo se pueden usar en una de las maneras:

 

Uso 1: Sustitución Directa

Esta forma directamente sustituye el valor correspondiente del elemento en alcance en la salida.

Estructura: %<macroName>%

Donde <macroName> puede ser cualquiera de los macros listados abajo.

 

Ejemplos:

%className%
%opName%
%attName%

 

 

Uso 2: Sustitución Condicional

Esta forma de la macro permite sustituciones alternas para que se hagan dependiendo del valor de la macro.

Estructura:%<macroName> [ == "<test>"] ? <subTrue> [ : <subFalse> ]%

 

Donde:

[ <text> ] denota que <text> es opcional.
<test> es un string representando un valor posible para el macro.
<subTrue> y <subFalse> puede ser una combinación de strings acotados y el valor de la clave. Donde el valor es usado, este se reemplaza con el valor de la macro en la salida. 

 

Ejemplos:

%classAbstract=="T" ? "pure" : ""%
%opStereotype=="operator" ? "operator" : ""%
%paramDefault != "" ? " = " value : ""%

 

Los tres ejemplos de arriba no mostrará ninguna salida si la condición falla.

 

Ejemplos:

%classAbstract=="T" ? "pure"%
%opStereotype=="operator" ? "operator"%
%paramDefault != "" ? " = " value%

 

El tercer ejemplo de los dos bloques muestran una comparación chequeando por un valor vacío ó existencia. Esta prueba puede también ser omitida. 

 

%paramDefault ? " = " value : ""%
%paramDefault ? " = " value%

 

Todos los ejemplos de arriba conteniendo paramDefault son equivalentes. Si el parámetro en el alcance tenia un valor determinado de 10, esperaríamos que la salida de cada uno fuera de :

 

= 10

 

Tenga en cuenta: En una macro de sustitución condicional, cualquier espacio en blanco siguiendo <macroName> es ignorado. Si el espacio en blanco es requerido, este debería estar incluido dentro de los strings de sustitución acotados.