[jboss-svn-commits] JBL Code SVN: r28190 - labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/compiled.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Sat Jul 18 14:49:55 EDT 2009


Author: stampy88
Date: 2009-07-18 14:49:55 -0400 (Sat, 18 Jul 2009)
New Revision: 28190

Modified:
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/compiled/AbstractCompilerHandler.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/compiled/AssertHandler.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/compiled/DeclarationsHandler.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/compiled/SetNodeReferenceHandler.java
Log:
JBRULES-1552 Added ContextEntry as generated member var instead of calling createContext 


Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/compiled/AbstractCompilerHandler.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/compiled/AbstractCompilerHandler.java	2009-07-18 18:08:48 UTC (rev 28189)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/compiled/AbstractCompilerHandler.java	2009-07-18 18:49:55 UTC (rev 28190)
@@ -3,6 +3,7 @@
 import org.drools.base.ClassFieldReader;
 import org.drools.reteoo.AlphaNode;
 import org.drools.reteoo.Sink;
+import org.drools.rule.ContextEntry;
 
 /**
  * This handler is used as a base class for all {@link org.drools.reteoo.compiled.NetworkHandler}s used for
@@ -33,6 +34,12 @@
         return getVariableName(variableType, alphaNode.getId());
     }
 
+    protected String getContextVariableName(AlphaNode alphaNode) {
+        Class<?> variableType = ContextEntry.class;
+
+        return getVariableName(variableType, alphaNode.getId());
+    }
+
     protected String getVariableName(Sink sink) {
         Class<?> variableType = getVariableType(sink);
 

Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/compiled/AssertHandler.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/compiled/AssertHandler.java	2009-07-18 18:08:48 UTC (rev 28189)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/compiled/AssertHandler.java	2009-07-18 18:49:55 UTC (rev 28190)
@@ -88,7 +88,7 @@
         builder.append("if ( ").append(getVariableName(alphaNode)).
                 append(".isAllowed(").append(FACT_HANDLE_PARAM_NAME).append(",").
                 append(WORKING_MEMORY_PARAM_NAME).append(", ").
-                append(getVariableName(alphaNode)).append(".createContextEntry()) ) {").append(NEWLINE);
+                append(getContextVariableName(alphaNode)).append(") ) {").append(NEWLINE);
 
     }
 

Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/compiled/DeclarationsHandler.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/compiled/DeclarationsHandler.java	2009-07-18 18:08:48 UTC (rev 28189)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/compiled/DeclarationsHandler.java	2009-07-18 18:49:55 UTC (rev 28190)
@@ -5,6 +5,7 @@
 import org.drools.reteoo.BetaNode;
 import org.drools.reteoo.LeftInputAdapterNode;
 import org.drools.reteoo.Sink;
+import org.drools.rule.ContextEntry;
 
 import java.util.*;
 
@@ -53,6 +54,13 @@
         return PRIVATE_MODIFIER + " " + variableType.getName() + " " + variableName + "; // " + comment;
     }
 
+    private String getContextVariableDeclaration(AlphaNode alphaNode){
+        Class<?> variableType = ContextEntry.class;
+        String variableName = getContextVariableName(alphaNode);
+
+        return PRIVATE_MODIFIER + " " + variableType.getName() + " " + variableName + ";";
+    }
+
     private String getVariableDeclaration(Sink sink) {
         Class<?> declarationType = getVariableType(sink);
         String variableName = getVariableName(sink);
@@ -80,6 +88,7 @@
     @Override
     public void startNonHashedAlphaNode(AlphaNode alphaNode) {
         builder.append(getVariableDeclaration(alphaNode)).append(NEWLINE);
+        builder.append(getContextVariableDeclaration(alphaNode)).append(NEWLINE);        
     }
 
     @Override

Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/compiled/SetNodeReferenceHandler.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/compiled/SetNodeReferenceHandler.java	2009-07-18 18:08:48 UTC (rev 28189)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/compiled/SetNodeReferenceHandler.java	2009-07-18 18:49:55 UTC (rev 28190)
@@ -2,6 +2,7 @@
 
 import org.drools.common.NetworkNode;
 import org.drools.reteoo.*;
+import org.drools.rule.ContextEntry;
 
 /**
  * This handler is used to create the member variable assignment statements section of a generated subclass of a
@@ -48,7 +49,19 @@
         return assignmentStatement;
     }
 
+    private String getContextVariableAssignmentStatement(AlphaNode alphaNode) {
+        String contextVariableName = getContextVariableName(alphaNode);
+        String alphaVariableName = getVariableName(alphaNode);
+        String assignmentStatement;
 
+        // we need the constraint for an alpha node assignment, so generate a cast, plus the method call to get
+        // the constraint
+        assignmentStatement = contextVariableName + " = " + alphaVariableName + ".createContextEntry();";
+
+        return assignmentStatement;
+    }
+
+
     @Override
     public void startObjectTypeNode(ObjectTypeNode objectTypeNode) {
         builder.append(SET_NETWORK_NODE_REFERENCE_SIGNATURE).append(NEWLINE);
@@ -73,6 +86,7 @@
 
         builder.append("case ").append(alphaNode.getId()).append(": ").append(NEWLINE);
         builder.append(getVariableAssignmentStatement(alphaNode, PARAM_NAME)).append(NEWLINE);
+        builder.append(getContextVariableAssignmentStatement(alphaNode)).append(NEWLINE);
         builder.append("break;").append(NEWLINE);
     }
 



More information about the jboss-svn-commits mailing list