[jboss-svn-commits] JBL Code SVN: r9778 - in labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools: semantics/java and 1 other directories.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Mon Feb 26 19:02:43 EST 2007


Author: mark.proctor at jboss.com
Date: 2007-02-26 19:02:42 -0500 (Mon, 26 Feb 2007)
New Revision: 9778

Added:
   labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/dialect/java/JavaAccumulateBuilder.java
   labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/semantics/java/builder/AccumulateBuilder.java
Removed:
   labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/semantics/java/builder/JavaAccumulateBuilder.java
Modified:
   labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/semantics/java/RuleBuilder.java
Log:
JBRULES-708 MVEL Integration
-More interface/implementation seperation for dialects

Copied: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/dialect/java/JavaAccumulateBuilder.java (from rev 9777, labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/semantics/java/builder/JavaAccumulateBuilder.java)
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/dialect/java/JavaAccumulateBuilder.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/dialect/java/JavaAccumulateBuilder.java	2007-02-27 00:02:42 UTC (rev 9778)
@@ -0,0 +1,166 @@
+/*
+ * Copyright 2006 JBoss Inc
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.drools.dialect.java;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.antlr.stringtemplate.StringTemplate;
+import org.drools.base.ClassObjectType;
+import org.drools.lang.descr.AccumulateDescr;
+import org.drools.lang.descr.BaseDescr;
+import org.drools.rule.Accumulate;
+import org.drools.rule.Column;
+import org.drools.rule.ConditionalElement;
+import org.drools.rule.Declaration;
+import org.drools.semantics.java.builder.AccumulateBuilder;
+import org.drools.semantics.java.builder.BuildContext;
+import org.drools.semantics.java.builder.BuildUtils;
+import org.drools.semantics.java.builder.ColumnBuilder;
+import org.drools.semantics.java.builder.ConditionalElementBuilder;
+
+/**
+ * @author etirelli
+ *
+ */
+public class JavaAccumulateBuilder
+    implements
+    ConditionalElementBuilder, AccumulateBuilder {
+
+    /* (non-Javadoc)
+     * @see org.drools.semantics.java.builder.ConditionalElementBuilder#build(org.drools.semantics.java.builder.BuildContext, org.drools.semantics.java.builder.BuildUtils, org.drools.semantics.java.builder.ColumnBuilder, org.drools.lang.descr.BaseDescr)
+     */
+    /* (non-Javadoc)
+     * @see org.drools.semantics.java.builder.AccumulateBuilder#build(org.drools.semantics.java.builder.BuildContext, org.drools.semantics.java.builder.BuildUtils, org.drools.semantics.java.builder.ColumnBuilder, org.drools.lang.descr.BaseDescr)
+     */
+    public ConditionalElement build(BuildContext context,
+                                    BuildUtils utils,
+                                    ColumnBuilder columnBuilder,
+                                    BaseDescr descr) {
+
+        AccumulateDescr accumDescr = (AccumulateDescr) descr;
+
+        Column sourceColumn = columnBuilder.build( context,
+                                                   utils,
+                                                   accumDescr.getSourceColumn() );
+
+        if ( sourceColumn == null ) {
+            return null;
+        }
+
+        Column resultColumn = columnBuilder.build( context,
+                                                   utils,
+                                                   accumDescr.getResultColumn() );
+
+        final String className = "accumulate" + context.getNextId();
+        accumDescr.setClassMethodName( className );
+
+        final List[] usedIdentifiers1 = utils.getUsedIdentifiers( context,
+                                                                  accumDescr,
+                                                                  accumDescr.getInitCode() );
+        final List[] usedIdentifiers2 = utils.getUsedIdentifiers( context,
+                                                                  accumDescr,
+                                                                  accumDescr.getActionCode() );
+        final List[] usedIdentifiers3 = utils.getUsedIdentifiers( context,
+                                                                  accumDescr,
+                                                                  accumDescr.getResultCode() );
+
+        final List requiredDeclarations = new ArrayList( usedIdentifiers1[0] );
+        requiredDeclarations.addAll( usedIdentifiers2[0] );
+        requiredDeclarations.addAll( usedIdentifiers3[0] );
+
+        final List requiredGlobals = new ArrayList( usedIdentifiers1[1] );
+        requiredGlobals.addAll( usedIdentifiers2[1] );
+        requiredGlobals.addAll( usedIdentifiers3[1] );
+
+        final Declaration[] declarations = new Declaration[requiredDeclarations.size()];
+        for ( int i = 0, size = requiredDeclarations.size(); i < size; i++ ) {
+            declarations[i] = (Declaration) context.getDeclarationResolver().getDeclaration( (String) requiredDeclarations.get( i ) );
+        }
+        final Declaration[] sourceDeclArr = (Declaration[]) sourceColumn.getOuterDeclarations().values().toArray( new Declaration[0] );
+
+        final String[] globals = (String[]) requiredGlobals.toArray( new String[requiredGlobals.size()] );
+
+        StringTemplate st = utils.getRuleGroup().getInstanceOf( "accumulateMethod" );
+
+        utils.setStringTemplateAttributes( context,
+                                           st,
+                                           declarations,
+                                           globals );
+
+        st.setAttribute( "innerDeclarations",
+                         sourceDeclArr );
+        st.setAttribute( "methodName",
+                         className );
+
+        final String initCode = accumDescr.getInitCode();
+        final String actionCode = accumDescr.getActionCode();
+        final String resultCode = accumDescr.getResultCode();
+        st.setAttribute( "initCode",
+                         initCode );
+        st.setAttribute( "actionCode",
+                         actionCode );
+        st.setAttribute( "resultCode",
+                         resultCode );
+
+        String resultType = null;
+        // TODO: Need to change this... 
+        if ( resultColumn.getObjectType() instanceof ClassObjectType ) {
+            resultType = ((ClassObjectType) resultColumn.getObjectType()).getClassType().getName();
+        } else {
+            resultType = resultColumn.getObjectType().getValueType().getClassType().getName();
+        }
+
+        st.setAttribute( "resultType",
+                         resultType );
+
+        context.getMethods().add( st.toString() );
+
+        st = utils.getInvokerGroup().getInstanceOf( "accumulateInvoker" );
+
+        st.setAttribute( "package",
+                         context.getPkg().getName() );
+        st.setAttribute( "ruleClassName",
+                         utils.ucFirst( context.getRuleDescr().getClassName() ) );
+        st.setAttribute( "invokerClassName",
+                         context.getRuleDescr().getClassName() + utils.ucFirst( className ) + "Invoker" );
+        st.setAttribute( "methodName",
+                         className );
+
+        utils.setStringTemplateAttributes( context,
+                                           st,
+                                           declarations,
+                                           (String[]) requiredGlobals.toArray( new String[requiredGlobals.size()] ) );
+
+        st.setAttribute( "hashCode",
+                         actionCode.hashCode() );
+
+        Accumulate accumulate = new Accumulate( sourceColumn,
+                                                resultColumn,
+                                                declarations,
+                                                sourceDeclArr );
+        final String invokerClassName = context.getPkg().getName() + "." + context.getRuleDescr().getClassName() + utils.ucFirst( className ) + "Invoker";
+        context.getInvokers().put( invokerClassName,
+                                   st.toString() );
+        context.getInvokerLookups().put( invokerClassName,
+                                         accumulate );
+        context.getDescrLookups().put( invokerClassName,
+                                       accumDescr );
+        return accumulate;
+    }
+
+}

Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/semantics/java/RuleBuilder.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/semantics/java/RuleBuilder.java	2007-02-27 00:02:02 UTC (rev 9777)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/semantics/java/RuleBuilder.java	2007-02-27 00:02:42 UTC (rev 9778)
@@ -26,6 +26,7 @@
 import org.drools.RuntimeDroolsException;
 import org.drools.base.ClassFieldExtractorCache;
 import org.drools.base.evaluators.DateFactory;
+import org.drools.dialect.java.JavaAccumulateBuilder;
 import org.drools.dialect.java.JavaConsequenceBuilder;
 import org.drools.dialect.java.JavaEvalBuilder;
 import org.drools.lang.descr.AccumulateDescr;
@@ -44,7 +45,6 @@
 import org.drools.rule.Package;
 import org.drools.rule.Rule;
 import org.drools.semantics.java.builder.ForallBuilder;
-import org.drools.semantics.java.builder.JavaAccumulateBuilder;
 import org.drools.semantics.java.builder.BuildContext;
 import org.drools.semantics.java.builder.BuildUtils;
 import org.drools.semantics.java.builder.CollectBuilder;

Added: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/semantics/java/builder/AccumulateBuilder.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/semantics/java/builder/AccumulateBuilder.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/semantics/java/builder/AccumulateBuilder.java	2007-02-27 00:02:42 UTC (rev 9778)
@@ -0,0 +1,16 @@
+package org.drools.semantics.java.builder;
+
+import org.drools.lang.descr.BaseDescr;
+import org.drools.rule.ConditionalElement;
+
+public interface AccumulateBuilder {
+
+    /* (non-Javadoc)
+     * @see org.drools.semantics.java.builder.ConditionalElementBuilder#build(org.drools.semantics.java.builder.BuildContext, org.drools.semantics.java.builder.BuildUtils, org.drools.semantics.java.builder.ColumnBuilder, org.drools.lang.descr.BaseDescr)
+     */
+    public ConditionalElement build(BuildContext context,
+                                    BuildUtils utils,
+                                    ColumnBuilder columnBuilder,
+                                    BaseDescr descr);
+
+}
\ No newline at end of file

Deleted: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/semantics/java/builder/JavaAccumulateBuilder.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/semantics/java/builder/JavaAccumulateBuilder.java	2007-02-27 00:02:02 UTC (rev 9777)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/semantics/java/builder/JavaAccumulateBuilder.java	2007-02-27 00:02:42 UTC (rev 9778)
@@ -1,161 +0,0 @@
-/*
- * Copyright 2006 JBoss Inc
- * 
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- * 
- *      http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.drools.semantics.java.builder;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.antlr.stringtemplate.StringTemplate;
-import org.drools.base.ClassObjectType;
-import org.drools.lang.descr.AccumulateDescr;
-import org.drools.lang.descr.BaseDescr;
-import org.drools.rule.Accumulate;
-import org.drools.rule.Column;
-import org.drools.rule.ConditionalElement;
-import org.drools.rule.Declaration;
-
-/**
- * @author etirelli
- *
- */
-public class JavaAccumulateBuilder
-    implements
-    ConditionalElementBuilder, AccumulateBuilder {
-
-    /* (non-Javadoc)
-     * @see org.drools.semantics.java.builder.ConditionalElementBuilder#build(org.drools.semantics.java.builder.BuildContext, org.drools.semantics.java.builder.BuildUtils, org.drools.semantics.java.builder.ColumnBuilder, org.drools.lang.descr.BaseDescr)
-     */
-    /* (non-Javadoc)
-     * @see org.drools.semantics.java.builder.AccumulateBuilder#build(org.drools.semantics.java.builder.BuildContext, org.drools.semantics.java.builder.BuildUtils, org.drools.semantics.java.builder.ColumnBuilder, org.drools.lang.descr.BaseDescr)
-     */
-    public ConditionalElement build(BuildContext context,
-                                    BuildUtils utils,
-                                    ColumnBuilder columnBuilder,
-                                    BaseDescr descr) {
-
-        AccumulateDescr accumDescr = (AccumulateDescr) descr;
-
-        Column sourceColumn = columnBuilder.build( context,
-                                                   utils,
-                                                   accumDescr.getSourceColumn() );
-
-        if ( sourceColumn == null ) {
-            return null;
-        }
-
-        Column resultColumn = columnBuilder.build( context,
-                                                   utils,
-                                                   accumDescr.getResultColumn() );
-
-        final String className = "accumulate" + context.getNextId();
-        accumDescr.setClassMethodName( className );
-
-        final List[] usedIdentifiers1 = utils.getUsedIdentifiers( context,
-                                                                  accumDescr,
-                                                                  accumDescr.getInitCode() );
-        final List[] usedIdentifiers2 = utils.getUsedIdentifiers( context,
-                                                                  accumDescr,
-                                                                  accumDescr.getActionCode() );
-        final List[] usedIdentifiers3 = utils.getUsedIdentifiers( context,
-                                                                  accumDescr,
-                                                                  accumDescr.getResultCode() );
-
-        final List requiredDeclarations = new ArrayList( usedIdentifiers1[0] );
-        requiredDeclarations.addAll( usedIdentifiers2[0] );
-        requiredDeclarations.addAll( usedIdentifiers3[0] );
-
-        final List requiredGlobals = new ArrayList( usedIdentifiers1[1] );
-        requiredGlobals.addAll( usedIdentifiers2[1] );
-        requiredGlobals.addAll( usedIdentifiers3[1] );
-
-        final Declaration[] declarations = new Declaration[requiredDeclarations.size()];
-        for ( int i = 0, size = requiredDeclarations.size(); i < size; i++ ) {
-            declarations[i] = (Declaration) context.getDeclarationResolver().getDeclaration( (String) requiredDeclarations.get( i ) );
-        }
-        final Declaration[] sourceDeclArr = (Declaration[]) sourceColumn.getOuterDeclarations().values().toArray( new Declaration[0] );
-
-        final String[] globals = (String[]) requiredGlobals.toArray( new String[requiredGlobals.size()] );
-
-        StringTemplate st = utils.getRuleGroup().getInstanceOf( "accumulateMethod" );
-
-        utils.setStringTemplateAttributes( context,
-                                           st,
-                                           declarations,
-                                           globals );
-
-        st.setAttribute( "innerDeclarations",
-                         sourceDeclArr );
-        st.setAttribute( "methodName",
-                         className );
-
-        final String initCode = accumDescr.getInitCode();
-        final String actionCode = accumDescr.getActionCode();
-        final String resultCode = accumDescr.getResultCode();
-        st.setAttribute( "initCode",
-                         initCode );
-        st.setAttribute( "actionCode",
-                         actionCode );
-        st.setAttribute( "resultCode",
-                         resultCode );
-
-        String resultType = null;
-        // TODO: Need to change this... 
-        if ( resultColumn.getObjectType() instanceof ClassObjectType ) {
-            resultType = ((ClassObjectType) resultColumn.getObjectType()).getClassType().getName();
-        } else {
-            resultType = resultColumn.getObjectType().getValueType().getClassType().getName();
-        }
-
-        st.setAttribute( "resultType",
-                         resultType );
-
-        context.getMethods().add( st.toString() );
-
-        st = utils.getInvokerGroup().getInstanceOf( "accumulateInvoker" );
-
-        st.setAttribute( "package",
-                         context.getPkg().getName() );
-        st.setAttribute( "ruleClassName",
-                         utils.ucFirst( context.getRuleDescr().getClassName() ) );
-        st.setAttribute( "invokerClassName",
-                         context.getRuleDescr().getClassName() + utils.ucFirst( className ) + "Invoker" );
-        st.setAttribute( "methodName",
-                         className );
-
-        utils.setStringTemplateAttributes( context,
-                                           st,
-                                           declarations,
-                                           (String[]) requiredGlobals.toArray( new String[requiredGlobals.size()] ) );
-
-        st.setAttribute( "hashCode",
-                         actionCode.hashCode() );
-
-        Accumulate accumulate = new Accumulate( sourceColumn,
-                                                resultColumn,
-                                                declarations,
-                                                sourceDeclArr );
-        final String invokerClassName = context.getPkg().getName() + "." + context.getRuleDescr().getClassName() + utils.ucFirst( className ) + "Invoker";
-        context.getInvokers().put( invokerClassName,
-                                   st.toString() );
-        context.getInvokerLookups().put( invokerClassName,
-                                         accumulate );
-        context.getDescrLookups().put( invokerClassName,
-                                       accumDescr );
-        return accumulate;
-    }
-
-}




More information about the jboss-svn-commits mailing list