Exemple : recherche de noeuds à l'aide d'un filtre personnalisé
La section Recherche de noeuds inclut un exemple de recherche d'un noeud dans un flux en utilisant le nom de type du noeud comme critère de recherche. Dans certains cas, une recherche plus générique est nécessaire et peut être effectuée à l'aide de la classe NodeFilter et de la méthode de flux.findAll() Ce type de recherche comprend les deux étapes suivantes :
- Création d'une nouvelle classe qui prolonge
NodeFilteret qui implémente une version personnalisée de la méthodeaccept(). - Appel de la méthode de flux
findAll()avec une instance de cette nouvelle classe. Renvoie tous les noeuds qui répondent aux critères définis dans la méthodeaccept().
L'exemple suivant montre comment rechercher des noeuds dans un flux dont le cache est activé. La liste de noeuds renvoyée peut être utilisée pour vider ou désactiver les caches de ces noeuds.
import modeler.api
class CacheFilter(modeler.api.NodeFilter):
"""A node filter for nodes with caching enabled"""
def accept(this, node):
return node.isCacheEnabled()
cachingnodes = modeler.script.stream().findAll(CacheFilter(), False)