[jboss-jira] [JBoss JIRA] Created: (JBRULES-2814) DSL variable definition may create strange effects
Wolfgang Laun (JIRA)
jira-events at lists.jboss.org
Fri Dec 3 06:38:54 EST 2010
DSL variable definition may create strange effects
--------------------------------------------------
Key: JBRULES-2814
URL: https://jira.jboss.org/browse/JBRULES-2814
Project: Drools
Issue Type: Bug
Security Level: Public (Everyone can see)
Components: drools-compiler-DSL
Affects Versions: 5.1.1.FINAL
Reporter: Wolfgang Laun
Assignee: Mark Proctor
Fix For: 5.2.0.M1
The DSL parser accepts variable definitions
{name}
{name:pattern}
{name:q:pattern}
but also
{name:xyz:}
a) What *is* the purpose of "q"? It is tested in DSLMapWalker and influences what is used as a pattern, sometimes overriding a specified pattern: q pattern use-for-matching null null (.*?) null pattern pattern X null (.*?) X pattern pattern ENUM -- (.*?) DATE -- (.*?) BOOLEAN -- (.*?)
b) A "null" pattern is used for matching if {name:xyz:} is used.
I think the "q" is a relic and should be discarded. A ':' as delimiter in an area where any character is possible (as in a pattern) is bound to create ambiguities.
The "C" entry in the DSL below produces "null" in the pattern trying to match a condition; i.e., the string "null" is actually matched.
A, E, F result in pattern "(.*?)"
B, D use the pattern ("Boolean" or "Double", respectively)
DSL:
[when][]A {type} value=${type}: {type}()
[when][]B {type:Boolean} value=${type}: {type}()
[when][]C {type:xyz:} value=${type}: {type}()
[when][]D {type:xyz:Double} value=${type}: {type}()
[when][]E {type:ENUM:} value=${type}: {type}()
[when][]F {type:DATE:Float} value=${type}: {type}()
DSLR:
rule "rule 1"
when
A Integer value
B Boolean value
C Character value # fails; use "null" instead of Character to get a match
D Double value
E Enum value
F Float value
then
> System.out.println( "hello" );
end
--
This message is automatically generated by JIRA.
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
More information about the jboss-jira
mailing list