ノードを見つける
フローは、既存のノードを特定するためのさまざまな方法を提供します。 これらの方法は以下の表にまとめられています。
| メソッド | 戻りの型 | 説明 |
|---|---|---|
s.findAll(type, label) |
コレクション | 指定されたタイプとラベルを持つすべてのノードのリストを返します。 タイプまたはラベルのどちらかが None の場合、もう一方のパラメータが使用されます。 |
s.findAll(filter, recursive) |
コレクション | 指定したフィルタで受け入れられたすべてのノードのコレクションを返します。 再帰フラグが True の場合、指定されたフロー内の SuperNodes も検索されます。 |
s.findByID(id) |
ノード | 指定されたIDを持つノードを返します。そのようなノードが存在しない場合は None を返します。 検索は現在のストリームに限定されます。 |
s.findByType(type, label) |
ノード | 指定されたタイプ、ラベル、またはその両方を持つノードを返します。 タイプまたは名前のどちらかが None の場合、もう一方のパラメータが使用されます。 複数のノードが一致する場合は、任意のノードが選択され、返されます。 一致するノードがない場合、戻り値は None となります。 |
s.findDownstream(fromNodes) |
コレクション | 指定されたノードのリストから検索し、指定されたノードの下流にあるノードのセットを返します。 返されたリストには、最初に供給されたノードが含まれています。 |
s.findUpstream(fromNodes) |
コレクション | 指定されたノードのリストから検索し、指定されたノードの上流にあるノードのセットを返します。 返されたリストには、最初に供給されたノードが含まれています。 |
s.findProcessorForID(String id, boolean recursive) |
ノード | 指定されたIDを持つノードを返します。そのようなノードが存在しない場合は None を返します。 再帰フラグが true の場合、このダイアグラム内の複合ノードも検索されます。 |
例えば、スクリプトがアクセスする必要があるフィルタノードがフローに1つだけ含まれる場合、次のスクリプトを使用してフィルタノードを見つけることができます
stream = modeler.script.stream()
node = stream.findByType("filter", None)
...
あるいは、ノードのIDを使用することもできます。 例:
stream = modeler.script.stream()
node = stream.findByID("id49CVL4GHVV8") # the Derive node ID
node.setPropertyValue("mode", "Multiple")
node.setPropertyValue("name_extension", "new_derive")
フロー内の任意のノードのIDを取得するには、ツールバーの 「スクリプト」アイコンをクリックし、フロー内の希望するノードを選択して、「選択したノードのIDを挿入」 をクリックします。
