[jboss-svn-commits] JBL Code SVN: r13321 - in labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder: dialect/mvel and 1 other directory.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Tue Jul 10 18:36:55 EDT 2007


Author: mark.proctor at jboss.com
Date: 2007-07-10 18:36:55 -0400 (Tue, 10 Jul 2007)
New Revision: 13321

Modified:
   labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/PatternBuilder.java
   labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/dialect/mvel/MVELDialect.java
Log:
-accessors now work, by putting MVEL into dynamic mode.

Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/PatternBuilder.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/PatternBuilder.java	2007-07-10 21:49:59 UTC (rev 13320)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/PatternBuilder.java	2007-07-10 22:36:55 UTC (rev 13321)
@@ -61,6 +61,7 @@
 import org.drools.rule.RuleConditionElement;
 import org.drools.rule.VariableConstraint;
 import org.drools.rule.VariableRestriction;
+import org.drools.rule.builder.dialect.mvel.MVELDialect;
 import org.drools.spi.Constraint;
 import org.drools.spi.Evaluator;
 import org.drools.spi.FieldExtractor;
@@ -313,7 +314,11 @@
         // it is a complex expression, so we need to turn it into an MVEL predicate
         Dialect dialect = context.getDialect();
         // switch to MVEL dialect
-        context.setDialect( context.getDialect( "mvel" ) );
+        MVELDialect mvelDialect = ( MVELDialect ) context.getDialect( "mvel" );
+        boolean strictMode = mvelDialect.isStrictMode();
+        mvelDialect.setStrictMode( false );
+        
+        context.setDialect( mvelDialect );
 
         PredicateDescr predicateDescr = new PredicateDescr();
         DrlDumper dumper = new DrlDumper();
@@ -325,6 +330,7 @@
                predicateDescr,
                container );
 
+        mvelDialect.setStrictMode( strictMode );
         // fall back to original dialect
         context.setDialect( dialect );
     }

Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/dialect/mvel/MVELDialect.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/dialect/mvel/MVELDialect.java	2007-07-10 21:49:59 UTC (rev 13320)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/dialect/mvel/MVELDialect.java	2007-07-10 22:36:55 UTC (rev 13321)
@@ -87,6 +87,8 @@
 
     private final StaticMethodImportResolverFactory staticImportFactory;
     private final ClassImportResolverFactory        importFactory;
+    
+    private boolean strictMode;
 
     public void addFunction(FunctionDescr functionDescr,
                             TypeResolver typeResolver) {
@@ -104,6 +106,7 @@
         this.configuration = builder.getPackageBuilderConfiguration();
         this.typeResolver = builder.getTypeResolver();
         this.classFieldExtractorCache = builder.getClassFieldExtractorCache();
+        this.strictMode = true;
 
         this.analyzer = new MVELExprAnalyzer();
 
@@ -223,7 +226,15 @@
     public ClassImportResolverFactory getClassImportResolverFactory() {
         return this.importFactory;
     }
+        
+    public boolean isStrictMode() {
+        return strictMode;
+    }
 
+    public void setStrictMode(boolean strictMode) {
+        this.strictMode = strictMode;
+    }
+
     public void compileAll() {
     }
 
@@ -297,7 +308,9 @@
                                                                null,
                                                                null );
 
-        parserContext.setStrictTypeEnforcement( true );
+        //this.configuration.get
+        
+        parserContext.setStrictTypeEnforcement( strictMode );
         if ( interceptors != null ) {
             parserContext.setInterceptors( interceptors );
         }




More information about the jboss-svn-commits mailing list