# Importação de Código e Geração de Código

O &umbrello; é uma ferramenta de modelagem &UML;, e como tal seu principal propósito é auxiliá-lo na análise e desenho de seus sistemas. No entanto, para fazer a transição entre seu desenho e sua implementação, o &umbrello; permite gerar código-fonte numa linguagem de programação que você conheça. Se você quiser iniciar o uso do &UML; num projeto em C++ já iniciado, o &umbrello; pode auxiliá-lo a criar um modelo de seu sistema a partir do código-fonte analisando seu código e importando as classes encontradas nele.

## Geração de Código

O &umbrello; pode gerar código-fonte a partir de várias linguagens de programação baseadas no seu Modelo &UML; para auxiliá-lo no início com a implementação do seu projeto. O código gerado consiste de declarações de classe, com seus métodos e atributos de modo que você possa preencher as lacunas fornecendo a funcionalidade das suas operações de classes.

O &umbrello; 2 vem com suporte à geração de código para ActionScript, Ada, C++, C#, D, IDL, &Java;, JavaScript, MySQL e Pascal.

### Gerando Código

Para gerar código como o &umbrello;, você primeiro precisa criar ou carregar um Modelo contendo pelo menos uma classe. Quando você estiver pronto para iniciar a escrita de algum código, selecione a entrada do Assistente de Geração de Código no menu Código para iniciar um Assistente que o guiará através do processo de geração de código.

O primeiro passo é selecionar as classes para quais você deseja gerar código fonte. Por padrão todas as classes de seu modelo serão selecionadas, e você pode remover as que não deseja que seja gerado código movendo-as para o lado esquerdo da lista.

O próximo passo do assistente lhe permite modificar os parâmetros que o Gerador de Código usa ao escrever seu código. As seguintes opções estão disponíveis:

Opções de Geração de Código Opções para a Geração de Código no &umbrello;

Opções para a Geração de Código no &umbrello;

#### Opções Gerais

##### Detalhes dos comentários

A opção Escrever cometários da documentação se vazios instrui o Gerador de Código a escrever comentários no estilo /** blah */ sempre que o bloco de comentários estiver vazio. Se você adicionar documentação a sua classe, métodos ou atributos em seu Modelo, o Gerador de Código escreverá estes comentários como documentação Doxygen a menos que você configure algo aqui, mas se você selecionar esta opção o &umbrello; escreverá blocos de comentários para todas as classes, métodos e atributos se não houver nenhuma documentação no Modelo, caso contrário você deverá documentar suas classes posteriormente diretamente no código-fonte.

Escrever comentários para seções se seção estiver vazia faz com que o &umbrello; escreva comentários no código-fonte para delimitar as diferentes seções de uma classe. Por exemplo métodos públicos ou Atributos antes das seções correspondentes. Se você selecionar esta opção o &umbrello; escreverá comentários para todas as seções da classe se a seção estiver vazia. Por exemplo, ele escreverá um comentário métodos protegidos se existem métodos não protegidos em sua classe.

##### Pastas

Gravar todos os arquivos gerados para pasta. Aqui você pode selecionar a pasta onde deseja que o &umbrello; coloque os fontes gerados.

A opção Incluir arquivos de cabeçalho da pasta permite-lhe inserir um cabeçalho no início de cada arquivo gerado. Arquivos de cabeçalho podem conter informações de direito de cópia ou licença e conter variáveis que serão avaliados no momento da geração. Você pode dar uma olhada nos arquivos modelos de cabeçalho fornecidos com o &umbrello; para ver como usar estas variáveis para substituir seu nome ou a data atual no momento da geração.

##### Política de Sobrescrever

Esta opção diz ao &umbrello; o que fazer se o arquivo que está sendo criado já existe na pasta destino. O &umbrello; não pode modificar arquivos fonte existentes, logo você deve escolher entre sobrescrever o arquivo existente, pular a geração do arquivo em particular ou deixar o &umbrello; escolher um nome de arquivo diferente. Se você escolher a opção de usar um nome diferente, o &umbrello; adicionará um sufixo ao nome do arquivo.

##### Linguagem

O &umbrello; irá gerar por padrão código na linguagem que você tiver selecionado como Linguagem Ativa, mas com o Assistente de Geração de Código você tem a opção de mudar isto para outra linguagem.

#### Geração do Assistente de Geração

O terceiro e último passo do assistente mostra o estado do processo de Geração de Código. Você precisa somente clicar no botão Gerar para ter suas classes escritas para você.

Observe que as Opções que você selecionou durante o assistente de Geração de Código são válidas somente para a geração atual. Na próxima vez que executar o Assistente você precisará re-selecionar todas as opções (sua pasta de cabeçalhos, política de sobrescrever, e assim por diante). Você pode configurar os padrões usados pelo &umbrello; na seção Geração de Código das configurações do &umbrello; disponível em Configurações Configurar o &umbrello;...

Se você tiver configurado suas opções de Geração de Código para as configurações corretas e desejar gerar algum código da mesma maneira sem passar pelo assistente, você pode selecionar a entrada Gerar Todo Código no menu Código. Isto irá gerar código para todas as classes em seu Modelo usando suas configurações atuais (incluindo Pasta de Saída e Política de Sobrescrever, logo use com cuidado).

## Importar Código

O &umbrello; pode importar código-fonte de seus projetos existentes para auxiliá-lo a construir o Modelo de seus sistemas. O &umbrello; 2 tem suporte para código-fonte em ActionScript, Ada, C++, C#, D, IDL, &Java;, Javascript, MySQL, e Pascal.

Para importar classes para seu Modelo, selecione a entrada Assistente de importação de código... no menu Código. No diálogo de arquivo selecione os arquivos contendo as declarações de classe e clique em Próximo >, Iniciar importação e Concluir. As classes serão importadas e você irá encontrá-las como parte de seu Modelo na Visão Árvore. Observe que o &umbrello; não criará nenhum tipo de Diagrama para mostrar suas classes, elas serão apenas importadas para seu Modelo e então você poderá usá-las mais tarde em qualquer diagrama que desejar.

Importar Código Menu para importação de código-fonte no &umbrello;

Menu para importação de código-fonte no &umbrello;