예: 사용자 정의 필터를 사용한 노드 검색

노드 찾기 섹션에는 노드의 유형명을 검색 기준으로 사용하여 흐름 내에서 노드를 찾는 예시가 포함되어 있습니다. 일부 상황에서는 더 일반적인 검색이 필요하며 NodeFilter 클래스 및 플로우 findAll() 메소드를 사용하여 이를 수행할 수 있습니다. 이 검색 유형에는 다음 두 단계가 포함됩니다.

  1. NodeFilter을(를) 확장하고 accept() 메소드의 사용자 정의 버전을 구현하는 새 클래스를 작성합니다.
  2. 플로우 findAll() 메소드를 이 새 클래스의 인스턴스로 호출합니다. accept() 메소드에 정의된 기준을 충족하는 모든 노드를 리턴합니다.

다음 예제는 노드 캐시가 사용 가능한 플로우에서 노드를 검색하는 방법을 보여줍니다. 노드의 리턴된 목록을 사용하여 이러한 노드의 캐시를 비우거나 사용 안함으로 설정할 수 있습니다.

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)