Überprüfen Sie alle Elemente von einer Liste (Drools Expert)
Bin ich zu schreiben versucht, Regeln in Drools Expert. In der when
Teil der Regel, ich schauen einige Eigenschaften des Application
Objekt. Dieses Objekt enthält eine Liste und ich möchte, um zu überprüfen, ob eine Reihe von Regeln gelten für alle Objekte der SomeOtherType in dieser Liste. Die Regel soll nur ausgelöst, wenn die Beschränkungen gelten für ALLE Objekte in dieser Liste.
rule "Application eligible"
when
app : Application(
some constrains
& write some constraints for all objects in app.getList() (a method
that returns a List<SomeOtherType> object)
)
then
//application is eligible
end
InformationsquelleAutor John Manak | 2011-02-24
Du musst angemeldet sein, um einen Kommentar abzugeben.
Legen Sie alle Ihre
SomeOtherType
Instanzen in den Arbeitsspeicher zu, wenn Sie nicht bereits getan haben.Dann versuchen Sie so etwas wie dies, wenn Sie möchten, um zu überprüfen, dass alle SomeOtherType ist die Farbe ROT:
SomeOtherType
Instanzen in den Arbeitsspeicher? Zum Beispiel mitforall
zusammen mitfrom
?Ja, aber
from
beginnt rückwärts-Verkettung statt der vorwärtsverkettung IIRC, die sich auf die Leistung auswirken (siehe Handbuch). Es gibt auch andere interessante keywords, die funktionieren könnte, wiecollect
IIRC (siehe auch Handbuch).Was bedeutet "Anwendung" bedeutet in "SomeOtherType( Anwendung == $app ) "? Vielleicht meinst du "Anwendung"? @Smet
InformationsquelleAutor Geoffrey De Smet
Fand ich auch eine andere Art von hack-y-Weg, dies zu tun, wenn Sie möchten, zu bekommen, um mit legen Sie Ihr Objekt in den Arbeitsspeicher mit zu sammeln, wie Geoffry vorgeschlagen:
InformationsquelleAutor josh-cain