Para especificar argumentos do sistema para a transformação UML-para-C++:
| Ação | Argumento do Sistema | Comportamento de Transformação Padrão |
|---|---|---|
| Exibir atributos e operações na seguinte ordem: Público, Protegido, Privado | -DVISIBILITY_ORDER=true | Se você não especificar esse argumento do sistema, o código gerado listará os atributos e operações na seguinte ordem: Privado, Protegido, Público. |
| Excluir informações de caminho relativo em diretivas #include | -DEXCLUDE_PATH_FOR_INCLUDES=true | Se você não especificar esse argumento do sistema, a transformação gerará diretivas #include que especificam informações de caminho relativo. |
| Gerar a palavra-chave typename ao declarar modelos de classe com parâmetros de tipo, por exemplo, template <typename identifier> class_declaration | -DTYPENAME_TEMPLATES=true | Se você não especificar esse argumento do sistema, quando
executar a transformação em um modelo que contenha uma classe de modelo com
um parâmetro de modelo que seja do tipo class, a declaração gerada conterá
a palavra-chave class. Considere o seguinte exemplo: ![]() Por padrão,
a transformação gera a seguinte declaração no TemplateClass1.h:
template <class Parameter1>
class Class1
{
//Iniciar seção para Class1
//TAREFA A FAZER: Incluir atributos a serem preservados
//Encerrar seção para Class1
public:
//@uml.annotationsderived_abstraction="platform:/resource/Miscellaneous%20Models/source.emx#_hFn-0GaLEdyC-b6mj80KQA"
//@generated "UML para C++ (com.ibm.xtools.transform.uml2.cpp.CPPTransformation)"
int Operation1()
{
//TAREFA A FAZER Stub de método gerado automaticamente
return 0;
}
}; //encerrar classe Class1
</class>
Se você especificar -DTYPENAME_TEMPLATES=true,
a transformação gerará a seguinte declaração no TemplateClass1.h:
template <typename Parameter1>
class Class1
{
//Iniciar seção para Class1
//TAREFA A FAZER: Incluir atributos a serem preservados
//Encerrar seção para Class1
public:
//@uml.annotationsderived_abstraction="platform:/resource/Miscellaneous%20Models/source.emx#_hFn-0GaLEdyC-b6mj80KQA"
//@generated "UML para C++ (com.ibm.xtools.transform.uml2.cpp.CPPTransformation)"
int Operation1()
{
//TAREFA A FAZER Stub de método gerado automaticamente
return 0;
}
}; //encerrar classe Class1</typename>
|
| Gerar código de função seqüencial em um arquivo de cabeçalho | -DINLINE_HEADER=true | Se você não especificar esse argumento do sistema, a transformação gerará o código para funções seqüenciais no arquivo de corpo C++. |
| Especificar extensões de nome de arquivo alternativas para arquivos de corpo C++ | -DBODY_FILE_EXTENSION=.<extensão de nome de arquivo> Por
exemplo, para gerar arquivos de corpo C++ que tenham .cc como uma extensão de nome de arquivo,
especifique -DBODY_FILE_EXTENSION=.cc.
Nota: Se você aplicar o
estereótipo «cpp_properties» a um elemento de modelo de origem, o valor da propriedade bodyFileExtension
substituirá o valor que for especificado no arquivo eclipse.ini.
|
Se você não especificar esse argumento do sistema, a transformação gerará arquivos de corpo C++ que tenham .cpp como uma extensão de nome de arquivo. |