2009-04-29 4 views
0

나는 규칙 LHS 그Drools 패턴 문제 수집

when 
    $location : Location() 
    $cabinets : ArrayList() from collect (Cabinet() from $location.elements()) 
then 

때 RHS에서 @cabinets의 내용을 인쇄 할 때 모든 요소 (또한 캐비닛 클래스가 아닌) 포함되어 참조하십시오.

$ location> elements()에서 ontly 캐비닛을 수집하고 싶습니다.

내가 뭘 잘못 했니?

답변

-1

난 당신이 내가 해달라고 당신이 AFAIK을 가지고 Drools가 내각 클래스에 명시 적 타입 체크를하고 있다고 생각

Cabinet(class == Cabinet.class) 

의 라인을 따라 뭔가를 말할 것입니다 생각합니다.

+0

에 질문을 게시하는 시도 할 수 있습니다 : [규칙 이름을 = 0, no-loop = false] java.lang.NoSuchFieldException : 클래스 '필드'에 대한 제한 '[QualifiedIndentifierRestr : == Cabinet.class]'를 (를) Urchądzenia bez szafy ': [규칙 이름 = Urządzenia bez szafy, agendaGroup = MAIN, 돌출도 = 0, 반복 없음 = false] 잘못된 형식 임 –

-1

귀하의 질문은 '수집'패턴이 아니라 '수집'패턴에 관한 것입니다.

다음 규칙은 시험에 도움이 될 것입니다

when 
    $location : Location() 
    $cabinet : Cabinet() from $location.elements() 
then 

이 규칙은 위치에 각각의 내각에 대한 해고해야한다.

당신은 내가 '객체', '가치'Cabinet.class '= value 형'유형의 필드 값을 생성 할 수 없습니다 얻을 수행 후 rule-users user list

+0

Yse하지만 수집 된 캐비닛의 양을 ount해야하는 경우 어떻게해야합니까? –

+0

like this $ cabinets : ArrayList (size == 3) from collect (Cabinet() from $ location.elements()) –

+0

그렇다면 collect를 사용해야 할 것입니다 만, 문제는 'from'return 내각보다는 다른 유형에서 성분. 따라서 'from'을 사용하여 캐비닛 만 반환 할 수 있다면 collect를 사용하여 캐비닛 만 포함 된 ArrayList를 작성할 수 있습니다. – pgras