I defined a class with static fields and I wanna access the fields in left hand side of a rule. Is it possible?
Here is the class:
package cep.model;
public class Events {
public static final int A = 1;
public static final int B = 2;
public static int getA() {
return A;
}
public static int getB() {
return B;
}
}
and rule:
package cep.drl;
dialect "mvel"
import cep.Event;
import cep.model.Events;
declare Event
@role(event)
@expires( 20s )
end
//A & B
rule "r001"
no-loop
when
$a : Event(typeId == Events.A)
and $b : Event(typeId == Events.B)
then
end
and after compilation using drools plugin:
Unable to Analyse Expression typeId == Events.A:
[Error: unable to resolve method using strict-mode: cep$Event.Events()]
[Near : {... typeId == Events.A ....}]
^
[Line: 15, Column: 4] : [Rule name='r001']
Unable to Analyse Expression typeId == Events.B:
[Error: unable to resolve method using strict-mode: cep$Event.Events()]
[Near : {... typeId == Events.B ....}]
^
[Line: 16, Column: 8] : [Rule name='r001']
I think you must put the rule in this way,
replace == to
: to make a binding to Events.A