Pergunta

Eu criei um metamodelo ecore e gerou um editor através do EMF.Para gerar meu código de saída, analiso o conjunto de recursos (XMI) quando um diagrama é criado e, em seguida, mapear esses recursos para minhas próprias classes Java.Essas classes Java são responsáveis por gerar minha saída que são alguns arquivos JavaScript com base em alguns arquivos de modelo (.stg). Tudo funciona bem, mas minha pergunta é onde as tecnologias como Xtend / Acceleo entram?Eu preciso de algum deles?Eu sei que eles são baseados em modelo, mas desde que eu tenho meus próprios modelos que são renderizados através de minhas aulas Java, por que eu precisaria usar xtend por exemplo?Estou totalmente confuso.

Muito obrigado

Foi útil?

Solução

xtend é uma linguagem de uso geral.Você poderia chamá-lo de "melhor java".Isto é especialmente verdadeiro para modelos, porque o xtend tem bom expressões de modelo .Então, se você quiser que seu código gerador seja mais legível, você poderá substituir algumas aulas Java por classes Xtend.Você não precisa reescrever tudo, Xtend interopera perfeitamente com o Java.Basta reescrever as partes que beneficiam mais dos recursos de linguagem rica do Xtend.

Outras dicas

Você está usando o Eclipse Enterprise Modeling Framework (EMF). Isso fornece o Meta Modell Ecore e pode gerar editores baseados em diálogos básicos. Basicamente EMF traz seus diagramas do formato de arquivo XMI para um modelo de objeto padronizado, semelhante a um DOM.

Provavelmente você também usa a estrutura do editor gráfico (GEF) para visualizar seus diagramas. Leva seu DOM e torna-o a uma representação gráfica. Normalmente, você também pode modificar os gráficos usando a interface gráfica do usuário, que também mudará o conteúdo do seu DOM.

Paralela ao GEF também existe uma estrutura de editores textuais chamada Xtext. Isso traz seu DOM a uma representação textual. Você pode então usar um editor de texto para alterar a representação textual. O Xtext pode analisar este texto alterado e mudar o DOM de acordo. Além disso, gera um bom editor eclipse com sintaxe alto relâmpago, dobramento de código, conclusão de código e possibilidades de extensões para conclusão e refatoração de código personalizado.

XText pode ser aumentado pelo XBase. O XBase é uma linguagem básica de programação que é executada no Java VM. Você pode então fornecer um mapeamento de seus artefatos ecore para conceitos XBase (por exemplo, qual objeto Ecore representa uma instrução IF ou um loop). XBase pode gerar Java Bytecode e, portanto, converter seu modelo ECORE para código runnable.

xtend é uma linguagem de uso geral. Muitas vezes é usado como um mecanismo de modelo muito avançado para converter seu modelo Ecore ao texto. Em contraste com o XText não há como voltar a converter o texto gerado de volta para o Ecore Dom. Claro que você pode usar qualquer mecanismo de modelo ou até XText / XBase para gerar seu código de runnable de acordo com suas necessidades.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top