[jboss-svn-commits] JBL Code SVN: r27019 - in labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools: degrees/operators/simple and 2 other directories.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Fri Jun 19 01:29:25 EDT 2009
Author: dsotty
Date: 2009-06-19 01:29:24 -0400 (Fri, 19 Jun 2009)
New Revision: 27019
Modified:
labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/degrees/operators/AbstractOperator.java
labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/degrees/operators/simple/SimpleAverage.java
labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/reteoo/Droobservable.java
labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/reteoo/ObjectTypeNode.java
labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/reteoo/Rete.java
labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/reteoo/builder/PatternBuilder.java
Log:
Modified: labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/degrees/operators/AbstractOperator.java
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/degrees/operators/AbstractOperator.java 2009-06-19 05:28:57 UTC (rev 27018)
+++ labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/degrees/operators/AbstractOperator.java 2009-06-19 05:29:24 UTC (rev 27019)
@@ -34,7 +34,7 @@
int j = 0;
for (Evaluation eval : combo.getOperands()) {
- args[j++] = eval == null ? factory.getNullHandlingStrategy().convertNull(factory) : eval.getDegree();
+ args[j++] = eval.getDegree() == null ? factory.getNullHandlingStrategy().convertNull(factory) : eval.getDegree();
}
}
Modified: labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/degrees/operators/simple/SimpleAverage.java
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/degrees/operators/simple/SimpleAverage.java 2009-06-19 05:28:57 UTC (rev 27018)
+++ labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/degrees/operators/simple/SimpleAverage.java 2009-06-19 05:29:24 UTC (rev 27019)
@@ -1,6 +1,7 @@
package org.drools.degrees.operators.simple;
import java.util.Collection;
+import java.util.Iterator;
import org.drools.degrees.IDegree;
import org.drools.degrees.SimpleDegree;
@@ -8,6 +9,8 @@
import org.drools.degrees.factory.SimpleDegreeFactory;
import org.drools.degrees.operators.AbstractOperator;
import org.drools.degrees.operators.IDegreeCombiner;
+import org.drools.reteoo.CompositeEvaluation;
+import org.drools.reteoo.Evaluation;
public final class SimpleAverage extends AbstractOperator implements IDegreeCombiner {
@@ -30,7 +33,40 @@
+ public IDegree eval(Evaluation evaluation, IDegreeFactory factory) {
+ double num = 0;
+ double wgt = 0;
+ if (evaluation instanceof CompositeEvaluation) {
+ CompositeEvaluation combo = (CompositeEvaluation) evaluation;
+
+
+ if (combo.getOperands() != null && combo.getOperands().size() > 0) {
+
+
+ for (Evaluation eval : combo.getOperands()) {
+ if (eval != null) {
+ num += eval.getDegree().getValue();
+
+ Iterator<Evaluation> iter = ((CompositeEvaluation) eval).getOperands().iterator();
+ Evaluation discounter = iter.next();
+ iter = ((CompositeEvaluation) discounter).getOperands().iterator();
+ iter.next(); //discounted
+ wgt += iter.next().getDegree().getValue(); //weight
+ }
+
+ }
+ }
+
+ return wgt == 0 ? factory.Unknown() : factory.buildDegree(num/wgt);
+ } else {
+ return evaluation.getDegree();
+ }
+
+
+ }
+
+
/*
public IDegree eval(IDegree[] args) {
float acc = 0;
@@ -58,10 +94,7 @@
}
*/
- public IDegree eval(Collection<? extends IDegree> args, IDegreeFactory factory) {
- // TODO Auto-generated method stub
- return null;
- }
+
public String getName() {
return "avg";
@@ -69,4 +102,10 @@
+
+ public boolean isTruthFunctional() {
+ return false;
+ }
+
+
}
Modified: labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/reteoo/Droobservable.java
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/reteoo/Droobservable.java 2009-06-19 05:28:57 UTC (rev 27018)
+++ labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/reteoo/Droobservable.java 2009-06-19 05:29:24 UTC (rev 27019)
@@ -1,5 +1,6 @@
package org.drools.reteoo;
+import java.util.Collection;
import java.util.HashSet;
import java.util.Observable;
import java.util.Observer;
@@ -37,7 +38,8 @@
public void notifyObservers(Object arg) {
if (isChanged()) {
this.changd = false;
- for (Observer o : observers)
+ Vector<Observer> observerz = new Vector<Observer>(observers);
+ for (Observer o : observerz)
o.update(this, arg);
}
Modified: labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/reteoo/ObjectTypeNode.java
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/reteoo/ObjectTypeNode.java 2009-06-19 05:28:57 UTC (rev 27018)
+++ labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/reteoo/ObjectTypeNode.java 2009-06-19 05:29:24 UTC (rev 27019)
@@ -824,7 +824,7 @@
System.err.println(this.getClass()+" set label "+ label);
}
- /**
+ /**
* @return the label
*/
public String getLabel() {
Modified: labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/reteoo/Rete.java
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/reteoo/Rete.java 2009-06-19 05:28:57 UTC (rev 27018)
+++ labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/reteoo/Rete.java 2009-06-19 05:29:24 UTC (rev 27019)
@@ -286,7 +286,7 @@
else {
IGammaNode prevNode = constraintIndex.get(key);
if (! node.equals(prevNode))
- System.out.println("WARNING: Found duplicate key: "+key+" this may be a know issue");
+ System.err.println("WARNING: Found duplicate key: "+key+" this may be a know issue");
}
}
Modified: labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/reteoo/builder/PatternBuilder.java
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/reteoo/builder/PatternBuilder.java 2009-06-19 05:28:57 UTC (rev 27018)
+++ labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/reteoo/builder/PatternBuilder.java 2009-06-19 05:29:24 UTC (rev 27019)
@@ -305,12 +305,21 @@
context.setObjectSource( returnedOtn );
//Notice that == is called deliberately
- if (returnedOtn == otn) {
+ if (returnedOtn == otn) {
+
+ if (pattern.getLabel() != null)
+ otn.setLabel(pattern.getLabel());
+
+
//this is the first time that a specific OTN is required, so it must be configured.
otn.setImperfectStructures(context);
+
+
}
+
if (pattern.getPrior() != null || pattern.getParams() != null) {
+
RecordHackerNode recordHacker = new RecordHackerNode(context, pattern.getPrior(),pattern.getParams(), pattern.isCutter());
@@ -319,8 +328,7 @@
}
//
//
-// if (pattern.getLabel() != null)
-// otn.setLabel(pattern.getLabel());
+
//
// if (pattern.getPrior() != null)
// otn.setPrior(pattern.getPrior());
More information about the jboss-svn-commits
mailing list