3 votes

Génération de code source Java : Eclipse JDT AST vs CodeModel

Je suis en train d'écrire un plugin eclipse qui permet à l'utilisateur d'écrire du code java en utilisant une interface utilisateur de type glisser-déposer. Je suis tombé sur ces deux bibliothèques de génération de code source java. Eclipse JDT AST et Code Model.

J'aimerais comprendre les avantages et les inconvénients des deux bibliothèques. D'après ce que j'ai lu et compris :

  1. L'AST est très puissant. En regardant les exemples de code que j'ai vus et le plugin ASTView, je suis pleinement convaincu que nous pouvons écrire n'importe quelle construction java en utilisant cette bibliothèque. En revanche, je n'ai pas pu trouver beaucoup de documentation ou d'exemples sur Code Model. Donc, je ne suis pas très clair sur sa puissance. J'aimerais savoir si CodeModel est aussi puissant que AST.

  2. La quantité de code requise pour CodeModel est bien inférieure à celle d'AST pour obtenir la même fonctionnalité.

  3. Avec l'AST, je peux tout à fait réécrire une classe java existante. Je n'ai rien trouvé de semblable dans le cas de CodeModel.

J'ai définitivement besoin des fonctionnalités de 1 et 3. Avoir 2 également est un avantage supplémentaire. Je voudrais savoir si codeModel possède 1 et 3. Veuillez me faire part des avantages et des inconvénients de ces deux bibliothèques. De même, faites-moi savoir s'il existe une meilleure bibliothèque que ces deux-là.

Note : Je recherche la génération/manipulation de code source et non la manipulation de code octet.

Merci d'avance.

3voto

naveen Points 118

J'ai utilisé Eclipse JDT AST dans mon plugin Eclipse pour la raison suivante :

  1. CodeModel n'est pas aussi puissant que AST. CodeModel ne dispose pas d'un grand nombre de constructions java existantes, alors que AST ne cesse de se mettre à jour et supporte actuellement le jdk 1.7.
  2. CodeModel ne dispose pas d'un analyseur syntaxique. Il ne peut pas lire les fichiers java existants et modifier le code existant.
  3. AST dispose d'une excellente documentation alors que CodeModel n'en a que peu ou pas du tout.

1voto

Andrew Eisenberg Points 12522

Je ne connais pas du tout CodeModel, je ne peux donc pas dire si c'est un bon projet ou non. Cependant, puisque vous créez un plugin Eclipse, je vous recommande d'opter pour JDT. La raison en est principalement la compatibilité avec les autres composants Eclipse. L'API AST de JDT fonctionne d'emblée avec d'autres API d'Eclipse (l'API de ressource, l'API de modèle Java, l'API de refactoring, l'API de manipulation de texte et l'API d'éditeur, pour n'en citer que quelques-unes). JDT est loin d'être simple, mais il est très puissant et s'intègre parfaitement au modèle Eclipse.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X