I've been playing with Drools and Guvnor and think I've encountered a problem
with Java enums in Guvnor. I've searched for previous enum bugs and seen
that a lot have been fixed, but I've tried Guvnor 5.2.0 and 5.3.0.CR1 and it
happens in both.
The problem seems to happen when you use enums in a "multiple field
constraint" on a fact, eg:
There is a Person with:
any of the following:
role equal to Role.TEACHER
role equal to Role.PARENT
Then using "view source" to see the generated DRL, the enum values are
enclosed in double quotes, ie:
rule "test"
dialect "mvel"
when
Person( role == "Role.TEACHER" || role == "Role.PARENT" )
then
end
If I just do a single field constraint then it comes out fine, eg. Person(
role == Role.TEACHER )
Is this a bug or am I doing something stupid? I've seen posts recommending
the use of string constants rather than enums - is this the workaround?
Below is my simple Java model for completeness:
public enum Role {
TEACHER,
STUDENT,
PARENT
}
public class Person {
private String name;
private Role role;
public Person( String name, Role role ) {
this.name = name;
this.role = role;
}
public String getName() { return name; }
public Role getRole() { return role; }
}
--
View this message in context:
http://drools.46999.n3.nabble.com/Problem-with-Java-enums-in-Guvnor-multi...
Sent from the Drools: User forum mailing list archive at
Nabble.com.