Afin d’améliorer les performances du moteur d’informations de Generic System, un système de cache automatique qui évite la répétition de requêtes coûteuses au back-office a été mis en place.
De nombreuses méthodes qui renvoient un 
			Snapshot font par exemple appel à la méthode 
			getDependencies(), suivie d’un ou plusieurs filtres (seulement les instances, une valeur ou des composants donnés, etc.). Pour éviter d’avoir à re-filtrer les 
			Snapshot à plusieurs reprises, nous avons créé des arbres permettant de stocker les résultats des filtrages dans les classes 
			AbstractTsDependencies et 
			PseudoConcurrentCollection. L’arbre est constitué de nœuds contenant :
- l’index lui-même, sous forme d’implémentation de l’interface 
			Index fournissant les méthodes 
			add(), 
			remove() et 
			iterator() ;
 
- des enfants sous forme de 
			HashMap ayant pour clés des 
			IndexFilter et pour valeur le nœud contenant l’index filtré avec sa clef. Les entrées sont créées automatiquement lors du 
			get() si elles n’existent pas. La méthode 
			filter(List filters) va chercher le nœud de l’arbre correspondant aux filtres indiqués.
 
 Continue reading Système d’indexation