Christoph,

   You can not do that, because $bizLoc would be tied to the Pattern type. Since you have different Pattern types, you will get the class cast exception.

   Not sure if it is possible to improve variable declarations so that they can act on different patterns, but you may open a JIRA for us to investigate.

   A workaround is if all your event classes implement an interface/super class that contains that attribute, you may bind the variable to the supertype attribute.

   []s
   Edson

2009/5/14 Christoph Kramer <amrod@gmx.de>
Hi all,
i've some problems with a ClassCastException when using the "or"-conditional element.
I have different Java-Beans which all have some string-values. Now I want to create one rule which is able to handle every type of my classes because it would be a lot of work to create one rule for every class.
Depending on the type of beans in the working memory the programm is crashing with an ClassCastException.

Here is a snippet of my drl-file with the "crashing-rule":

rule "BizLocation"
  when
      $epc : EPC()
      QuantityEventType(epcClass == $epc.value ,$bizLoc: bizLocation !=null ) or AggregationEventType(childEPCs.epc contains $epc, $bizLoc : bizLocation != null) or ObjectEventType(epcList.epc  contains $epc, $bizLoc : bizLocation != null)
  then
      System.out.println("BizLocation: " +$bizLoc.getId());
end


There are some EPC's in the working memory and some Events (which might be of type QuantityEventType, AggregationEventType or ObjectEventType). When there are only ObjectEventType in the working memory, everything works fine, but wenn there is an QuantityEventType this rule crashes with "org.fosstrak.epcis.model.QuantityEventType cannot be cast to org.fosstrak.epcis.model.ObjectEventType".
I've lot of other, similar rules some of them crashing, others don't.


Can anyone give me a hint where is the error?

Thanks,
Christoph

PS: Sorry for the bad english :(
_______________________________________________
rules-users mailing list
rules-users@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/rules-users



--
 Edson Tirelli
 JBoss Drools Core Development
 JBoss, a division of Red Hat @ www.jboss.com