Hi Shannon,
yes all eventtypes inherit from a base class, but the superclass doesn't include all the attributes I want to acces in the rules. Unfortunately I can't modify the classes since they're part of a library that i'm using.
Here is my intention:
I get a bunch of different events and have to extract some data.
Every event has a field with EPC's to which all the rest of the data belongs. I want to extract all the single EPC's with its related data.
With pure Java the solution would be somethin like that:

void handleObjectEvent(ObjectEventType p_objEvent){
   List<EPC> epcs = p_objEvent.getEPC();
   if(epc!=null){
      for(EPC e : epcs){
           if(p_objEvent.getBizLocation() !=null){
               doSomething(e, p_objEvent.getBizLocation());
           }
if(p_objEvent.getBizStep() !=null){
               doSomething(e, p_objEvent.getBizStep());
           }

           if(p_objEvent.getDisposition() !=null){
               doSomething(e, p_objEvent.getDisposition());
           }

          ...
          ...
      }
   }
}

For the other types of Events there would similar functions. Since there are a lot of if-statements in the functions I thougt that it would be nice to use rule engine instead.

Greetings,
Christoph


Shannon Lal wrote:
Christoph,
I am not sure that this is a rules problem as it seems to be more of a Java problem. Do you Event types all inherit from a base class? Could you not just check to see on the base class is present? Also, you might want to add in SMALL example of what you are trying to do in pure Java code (outside of Rules) as it might be easy to translate.

Shannon

On Thu, May 14, 2009 at 6:35 AM, Christoph Kramer <[email protected] <mailto:[email protected]>> wrote:

    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
    [email protected] <mailto:[email protected]>
    https://lists.jboss.org/mailman/listinfo/rules-users


------------------------------------------------------------------------

_______________________________________________
rules-users mailing list
[email protected]
https://lists.jboss.org/mailman/listinfo/rules-users

_______________________________________________
rules-users mailing list
[email protected]
https://lists.jboss.org/mailman/listinfo/rules-users

Reply via email to