A tabela a seguir lista os estereótipos do perfil e suas propriedades e tipos relacionados.
| Estereótipo | Aplica-se a | Propriedades | Tipo |
|---|---|---|---|
| «cpp_assignment» | Operações | isInline | Booleano com um valor padrão de false |
| «cpp_body_comment» | Comentários que você deseja que apareçam no código-fonte, tais como comentários para funções e variáveis estáticas | ||
| «cpp_constructor» | Operações | isExplicit, isInline | Booleano com um valor padrão de false |
| memberInitializers | Cada sequencia especifica a lista
inicializadora do construtor de uma classe. A lista especifica os valores iniciais dos
atributos da classe ou da classe pai. Por exemplo, especifique a
seguinte sequencia para gerar uma lista inicializadora para um método de construtor de uma
classe chamada Class1 que tenha um atributo de inteiro denominado attribute1 e um
atributo de sequencia denominado name1:
Não
coloque a sequencia entre aspas simples. A transformação gera o seguinte construtor:
|
||
| «cpp_copy_constructor» | Operações | isExplicit, isInline | Booleano com um valor padrão de false |
| memberInitializers | Cada sequencia especifica a lista
inicializadora do construtor de uma classe. A lista especifica os valores iniciais dos
atributos da classe ou da classe pai. Por exemplo, especifique a
seguinte sequencia para gerar uma lista inicializadora para um método de construtor de uma
classe chamada Class1 que tenha um atributo de inteiro denominado attribute1 e um
atributo de sequencia denominado name1:
Não
coloque a sequencia entre aspas simples. A transformação gera o seguinte construtor:
|
||
| «cpp_dependency» | Relacionamentos de Dependência | isForwardReferenceInBody | Booleano com um valor padrão false;
se o valor for configurado como true, irá gerar uma declaração de encaminhamento do tipo de fornecedor no arquivo .cpp da classe de cliente e o valor da propriedade isForwardReferenceInHeader será ignorado. Se a propriedade for configurada como true, a transformação não irá gerar uma referência de encaminhamento
nas seguintes situações:
|
| isForwardReferenceInHeader | Booleano com um valor padrão false;
se o valor for configurado como true, irá gerar uma declaração de encaminhamento do tipo de fornecedor
no arquivo de cabeçalho da classe de cliente. Se a propriedade for configurada como true, a transformação não irá gerar uma referência de encaminhamento
nas seguintes situações:
|
||
| isInclusionInBody | Booleano com um valor padrão true; se o valor for configurado como true, irá gerar uma diretiva #include no arquivo .cpp da classe de cliente. | ||
| isInclusionInHeader | Booleano com um valor padrão false; se o valor for configurado como true, irá gerar uma diretiva #include no arquivo de cabeçalho da classe de cliente e o valor da propriedade isInclusionInBody será ignorado. | ||
| «cpp_destructor» | Operações | isVirtual, isInline | Booleano com um valor padrão de false |
| «cpp_enum» | Enumerações | isAnonymousEnum | Booleano com um valor padrão de false; se o valor for configurado como true, a transformação gerará uma enumeração anônima |
| «cpp_external_inclusion» | Classes, interfaces | includeType | Enumeração com valores que especificam como a transformação gera diretivas de inclusão quando a classe importada não faz parte da origem de transformação |
| relativeToFolderInput | Sequência; obrigatório se você especificar o valor Gere diretivas de inclusão que sejam relativas a essa pasta na propriedade includeType | ||
| specificFileNameInput | Sequência; obrigatório se você especificar o valor Gere uma diretiva de inclusão que contenha o seguinte nome de arquivo na propriedade includeType | ||
| «cpp_friend» | Relacionamentos de Dependência | Gera uma diretiva #include no arquivo de cabeçalho e declara a classe do fornecedor como um amigo da classe do cliente | |
| «cpp_generalization» | Relacionamentos de generalização, relacionamentos InterfaceRealization | GeneralizationKind | Enumeração com valores público, protegido, privado e padrão (0-público, 1-protegido, 2-privado, 3-padrão) |
| isVirtual | Booleano com um valor padrão de false; indica heranças virtuais | ||
| «cpp_globals» | Classes | Aplicar esse estereótipo a uma classe indica que se trata de uma classe vazia; a transformação não gera uma classe C++ correspondente. A transformação gera apenas tipos globais C++ correspondentes, normalmente variáveis e métodos, para cada elemento especificado na classe estereotipada. | |
| «cpp_internal_inclusion» | Classes, interfaces | includeType | Enumeração com valores que especificam como a transformação gera diretivas de inclusão quando a classe de importação e a classe importada fazem parte da origem de transformação |
| relativeToFolderInput | Sequência; obrigatório se você especificar o valor Gere diretivas de inclusão que sejam relativas a essa pasta na propriedade includeType | ||
| specificFileNameInput | Sequência; obrigatório se você especificar o valor Gere uma diretiva de inclusão que contenha o seguinte nome de arquivo na propriedade includeType | ||
| «cpp_namespace» | Pacotes | NamespaceName | Sequência |
| «cpp_operation» | Operações | isInline | Booleano com um valor padrão de false; se o valor for configurado como true, gerará a operação como sequencial e incluirá o corpo da operação no arquivo de cabeçalho correspondente |
| isVirtual | Booleano com um valor padrão de false; se o valor for configurado como true, gerará a operação como uma função virtual | ||
| isFriend | Booleano com um valor padrão de false; se o valor for configurado como true, gerará uma operação amigável | ||
| isGlobal | Booleano com um valor padrão false; se o valor for configurado como true, irá gerar uma função global e uma classe vazia que corresponderá à classe UML que contém a função global | ||
| «cpp_properties» | Classes, interfaces, enumerações | bodyFileExtension | Arquivo de corpo C++ com a extensão especificada |
| headerFileExtension | Arquivo de cabeçalho C++ com a extensão especificada Por
exemplo, para gerar código para uma classe de modelo C++ em um arquivo de cabeçalho que tenha
.inc como uma extensão de nome de arquivo, é possível aplicar esse estereótipo à classe
e configurar esta propriedade como ".inc".
Nota: Você deve associar a extensão de nome de arquivo .inc a um
arquivo de cabeçalho C++ para que o
C/C++ Development Tools
reconheça .inc como uma extensão de nome de arquivo C++ válida.
|
||
| «cpp_specialized_template» | Classes que têm um relacionamento de ligação com uma classe de modelo | Todas as classes que especificarem um relacionamento de «ligação» com uma classe de modelo serão transformadas em tipos typedef que referenciam uma instância do modelo base. Todos os parâmetros formais no relacionamento de ligação devem estar ligados. |
|
| «cpp_struct» | Classes | ||
| «cpp_type» | Propriedades, parâmetros | arrayDimensions | Essa é uma sequencia que é normalmente utilizada para especificar matrizes
multidimensionais que o UML 2.0 não suporta. Por exemplo, utilize essa sequencia para especificar uma matriz para uma propriedade: [10][20]; ou para um parâmetro do tipo sem retorno: [][10] |
| InitializerKind | Essa é uma enumeração com valores de construtor e de designação (0-construtor). Se a propriedade InitializerKind for definida como 0, a transformação gerará um inicializador de construtor. Se a propriedade InitializerKind for definida como 1, a transformação gerará uma instrução de designação no construtor. Consulte o Exemplo de como a transformação UML-para-C++ transforma elementos com o estereótipo «cpp_type» aplicado. |
||
| isAuto, isMutable, isRegister, isVolatile | Booleano com um valor padrão de false | ||
| qualifier | Essa é uma sequencia que contém a parte de um tipo C++ que não pode ser modelada
no UML, e que aparece antes do nome da variável a após o tipo, como ** e &. Por exemplo, const int **a[12][33] pode
ser representado por estes itens:
|
||
| Atributos | isGlobal | Booleano com um valor padrão false; se o valor for configurado como true, irá gerar uma variável global e uma classe vazia que corresponderá à classe UML que contém a variável global | |
| «cpp_typedef» | Classes | arrayDimensions | Sequência |
| ImplementationType | Essa sequencia especifica o tipo ao qual o tipo
typedef se refere; ela pode ser de um tipo primitivo ou de um tipo definido pelo usuário. Os tipos definidos pelo usuário podem ser completos ou não. Se um nome do tipo não for totalmente qualificado, o escopo do tipo typedef será aplicado ao tipo definido pelo usuário. |
||
| qualifier | Essa sequencia especifica tipos de ponteiro, constantes etc. Por exemplo, a
transformação gera const int **Typedef1[12][13] para um elemento UML da seguinte descrição:
|
||
| «cpp_union» | Classes | isAnonymousUnion | Booleano com um valor padrão de false |
| Elemento UML | Saída da Transformação |
|---|---|
![]() |
Class1.cpp:
|