1. I can't find any mention of dialects anywhere in the Drools 4
manual. Am I missing something?
2. I've tried the following after finding a snippet in the archives for
this list:
package mvanamibia.claim;
import java.lang.Object;
import java.lang.String;
import java.lang.Double;
import java.util.Date;
import java.util.List;
import java.util.ArrayList;
import com.sadalbari.mvanamibia.beans.Claim;
import com.sadalbari.mvanamibia.beans.Mandate;
import com.sadalbari.mvanamibia.beans.SubmissionInfo;
import com.sadalbari.mvanamibia.inspector.ClaimEvaluation;
global ClaimEvaluation evaluation;
rule "hasDateReceived"
dialect "mvel"
when
Claim( submissionInfo == null )
then
evaluation.getViolations().add("missing: date received");
end
but it gives the following exception:
java.lang.NullPointerException
at
org.drools.rule.builder.RuleBuildContext.<init>(RuleBuildContext.java:115)
at
org.drools.compiler.PackageBuilder.addRule(PackageBuilder.java:350)
at
org.drools.compiler.PackageBuilder.addPackage(PackageBuilder.java:233)
at
org.drools.compiler.PackageBuilder.addPackageFromDrl(PackageBuilder.java:157)
at
com.sadalbari.mvanamibia.model.UnregisteredClaimValidationTest.setupWorkingMemory(UnregisteredClaimValidationTest.java:29)
at
com.sadalbari.mvanamibia.model.UnregisteredClaimValidationTest.testEmptyClaim(UnregisteredClaimValidationTest.java:42)
... Removed 22 stack frames
Thanks
Richard
Mark Proctor wrote:
in theory for nested accessors it should switch to the MVEL dialect
automatically. You only need to specify the MVEL dialect explicitely
for eval, return value and consequences.
Mark
Manjax23 wrote:
> I think you should use dialect "mvel" when accessing the nested accessors.
> and I had some trouble with "mvel" dialect in 4M2 release.
>
> Please let me know if it works for you..
>
> Thanks,
> Manjax23
>
>
> Richard Hoberman wrote:
>
>> I'm using Drools 4 (M2), which is supposed to support nested accessors*
>>
>> This works: when Claim( submissionInfo == null), but not this: when
>> Claim( submissionInfo.date == null)
>>
>> Rule file, SubmissionInfo.java and exception are below.
>>
>> What am I missing?
>>
>> Richard
>>
>>
>>
>>
>> * See
>>
http://article.gmane.org/gmane.comp.java.drools.user/8079/match=nested+pr...,
>> which states "Support to nested accessors, property navigation and
>> simplified collection, arrays and maps syntax"
>>
>> Rule File
>>
>>
---------------------------------------------------------------------------------------
>> package mvanamibia.claim;
>>
>> import java.lang.Object;
>> import java.lang.String;
>> import java.lang.Double;
>> import java.util.Date;
>> import java.util.List;
>> import java.util.ArrayList;
>> import com.sadalbari.mvanamibia.beans.Claim;
>> import com.sadalbari.mvanamibia.beans.Mandate;
>> import com.sadalbari.mvanamibia.beans.SubmissionInfo;
>> import com.sadalbari.mvanamibia.inspector.ClaimEvaluation;
>>
>> global ClaimEvaluation evaluation;
>>
>> rule "hasDateReceived"
>>
>> when
>> Claim( submissionInfo.date == null )
>> then
>> evaluation.getFailures().add("missing: date received");
>> end
>>
>>
-----------------------------------------------------------------------------------
>>
>> Exception
>>
-----------------------------------------------------------------------------------
>> org.drools.rule.InvalidRulePackage: [19,23]: unknown:19:23 mismatched
>> token: [@137,471:471='.',<69>,19:23]; expecting type RIGHT_PAREN
>> at org.drools.rule.Package.checkValidity(Package.java:368)
>> at
>> org.drools.common.AbstractRuleBase.addPackage(AbstractRuleBase.java:250)
>> at
>>
com.sadalbari.mvanamibia.model.UnregisteredClaimValidationTest.setupWorkingMemory(UnregisteredClaimValidationTest.java:33)
>> at
>>
com.sadalbari.mvanamibia.model.UnregisteredClaimValidationTest.testMandateClaim(UnregisteredClaimValidationTest.java:56)
>> ... Removed 22 stack frames
>> FAILED: testEmptyClaim
>> org.drools.rule.InvalidRulePackage: [19,23]: unknown:19:23 mismatched
>> token: [@137,471:471='.',<69>,19:23]; expecting type RIGHT_PAREN
>> at org.drools.rule.Package.checkValidity(Package.java:368)
>> at
>> org.drools.common.AbstractRuleBase.addPackage(AbstractRuleBase.java:250)
>> at
>>
com.sadalbari.mvanamibia.model.UnregisteredClaimValidationTest.setupWorkingMemory(UnregisteredClaimValidationTest.java:33)
>> at
>>
com.sadalbari.mvanamibia.model.UnregisteredClaimValidationTest.testEmptyClaim(UnregisteredClaimValidationTest.java:42)
>> ... Removed 22 stack frames
>>
>>
>> ------------------------------------------------------
>> SubmissionInfo (relevant bits)
>>
>> public class SubmissionInfo implements Serializable {
>>
>> private Date date;
>>
>> public Date getDate() {
>> return date;
>> }
>>
>> public void setDate(Date date) {
>> this.date = date;
>> }
>>
>>
>> _______________________________________________
>> rules-users mailing list
>> rules-users(a)lists.jboss.org
>>
https://lists.jboss.org/mailman/listinfo/rules-users
>>
>>
>>
>
>
------------------------------------------------------------------------
_______________________________________________
rules-users mailing list
rules-users(a)lists.jboss.org
https://lists.jboss.org/mailman/listinfo/rules-users