Configurando Argumentos do Sistema para Transformações UML-para-C++

Você pode especificar argumentos do sistema para a transformação UML-para-C++ no arquivo eclipse.ini, que possibilita especificar o comportamento de transformação que não está contido no arquivo de configuração de transformação. Por exemplo, você pode especificar extensões de nome de arquivo alternativas e alterar a ordem de exibição, com base na visibilidade, de atributos e operações gerados.
Por Que e Quando Desempenhar Esta Tarefa

Para especificar argumentos do sistema para a transformação UML-para-C++:

  1. Abra o arquivo eclipse.ini em um editor de texto. O arquivo eclipse.ini está localizado no diretório que você especificou como a raiz da instalação quando instalou o produto.
  2. Inclua as preferências do comportamento de transformação no final do arquivo. Especifique cada preferência em uma linha exclusiva após os outros argumentos do ambiente de trabalho existentes no arquivo. A tabela a seguir lista os comportamentos que podem ser configurados e os argumentos que devem ser incluídos no arquivo eclipse.ini.
    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:

    Esta imagem mostra uma classe de modelo UML chamada TemplateClass1, que possui um parâmetro de modelo chamado T1, do tipo class.

    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.
  3. Clique em Arquivo > Salvar.
  4. Reinicie o Eclipse e especifique a opção -clean.

Feedback