2014-07-07 3 views
0

하나의 필수 IP와 세 개의 선택적 IP가있는 구성 요소를 작성 중입니다. 이 세 가지 IP는 선택 사항이지만 적어도 하나는 필요합니다.NoFlo 구성 요소의 IP : s의 선택적 동기화

@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

두 개의 inPorts 만있는 것이 좋습니다. 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의 전형이라고 생각합니다. 잘못된 방식으로 사용하려고 할 수도 있지만 비 프로그래머가 사용할 수있는 상위 수준의 구성 요소를 만들고 싶습니다. 이것은 가장 좋은 방법 일 수 있습니다. 답변 주셔서 감사합니다. –