Il est nécessaire de s'assurer que lors de la résolution des dépendances des plugins, on récupère une liste de plugins avec des dépendances satisfaites.
En effet, il faut vérifier pour chaque dépendance de plugin que chaque dépendance sont elles-même satisfaites et cela de façon récursives, pour être sûr qu'on n'ajoutera pas de plugin dont les dépendances sont satisfaites mais qui dans ces dépendances une ne l'est pas!
public List<T> getSatisfiedPlugins() {
List<T> copy = new ArrayList<T>();
Collections.copy(copy, satisfactiOn);
copy.removeAll(dependsOn.keySet());
return copy;
}
C'est fait !
en gros, à la fin de l'exécution, je récupère uniquement la liste des plugins qui se sont déclarés comme satisfaisant et qui, de surcroit, n'ont plus de dépendances insatisfaites !
Par contre, je ne gère pas une profondeur de plus de 1. C'est à dire que à la fin, il n'y a pas encore de moyen de remonter l'arbre des dépendances pour supprimer tous les plugins fils dont les fils on des dépendances non satisfaites. Voili voilou pour le moment !
Need help to resolve this problem...
La méthode nice renvoie une liste de IPlugin et non plus une liste de Class