[rules-users] ClassCastException
Christoph Kramer
amrod at gmx.de
Thu May 14 10:06:44 EDT 2009
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 <amrod at gmx.de
> <mailto:amrod at gmx.de>> 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
> rules-users at lists.jboss.org <mailto:rules-users at lists.jboss.org>
> https://lists.jboss.org/mailman/listinfo/rules-users
>
>
> ------------------------------------------------------------------------
>
> _______________________________________________
> rules-users mailing list
> rules-users at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/rules-users
>
More information about the rules-users
mailing list