Thanks for your help, Edson!
We are using drools 5.4.0.Final via maven.
Maybe I am missing something, so here's a quick overview of what we do. We
have a model class ButtonEvent which is derived like this:
ButtonEvent -> ZonedEvent -> VSCPEvent
Then there's a rulebase with something like this:
import test.vscp.VSCPEvent;
import test.vscp.information.ButtonEvent;
declare VSCPEvent
@role( event )
@timestamp( timestamp )
@expires( 1h )
end
declare ButtonEvent
@role( event )
@timestamp( timestamp )
@expires( 1h )
end
rule "Button long pressed"
when
b : ButtonEvent( action == Action.PRESSED )
not( ButtonEvent( action == Action.RELEASED, this after[0s,1s] b ) )
then
...
end
What I would have expected is that the second 'declare' statement to be
unnecessary. However, if I take it away, this is what I get:
java.lang.ClassCastException: org.drools.common.DefaultFactHandle
at
org.drools.base.evaluators.AfterEvaluatorDefinition$AfterEvaluator.evaluateCachedRight(AfterEvaluatorDefinition.java:316)
at
org.drools.rule.constraint.EvaluatorConstraint.isAllowedCachedRight(EvaluatorConstraint.java:80)
at
org.drools.common.SingleBetaConstraints.isAllowedCachedRight(SingleBetaConstraints.java:139)
at org.drools.reteoo.NotNode.assertObject(NotNode.java:133)
at
org.drools.reteoo.SingleObjectSinkAdapter.propagateAssertObject(SingleObjectSinkAdapter.java:59)
at org.drools.reteoo.AlphaNode.assertObject(AlphaNode.java:141)
at
org.drools.reteoo.CompositeObjectSinkAdapter.doPropagateAssertObject(CompositeObjectSinkAdapter.java:497)
at
org.drools.reteoo.CompositeObjectSinkAdapter.propagateAssertObject(CompositeObjectSinkAdapter.java:382)
at org.drools.reteoo.ObjectTypeNode.assertObject(ObjectTypeNode.java:235)
at org.drools.reteoo.EntryPointNode.assertObject(EntryPointNode.java:240)
at org.drools.common.NamedEntryPoint.insert(NamedEntryPoint.java:337)
at org.drools.common.NamedEntryPoint.insert(NamedEntryPoint.java:298)
at
org.drools.common.AbstractWorkingMemory.insert(AbstractWorkingMemory.java:888)
at
org.drools.common.AbstractWorkingMemory.insert(AbstractWorkingMemory.java:847)
at
org.drools.impl.StatefulKnowledgeSessionImpl.insert(StatefulKnowledgeSessionImpl.java:269)
...
Thanks
Joerg
--
View this message in context:
http://drools.46999.n3.nabble.com/Apply-role-to-whole-class-hierarchy-tp4...
Sent from the Drools: User forum mailing list archive at
Nabble.com.