2014-07-07 29 views
0

我在寫一個包含一個必需IP和三個可選IP的組件。值得注意的是,儘管後三個IP是可選的,但至少需要其中一個。它看起來是這樣的:NoFlo組件中IP的可選同步

@inPorts.add 'search_term', new noflo.InPort datatype: 'string' 
@inPorts.add 'category1', new noflo.InPort datatype: 'boolean' 
@inPorts.add 'category2', new noflo.InPort datatype: 'boolean' 
@inPorts.add 'category3', new noflo.InPort datatype: 'boolean' 

所以,基本上,組件應該執行某些搜索類別或組合類別(至少一個!)。

問題是組件必須等待,直到它從所有連接的輸入中收集數據,然後搜索並向前發送結果。

我已查看wirePattern/groupedInput幫助程序,但我無法弄清楚是否支持此類可選分組。我在這裏錯過了一些微不足道的東西嗎?有沒有更簡單的方法來實現這種行爲?我也看過一些關於IP的required選項,但沒有得到它的工作。

回答

1

我建議你只有兩個輸入端口; search_termcategory。類別端口可以接受最多具有三個與類別名稱匹配的屬性的對象。

@inPorts.add 'search_term', new noflo.InPort datatype: 'string' 
@inPorts.add 'category', new noflo.InPort datatype: 'object' 

# Example input object 
{ 
    category1: true, 
    category2: false, 
    category3: true 
} 
+0

是的,這會解決我的問題。不過,我認爲這是NoFlo的典型特徵。我可能試圖錯誤地使用它,但我想創建一個非程序員可以使用的高級組件。 雖然這可能是最好的方法。謝謝您的回答。 –