A transformação Java gera classes Java a partir de elementos do modelo UML. Você pode utilizar a transformação Java para iniciar um projeto Java a partir de especificações UML. Também pode aplicar a transformação Java após o início para mesclar modelos UML atualizados com o código Java existente.
Você pode gerar classes Java a partir de modelos UML, pacotes, classes não aninhadas e interfaces não aninhadas. As classes e interfaces aninhadas são geradas na classe de nível superior correspondente.
Você pode aplicar o perfil de transformação Java a seu modelo para validar o modelo para potenciais problemas de transformação que causam erros de compilação em código Java gerado, como heranças múltiplas, generalizações circulares, conflitos de nomenclatura, conflitos de propriedade e conflitos de visibilidade de classes/interfaces de nível superior privadas/protegidas.
A transformação pode gerar arquivos em um projeto Java que tenha pelo menos uma pasta de origem.
É possível criar um modelo de mapeamento para especificar nomes alternativos para os elementos que a transformação gera sem modificar o modelo de origem. Você pode querer especificar nomes alternativos se desejar incluir detalhes específicos do Java (como restrições de nomenclatura) em modelos independentes da plataforma ou se a organização lógica do modelo de origem não for apropriada como pacote de destino.
Um modelo de mapeamento é um modelo separado que possui um artefato para cada elemento transformável. Cada artefato se refere e tem o mesmo nome do elemento transformável original. É possível especificar um nome alternativo alterando a propriedade nome do arquivo do artefato.
É possível especificar um nome completo como com.ibm.NewName.com ou um nome incompleto como NewName. A especificação de nomes alternativos para pacotes afeta todos os classificadores nesse pacote, a menos que o classificador especifique um nome completo. Também é possível especificar locais alternativos dentro do mesmo projeto para elementos que a transformação gera.
Depois de executar a transformação Java, você pode fazer alterações em seu modelo UML e executar a transformação novamente. A transformação mescla as alterações no modelo de origem e no código fonte modificado utilizando tags @generated nos Javadocs. A transformação possui elementos Java que são marcados com @generated e os sobrescreve durante a retransformação ou os exclui se tiverem sido removidos do modelo de origem. É possível remover as tags @generated do código fonte para impedir que a transformação sobrescreva ou exclua os elementos.
A transformação pode substituir os elementos do modelo UML do modelo de origem por referências visuais para classes Java geradas. Depois, você pode editar a referência visual ou fazer alterações no arquivo Java no nível de código. As alterações feitas no nível visual são automaticamente refletidas no arquivo Java. As alterações efetuadas no nível de código são refletidas na referência visual.
A transformação de UML para Java pode criar relacionamentos derivados a partir de classes Java geradas para seus elementos do modelo de origem UML.