[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