Capítulo 4. Geração de código com modelos

O KDevelop usa modelos para gerar arquivos de código-fonte e evitar que códigos repetitivos sejam escritos manualmente.

Criar uma nova classe

O uso mais comum para geração de código é provavelmente a escrita de novas classes. Para criar uma nova classe em um projeto existente, dê um clique direito em uma pasta do projeto e selecione Criar a partir de um modelo.... A mesma janela pode ser aberta a partir do menu clicando em ArquivoNovo a partir de um modelo..., mas usar uma pasta do projeto tem a vantagem de definir uma URL base para os arquivos gerados. Selecione Classe na visão de seleção da categoria, e a linguagem e modelo nas outras duas visões. Após ter selecionado um modelo de classe, você terá que especificar os detalhes da nova classe.

Primeiro você deve especificar um identificador para a nova classe. Isto pode ser um nome simples (como Onibus) ou um identificador completo com espaço de nomes (como Transporte::Onibus). No último caso, o KDevelop analisará o identificador e separará corretamente o espaço de nomes a partir do nome fornecido. Na mesma página, você pode adicionar uma classe base em si, bem como remover a/ou adicionar outras bases. Você deve digitar a sentença completa de herança aqui, que é dependente da linguagem, como public QObject para C++, extends AlgumaClasse para PHP ou simplesmente o nome da classe para Python.

Na próxima página, você poderá selecionar métodos virtuais de todas as classes herdadas, bem como alguns construtores padrão, destrutores e operadores. Selecionando a caixa de opção ao lado da assinatura de um método, será implementado este método na nova classe.

Clicar em Próximo leva à página aonde você pode adicionar membros à classe. Dependendo do modelo selecionado, eles podem aparecer na nova classe como variáveis de membro, ou o modelo pode criar propriedades com apontadores e obtentores para eles. Em uma linguagem aonde tipos de variável devem ser declarados, como em C++, você terá que especificar tanto o tipo como o nome do membro, como int numero ou QString nome. Em outras linguagens, você não precisa declarar o tipo, mas é uma boa prática de programação declará-lo, pois o modelo selecionado pode ainda fazer algum uso dele.

Nas páginas a seguir, você pode selecionar uma licença para sua nova classe, definir opções personalizadas necessárias do modelo selecionado, e configurar a localização de saída para todos os arquivos gerados. Ao clicar em Concluir, você conclui o assistente e cria a nova classe. Os arquivos gerados serão abertos no editor, assim você pode iniciar a adicionar código logo a seguir.

Após criar uma nova classe em C++, você terá a opção de adicionar a classe ao projeto alvo. Selecione um alvo a partir da página da janela, ou cancele a página e adicione os arquivos ao alvo manualmente.

Se você selecionar o modelo de Objeto Qt, selecione alguns dos métodos padrão, e adicione duas variáveis-membro, a saída deve se parecer com a imagem a seguir.

Você pode ver que os membros de dados são convertidos para as propriedades do Qt, com funções de acesso e macros Q_PROPERTY. Até mesmo argumentos para funções de ajuste são passados por referência à constante, quando apropriado. Adicionalmente, uma classe privada é declarada, e um ponteiro privado é criado com Q_DECLARE_PRIVATE. Tudo isto é feito pelo modelo. Selecionar um modelo diferente no primeiro passo poderá mudar completamente o resultado.