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

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Thu Aug 23 10:35:47 EDT 2007


Author: KrisVerlaenen
Date: 2007-08-23 10:35:47 -0400 (Thu, 23 Aug 2007)
New Revision: 14480

Modified:
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/AbstractWorkingMemory.java
Log:
Fixed error in agenda debug view due to API change + added test

Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/AbstractWorkingMemory.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/AbstractWorkingMemory.java	2007-08-23 14:35:36 UTC (rev 14479)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/AbstractWorkingMemory.java	2007-08-23 14:35:47 UTC (rev 14480)
@@ -23,9 +23,11 @@
 import java.lang.reflect.Method;
 import java.util.ArrayList;
 import java.util.Collections;
+import java.util.HashMap;
 import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
+import java.util.Map.Entry;
 
 import org.drools.Agenda;
 import org.drools.FactException;
@@ -48,6 +50,7 @@
 import org.drools.event.WorkingMemoryEventListener;
 import org.drools.event.WorkingMemoryEventSupport;
 import org.drools.reteoo.LIANodePropagation;
+import org.drools.rule.Declaration;
 import org.drools.rule.Rule;
 import org.drools.ruleflow.common.core.Process;
 import org.drools.ruleflow.common.instance.ProcessInstance;
@@ -1386,5 +1389,33 @@
         }
         return result;
     }
+    
+    public Entry[] getActivationParameters(long activationId) {
+    	Activation[] activations = getAgenda().getActivations();
+    	for (int i = 0; i < activations.length; i++) {
+    		if (activations[i].getActivationNumber() == activationId) {
+    			Map params = getActivationParameters(activations[i]);
+    			return (Entry[]) params.entrySet().toArray(new Entry[params.size()]);
+    		}
+    	}
+    	return new Entry[0];
+    }
+    
+    /**
+     * Helper method 
+     */
+    public Map getActivationParameters(Activation activation) {
+    	Map result = new HashMap();
+    	Declaration[] declarations = activation.getRule().getDeclarations();
+    	for (int i = 0; i < declarations.length; i++) {
+    		FactHandle handle = activation.getTuple().get(declarations[i]);
+    		if (handle instanceof InternalFactHandle) {
+    			result.put(declarations[i].getIdentifier(),
+					declarations[i].getValue(this,
+						((InternalFactHandle) handle).getObject()));
+    		}
+    	}
+    	return result;
+    }
 
 }




More information about the jboss-svn-commits mailing list