A quoi sert ce plugin ?
Vous avez souvent besoin de surcharger la méthode « toString() » de vos classes Java afin d’avoir une vue du contenu de vos objets. Cela devient très vite rébarbatif et vous souhaiteriez générer automatiquement cette méthode ?
Cela est désormais possible avec le plugin JUtils ToString Generator pour Eclipse que nous allons vous présenter à travers un exemple simple et concret.
À noter que le plugin est compatible avec tout IDE reposant sur une version 3.0 (ou supérieure) d’Eclipse.
Le plugin en action
Prenons la classe « Utilisateur.java » contenant plusieurs membres privés : login, nom et prenom. Votre éditeur de code préféré vous propose de générer les méthodes « getter » et « setter » de ces membres et vous obtenez assez facilement cette classe :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
public class Utilisateur { private String login; private String nom; private String prenom; public Utilisateur(String _login) { super(); login=_login; } public String getNom() { return nom; } public void setNom(String nom) { this.nom = nom; } public String getPrenom() { return prenom; } public void setPrenom(String prenom) { this.prenom = prenom; } public String getLogin() { return login; } } |
Maintenant, vous souhaitez également disposer de la méthode « toString() » sans trop d’effort ?
Au sein de votre éditeur, il suffit de réaliser un clique droit sur cette classe, après s’être placé dans la perspective « Java » et la vue « Explorateur de packages », et de choisir « generate toString() » dans l’onglet « JUtils ».
Voici le résultat de la génération de la méthode « toString() » :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
/** * Constructs a <code>String</code> with all attributes * in name = value format. * * @return a <code>String</code> representation * of this object. */ public String toString() { final String TAB = " "; StringBuffer retValue = new StringBuffer(); retValue.append("Utilisateur ( ") .append(super.toString()).append(TAB) .append("login = ").append(this.login).append(TAB) .append("nom = ").append(this.nom).append(TAB) .append("prenom = ").append(this.prenom).append(TAB) .append(" )"); return retValue.toString(); } |
Il existe également « generate Copy Constructor » sous l’onglet « JUtils » permettant de générer un constructeur de la classe pour réaliser des copies d’objets. Voici le résultat sur notre exemple :
1 2 3 4 5 6 7 8 9 10 11 |
/** * Copy Constructor * * @param utilisateur a <code>Utilisateur</code> object */ public Utilisateur(Utilisateur utilisateur) { this.login = utilisateur.login; this.nom = utilisateur.nom; this.prenom = utilisateur.prenom; } |
Configuration du plugin
Il est possible de configurer plus finement le résultat de la génération en allant dans l’onglet « préférences » de votre éditeur et en choisissant la catégorie : « JUtils ». Vous pouvez alors modifier le commentaire Javadoc et le code Java générés afin de personnaliser les résultats de l’appel des deux utilitaires (toString et Copy Constructor).
D’autres options sont disponibles comme l’ordre d’affichage des membres, la sauvegarde automatique de la classe et la permission de remplacer ou non l’éventuelle méthode (ou constructeur) déjà existant.
Enfin, pour la méthode « toString() », il est possible de paramétrer le type d’objet Java utilisé pour réaliser les manipulations des chaines de caractères. Nous vous conseillons l’utilisation de « StringBuffer » qui est optimisé pour ce genre de traitement (surtout si vous êtes amenés à réaliser des boucles sur vos objets).
Conclusion
Ce plugin est très pratique et simple d’utilisation, il permet vraiment de gagner du temps si vous êtes amenés à gérer des objets complexes.
N’hésitez pas à télécharger ce plugin : http://eclipse-jutils.sourceforge.net !
Jean-Sébastien MERCY