2009-04-29 6 views
0

J'ai une règle LHS comme çaDrools recueillir problème de modèle

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

un quand j'imprimer le contenu de @cabinets en RHS je vois qu'il contient tous les éléments (aussi ceux qui ne sont pas du Cabinet de classe).

Je souhaite récupérer des armoires depuis $ location> elements().

Qu'est-ce que j'ai fait de mal?

Répondre

-1

Je pense que vous dire quelque chose le long des lignes de

Cabinet(class == Cabinet.class) 

Je ne pense pas que Drools fait un contrôle de type explicite sur les classes du Cabinet que vous les avez afaik.

+0

après avoir fait que je me Impossible de créer une valeur de champ de type « ValueType = « objet » » et de la valeur « Cabinet.class »: [Nom de la règle = Urządzenia bez szafy, agendaGroup = MAIN, saillance = 0, no-loop = false] java.lang.NoSuchFieldException: classUnable pour créer une restriction '[QualifiedIndentifierRestr: == Cabinet.class]' pour le champ 'class' dans la règle ' Urządzenia bez szafy ': [Nom de la règle = Urządzenia bez szafy, agendaGroup = PRINCIPAL, saillance = 0, no-loop = false] donc c'est propably tort –

-1

Votre question concerne le modèle 'de', pas celui de 'collection'.

règle suivante devrait aider à tester:

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

Cette règle devrait tirer pour chaque cabinet dans un endroit.

Vous pouvez essayer de poser votre question sur le rule-users user list

+0

Yse mais que faire si j'ai besoin de la quantité d'armoires collectées? –

+0

comme ceci $ classeurs: ArrayList (size == 3) de collect (Cabinet() de $ location.elements()) –

+0

Bien sûr, vous devrez utiliser collect, mais le problème que vous avez est que 'de' renvoie éléments d'un autre type que le Cabinet. Donc, si vous pouvez avoir 'from' pour renvoyer uniquement des armoires, vous pouvez utiliser collect pour construire une ArrayList contenant uniquement des armoires ... – pgras

Questions connexes