[jboss-svn-commits] JBL Code SVN: r26830 - in labs/jbossrules/branches/DroolsChance/drools-core: src/main/java/org/drools/degrees and 5 other directories.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Thu Jun 4 14:57:50 EDT 2009


Author: dsotty
Date: 2009-06-04 14:57:50 -0400 (Thu, 04 Jun 2009)
New Revision: 26830

Added:
   labs/jbossrules/branches/DroolsChance/drools-core/src/test/java/org/drools/degrees/
   labs/jbossrules/branches/DroolsChance/drools-core/src/test/java/org/drools/degrees/SimpleDegreeTest.java
   labs/jbossrules/branches/DroolsChance/drools-core/src/test/java/org/drools/degrees/chance/
Modified:
   labs/jbossrules/branches/DroolsChance/drools-core/.classpath
   labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/degrees/IntervalDegree.java
   labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/fuzzy/FuzzySet.java
   labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/reteoo/AlphaNode.java
   labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/reteoo/ImperfectExistsNode.java
   labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/reteoo/JoinNode.java
   labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/reteoo/ModusPonensNode.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/filters/AlwaysPassFilterStrategy.java
   labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/reteoo/filters/DefaultIntervalFilterStrategy.java
   labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/reteoo/filters/FuzzyFilterStrategy.java
   labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/reteoo/filters/IFilterStrategy.java
   labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/reteoo/filters/ImperfectFilterStrategy.java
   labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/reteoo/filters/SimpleFilterStrategy.java
Log:


Modified: labs/jbossrules/branches/DroolsChance/drools-core/.classpath
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-core/.classpath	2009-06-04 18:56:50 UTC (rev 26829)
+++ labs/jbossrules/branches/DroolsChance/drools-core/.classpath	2009-06-04 18:57:50 UTC (rev 26830)
@@ -1,11 +1,11 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <classpath>
-	<classpathentry excluding="org/drools/reteoo/JoinNodeBackup.java" kind="src" output="target/classes" path="src/main/java"/>
+	<classpathentry kind="src" output="target/classes" path="src/main/java"/>
 	<classpathentry kind="src" output="target/test-classes" path="src/test/java"/>
 	<classpathentry excluding="**" kind="src" output="target/classes" path="src/main/resources"/>
 	<classpathentry excluding="**" kind="src" output="target/test-classes" path="src/test/resources"/>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/java-6-sun-1.6.0.10"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.junit.JUNIT_CONTAINER/4"/>
 	<classpathentry kind="con" path="org.maven.ide.eclipse.MAVEN2_CLASSPATH_CONTAINER"/>
-	<classpathentry kind="con" path="org.eclipse.jdt.junit.JUNIT_CONTAINER/4"/>
 	<classpathentry kind="output" path="target/classes"/>
 </classpath>

Modified: labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/degrees/IntervalDegree.java
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/degrees/IntervalDegree.java	2009-06-04 18:56:50 UTC (rev 26829)
+++ labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/degrees/IntervalDegree.java	2009-06-04 18:57:50 UTC (rev 26830)
@@ -19,6 +19,10 @@
 	}
 
 	
+	public float getValue() {
+		return getTau();
+	}
+	
 	//TODO : Consider... beware...
 	public boolean toBoolean() {
 		return getUpp() > 0.5;

Modified: labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/fuzzy/FuzzySet.java
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/fuzzy/FuzzySet.java	2009-06-04 18:56:50 UTC (rev 26829)
+++ labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/fuzzy/FuzzySet.java	2009-06-04 18:57:50 UTC (rev 26830)
@@ -29,6 +29,10 @@
 	
 	
 	
+	public float getValue() {
+		return -99;
+	}
+	
 	public SimpleDegree getDegree() {
 		// TODO Defuzzify here
 		return null;

Modified: labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/reteoo/AlphaNode.java
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/reteoo/AlphaNode.java	2009-06-04 18:56:50 UTC (rev 26829)
+++ labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/reteoo/AlphaNode.java	2009-06-04 18:57:50 UTC (rev 26830)
@@ -248,22 +248,22 @@
 		 
 		System.out.println("Alpha evaluation trial "+record.expand());
 		
-		int verdict;
+		IFilterStrategy.filterOptions verdict;
     	
     	//if (this.constraint.isCutter() && record.getDegree().equals(factory.False()))
 		if (doCut)
-    		verdict = IFilterStrategy.DROP;
+    		verdict = IFilterStrategy.filterOptions.DROP;
     	else 
     		verdict = this.filterStrat.doTry(record); 
     	
     	
     	switch (verdict) {
-			case IFilterStrategy.DROP : 
+			case DROP : 
 				//time to die
 				System.out.println("Alpha FAIL : DROP record");
 				return;
 			
-			case IFilterStrategy.HOLD : 
+			case HOLD : 
 				System.out.println("WARNING::::::::::::::::::::::::::: OBJECT HELD AT ALPHA NODE "+this.constraint.getConstraintKey());
 				System.out.println("Situation is "+record.expand());
 					record.setFactHandle(factHandle);
@@ -274,7 +274,7 @@
 				//wait for more1
 				return;
 			
-			case IFilterStrategy.PASS :
+			case PASS :
 				//go on
 				System.out.println("Alpha PASS ");
 				this.sink.propagateAssertObject(factHandle,
@@ -293,24 +293,24 @@
 		EvalRecord record = (EvalRecord) watcher;
 System.out.println("**************************************************************UPDATE @ALPHA NODE");
 		
-		int verdict;
+		IFilterStrategy.filterOptions verdict;
 
 		if (this.constraint.isCutter() && record.getDegree().equals(record.getFactory().False()))
-			verdict = IFilterStrategy.DROP;
+			verdict = IFilterStrategy.filterOptions.DROP;
 		else 
 			verdict = this.filterStrat.doTry(record); 
 
 
 		switch (verdict) {
-		case IFilterStrategy.DROP : 
+		case DROP : 
 			record.deleteObserver(this);
 			return;
 		
-		case IFilterStrategy.HOLD : 
+		case HOLD : 
 			//do nothing
 			return;
 		
-		case IFilterStrategy.PASS :
+		case PASS :
 			//go on
 			record.deleteObserver(this);
 			//throw new RuntimeException("Awakened objeect");

Modified: labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/reteoo/ImperfectExistsNode.java
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/reteoo/ImperfectExistsNode.java	2009-06-04 18:56:50 UTC (rev 26829)
+++ labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/reteoo/ImperfectExistsNode.java	2009-06-04 18:57:50 UTC (rev 26830)
@@ -204,13 +204,13 @@
     	
 		
     	switch (this.filterStrat.doTry(mainRecord)) {
-    		case IFilterStrategy.DROP : 
+    		case DROP : 
 //    			System.out.println("Exist FAIL at assertTuple: DROP record");
 //    			return;
     			    					  
     			
 		
-    		case IFilterStrategy.HOLD : //TODO: HOLD
+    		case HOLD : //TODO: HOLD
     			System.out.println("HOLD RULES @EXIST NODE"+this.getId());
     			System.out.println("Situation is "+mainRecord.expand());
     			
@@ -222,7 +222,7 @@
     			
     			break;
 		
-    		case IFilterStrategy.PASS : 
+    		case PASS : 
     			System.out.println("Exist PASS at assertTuple: propagate record");
     			mainRecord.setLeftTuple(leftTuple);
     			mainRecord.setFactory(factory);
@@ -273,13 +273,13 @@
     	
 		
     	switch (this.filterStrat.doTry(mainRecord)) {
-    		case IFilterStrategy.DROP : 
+    		case DROP : 
 //    			System.out.println("Exist FAIL at assertTuple: DROP record");
 //    			return;
     			
     			
 //		
-    		case IFilterStrategy.HOLD : //TODO: HOLD
+    		case HOLD : //TODO: HOLD
     			System.out.println("HOLD RULES @EXIST NODE"+this.getId());
     			System.out.println("Situation is "+mainRecord.expand());    	
     			
@@ -288,7 +288,7 @@
     			
     			break;
 		
-    		case IFilterStrategy.PASS : 
+    		case PASS : 
     			System.out.println("Exist PASS at assertTuple: propagate record");
     			
     			mainRecord.deleteObserver(this);

Modified: labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/reteoo/JoinNode.java
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/reteoo/JoinNode.java	2009-06-04 18:56:50 UTC (rev 26829)
+++ labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/reteoo/JoinNode.java	2009-06-04 18:57:50 UTC (rev 26830)
@@ -105,15 +105,17 @@
         	
         	this.constraints.buildEvaluationTemplates(this.id,context.getRule().getDependencies(), factory);
         	
-        	Collection<ConstraintKey> keys = this.constraints.getAllConstraintKeys();
-        	for (ConstraintKey key : keys)
-        		context.getRuleBase().getRete().indexGammaNode(key,this);
         	
+        	
         	if (context.isCutter()) {
         		this.isCutter = true;
         		context.setCutter(false);
         	}
         	this.isCutter = this.isCutter || this.constraints.isCutter();
+        	
+        	Collection<ConstraintKey> keys = this.constraints.getAllConstraintKeys();
+        	for (ConstraintKey key : keys)
+        		context.getRuleBase().getRete().indexGammaNode(key,this);
         }
         System.out.println(this.getClass().getName() + "(id "+id+") constructor hacked to add filter strategy");
         
@@ -262,21 +264,21 @@
         	System.out.println("Situation at join eval"+mainRecord.expand());        		        		        		        	
 	        		        	        		        		        		        	
         	
-        	int verdict;
+        	IFilterStrategy.filterOptions verdict;
         	
         	//if (this.isCutter && mainRecord.getDegree().equals(factory.False()))
         	if (doCut)
-        		verdict = IFilterStrategy.DROP;
+        		verdict = IFilterStrategy.filterOptions.DROP;
         	else 
         		verdict = this.filterStrat.doTry(mainRecord); 
         	
         	
         	switch (verdict) {
-        		case IFilterStrategy.DROP : 
+        		case DROP : 
         			System.out.println("Beta FAIL at assertTuple: DROP record");
         			continue;
 			
-        		case IFilterStrategy.HOLD : //TODO: HOLD
+        		case HOLD : //TODO: HOLD
         			System.out.println("HOLD RULES @JOIN NODE"+this.getId());
         			System.out.println("Situation is "+mainRecord.expand());
         			
@@ -289,7 +291,7 @@
         			continue;
         			//break;
 			
-        		case IFilterStrategy.PASS : 
+        		case PASS : 
         			System.out.println("Beta PASS at assertTuple: propagate record");
         			this.sink.propagateAssertLeftTuple( leftTuple,
                             propRightTuple,
@@ -475,21 +477,21 @@
         	
         	System.out.println("Situation at join eval"+mainRecord.expand());        		        		        		        	
         		
-        	int verdict;
+        	IFilterStrategy.filterOptions verdict;
         	
         	//if (this.isCutter && mainRecord.getDegree().equals(factory.False()))
         	if (doCut)
-        		verdict = IFilterStrategy.DROP;
+        		verdict = IFilterStrategy.filterOptions.DROP;
         	else 
         		verdict = this.filterStrat.doTry(mainRecord); 
         	
         	
         	switch (verdict) {
-        		case IFilterStrategy.DROP :
+        		case DROP :
         			System.out.println("Beta DROP at assertobject");
         			return;
 			
-        		case IFilterStrategy.HOLD : //TODO: HOLD
+        		case HOLD : //TODO: HOLD
         			System.out.println("HOLD RULES @JOIN NODE"+this.getId());
         			System.out.println("Situation is "+mainRecord.expand());
         			
@@ -502,7 +504,7 @@
         			
         			break;
 			
-        		case IFilterStrategy.PASS : 
+        		case PASS : 
         			System.out.println("Beta PASS at assertObjecf: propagate record");
         			this.sink.propagateAssertLeftTuple( leftTuple,
                             propRightTuple,
@@ -541,24 +543,24 @@
 		
 		System.out.println("**************************************************************UPDATE @JOIN NODE");
 		
-		int verdict;
+		IFilterStrategy.filterOptions verdict;
     	
     	if (this.isCutter && record.getDegree().equals(record.getFactory().False()))
-    		verdict = IFilterStrategy.DROP;
+    		verdict = IFilterStrategy.filterOptions.DROP;
     	else 
     		verdict = this.filterStrat.doTry(record); 
     	
     	
     	switch (verdict) {
-		case IFilterStrategy.DROP : 
+		case DROP : 
 			record.deleteObserver(this);
 			return;
 		
-		case IFilterStrategy.HOLD : 
+		case HOLD : 
 			//do nothing
 			return;
 		
-		case IFilterStrategy.PASS :
+		case PASS :
 			//go on
 			record.deleteObserver(this);
 			//throw new RuntimeException("Awakened objeect");

Modified: labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/reteoo/ModusPonensNode.java
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/reteoo/ModusPonensNode.java	2009-06-04 18:56:50 UTC (rev 26829)
+++ labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/reteoo/ModusPonensNode.java	2009-06-04 18:57:50 UTC (rev 26830)
@@ -127,9 +127,9 @@
         	        		        		        	        		        		        		        	
         		
         	switch (this.filterStrat.doTry(mpRecord)) {
-        		case IFilterStrategy.DROP : return;
+        		case DROP : return;
 			
-        		case IFilterStrategy.HOLD : //TODO: HOLD
+        		case HOLD : //TODO: HOLD
         			System.out.println("HOLD RULES @MP NODE"+this.getId());
         			System.out.println("Situation is "+mpRecord.expand());
         			
@@ -144,7 +144,7 @@
         			
         			break;
 			
-        		case IFilterStrategy.PASS : 
+        		case PASS : 
         			//IN CASE, RULES ARE RECALLED ANYWAY!!!
         			if (mpRecord.getLeftTuple() == null || ! mpRecord.getLeftTuple().equals(leftTuple))
         				mpRecord.addObserver(this);
@@ -200,15 +200,15 @@
 		
 		System.out.println("**************************************************************UPDATE @MP NODE");
 		switch (this.filterStrat.doTry(record)) {
-		case IFilterStrategy.DROP : 
+		case DROP : 
 			//record.deleteObserver(this);
 			return;
 		
-		case IFilterStrategy.HOLD : 
+		case HOLD : 
 			//do nothing
 			return;
 		
-		case IFilterStrategy.PASS :
+		case PASS :
 			//go on
 			//record.deleteObserver(this);
 			//throw new RuntimeException("Awakened objeect");

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-04 18:56:50 UTC (rev 26829)
+++ labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/reteoo/ObjectTypeNode.java	2009-06-04 18:57:50 UTC (rev 26830)
@@ -664,26 +664,26 @@
 		
 		System.out.println("Type evaluation trial "+record.expand());
 		
-		int verdict;
+		IFilterStrategy.filterOptions verdict;
     	
     	if (record.getDegree().equals(factory.False())) {
     		//TypeNode is implicitly cutter
-    		verdict = IFilterStrategy.DROP;    		
+    		verdict = IFilterStrategy.filterOptions.DROP;    		
     	} else if (record == null) {
     		//InitialFact is passed
-    		verdict = IFilterStrategy.PASS;
+    		verdict = IFilterStrategy.filterOptions.PASS;
     	} else {
     		//Normal test
     		verdict = this.filterStrat.doTry(record); 
     	}
     	
     	switch (verdict) {
-			case IFilterStrategy.DROP : 
+			case DROP : 
 				//time to die
 				System.out.println("Type FAIL : DROP record");
 				return;
 			
-			case IFilterStrategy.HOLD : 
+			case HOLD : 
 				System.out.println("WARNING::::::::::::::::::::::::::: OBJECT HELD AT TYPE NODE "+this.getConstraintKey());
 				System.out.println("Situation is "+record.expand());
 					record.setFactHandle(factHandle);
@@ -694,7 +694,7 @@
 				//wait for more1
 				return;
 			
-			case IFilterStrategy.PASS :
+			case PASS :
 				//go on
 				System.out.println("Alpha PASS ");
 				this.sink.propagateAssertObject(factHandle,
@@ -715,24 +715,24 @@
 		EvalRecord record = (EvalRecord) watcher;
 		System.out.println("**************************************************************UPDATE @ALPHA NODE");
 				
-				int verdict;
+				IFilterStrategy.filterOptions verdict;
 
 				if (record.getDegree().equals(record.getFactory().False()))
-					verdict = IFilterStrategy.DROP;
+					verdict = IFilterStrategy.filterOptions.DROP;
 				else 
 					verdict = this.filterStrat.doTry(record); 
 
 
 				switch (verdict) {
-				case IFilterStrategy.DROP : 
+				case DROP : 
 					record.deleteObserver(this);
 					return;
 				
-				case IFilterStrategy.HOLD : 
+				case HOLD : 
 					//do nothing
 					return;
 				
-				case IFilterStrategy.PASS :
+				case PASS :
 					//go on
 					record.deleteObserver(this);
 					//throw new RuntimeException("Awakened objeect");

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-04 18:56:50 UTC (rev 26829)
+++ labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/reteoo/Rete.java	2009-06-04 18:57:50 UTC (rev 26830)
@@ -284,8 +284,9 @@
 			this.constraintIds.put(key.getAlias(), key);
 		}
 		else {
-			if (! node.equals(constraintIndex.get(key)))
-				throw new RuntimeDroolsException("Found duplicate key: "+key+" this may be a know issue");
+			IGammaNode prevNode = constraintIndex.get(key); 
+			if (! node.equals(prevNode))
+				System.out.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/filters/AlwaysPassFilterStrategy.java
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/reteoo/filters/AlwaysPassFilterStrategy.java	2009-06-04 18:56:50 UTC (rev 26829)
+++ labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/reteoo/filters/AlwaysPassFilterStrategy.java	2009-06-04 18:57:50 UTC (rev 26830)
@@ -17,14 +17,14 @@
 	public AlwaysPassFilterStrategy() { }
 	
 	@Override
-	public int doTry(Evaluation eval) {
-		return PASS;
+	public IFilterStrategy.filterOptions doTry(Evaluation eval) {
+		return filterOptions.PASS;
 		
 	}
 
 	@Override
 	public boolean isAllowed(Evaluation eval) {
-		return doTry(eval) == PASS;
+		return doTry(eval) == filterOptions.PASS;
 	}
 
 }

Modified: labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/reteoo/filters/DefaultIntervalFilterStrategy.java
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/reteoo/filters/DefaultIntervalFilterStrategy.java	2009-06-04 18:56:50 UTC (rev 26829)
+++ labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/reteoo/filters/DefaultIntervalFilterStrategy.java	2009-06-04 18:57:50 UTC (rev 26830)
@@ -22,7 +22,7 @@
 	 * @deprecated
 	 * Testing purposes
 	 */
-	public int doTry(Evaluation eval) {
+	public IFilterStrategy.filterOptions doTry(Evaluation eval) {
 		/*
 		System.out.println(""+eval.getInfoRate());
 		
@@ -34,13 +34,13 @@
 			return DROP;
 			*/
 		
-		return (eval.getInfoRate() == 1) ? PASS : HOLD;
+		return (eval.getInfoRate() == 1) ? IFilterStrategy.filterOptions.PASS : IFilterStrategy.filterOptions.HOLD;
 		
 	}
 
 	
 	public boolean isAllowed(Evaluation eval) {
-		return doTry(eval) == PASS;
+		return doTry(eval) == IFilterStrategy.filterOptions.PASS;
 	}
 
 }

Modified: labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/reteoo/filters/FuzzyFilterStrategy.java
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/reteoo/filters/FuzzyFilterStrategy.java	2009-06-04 18:56:50 UTC (rev 26829)
+++ labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/reteoo/filters/FuzzyFilterStrategy.java	2009-06-04 18:57:50 UTC (rev 26830)
@@ -18,8 +18,8 @@
 	}
 
 	@Override
-	public int doTry(final Evaluation eval) {
-		return (eval.getInfoRate() == 1.0) ? PASS : HOLD;
+	public IFilterStrategy.filterOptions doTry(final Evaluation eval) {
+		return (eval.getInfoRate() == 1.0) ? IFilterStrategy.filterOptions.PASS : IFilterStrategy.filterOptions.HOLD;
 	}
 
 	@Override

Modified: labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/reteoo/filters/IFilterStrategy.java
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/reteoo/filters/IFilterStrategy.java	2009-06-04 18:56:50 UTC (rev 26829)
+++ labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/reteoo/filters/IFilterStrategy.java	2009-06-04 18:57:50 UTC (rev 26830)
@@ -1,16 +1,19 @@
 package org.drools.reteoo.filters;
 
-
 import org.drools.reteoo.Evaluation;
 
 public interface IFilterStrategy {
-	
-	public static final int DROP = 0;
-	public static final int PASS = 1;
-	public static final int HOLD = -1;
-	
+
+	public enum filterOptions {
+		DROP, PASS, HOLD
+	};
+
+	// public static final int DROP = 0;
+	// public static final int PASS = 1;
+	// public static final int HOLD = -1;
+
 	public boolean isAllowed(final Evaluation eval);
-	
-	public int doTry(final Evaluation eval);
 
+	public filterOptions doTry(final Evaluation eval);
+
 }

Modified: labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/reteoo/filters/ImperfectFilterStrategy.java
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/reteoo/filters/ImperfectFilterStrategy.java	2009-06-04 18:56:50 UTC (rev 26829)
+++ labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/reteoo/filters/ImperfectFilterStrategy.java	2009-06-04 18:57:50 UTC (rev 26830)
@@ -11,19 +11,19 @@
 	public abstract boolean isAllowed(final Evaluation eval);
 	
 	
-	public abstract int doTry(final Evaluation eval);
+	public abstract IFilterStrategy.filterOptions doTry(final Evaluation eval);
 	
 	
 	public boolean drop(final Evaluation eval) {
-		return doTry(eval) == DROP;
+		return doTry(eval) == IFilterStrategy.filterOptions.DROP;
 	}
 	
 	public boolean pass(final Evaluation eval) {
-		return doTry(eval) == PASS;
+		return doTry(eval) == IFilterStrategy.filterOptions.PASS;
 	}
 	
 	public boolean hold(final Evaluation eval) {
-		return doTry(eval) == HOLD;
+		return doTry(eval) == IFilterStrategy.filterOptions.HOLD;
 	}
 	
 	

Modified: labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/reteoo/filters/SimpleFilterStrategy.java
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/reteoo/filters/SimpleFilterStrategy.java	2009-06-04 18:56:50 UTC (rev 26829)
+++ labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/reteoo/filters/SimpleFilterStrategy.java	2009-06-04 18:57:50 UTC (rev 26830)
@@ -17,7 +17,7 @@
 	public SimpleFilterStrategy() { }
 	
 	@Override
-	public int doTry(Evaluation eval) {
+	public IFilterStrategy.filterOptions doTry(Evaluation eval) {
 		//return eval.getDegree().toBoolean() ? PASS : DROP;
 		System.out.println(this.getClass()+" : "+eval.getInfoRate());
 		
@@ -28,14 +28,14 @@
 //			return HOLD;
 //		else 
 //			return DROP;
-		return eval.getInfoRate() == 1.0f? PASS : HOLD;
+		return eval.getInfoRate() == 1.0f? IFilterStrategy.filterOptions.PASS : IFilterStrategy.filterOptions.HOLD;
 		
 		
 	}
 
 	@Override
 	public boolean isAllowed(Evaluation eval) {
-		return doTry(eval) == PASS;
+		return doTry(eval) == filterOptions.PASS;
 	}
 
 }

Added: labs/jbossrules/branches/DroolsChance/drools-core/src/test/java/org/drools/degrees/SimpleDegreeTest.java
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-core/src/test/java/org/drools/degrees/SimpleDegreeTest.java	                        (rev 0)
+++ labs/jbossrules/branches/DroolsChance/drools-core/src/test/java/org/drools/degrees/SimpleDegreeTest.java	2009-06-04 18:57:50 UTC (rev 26830)
@@ -0,0 +1,102 @@
+package org.drools.degrees;
+
+import static org.junit.Assert.*;
+
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+
+public class SimpleDegreeTest {
+	
+	SimpleDegree s0;
+	SimpleDegree s1;
+	SimpleDegree s5;
+	SimpleDegree s3;
+	SimpleDegree s8;
+	
+
+	@Before
+	public void setUp() throws Exception {
+		 s0 = new SimpleDegree(0);
+		 s1 = new SimpleDegree(1);
+		 s5 = new SimpleDegree(0.5000001f);
+		 s3 = new SimpleDegree(0.3f);
+		 s8 = new SimpleDegree(0.8f);
+	}
+
+	@After
+	public void tearDown() throws Exception {
+	}
+
+	@Test
+	public void testToBoolean() {
+		assertTrue(s1.toBoolean());
+		assertFalse(s0.toBoolean());
+		assertFalse(s3.toBoolean());
+		assertTrue(s5.toBoolean());
+		assertTrue(s8.toBoolean());				
+	}
+
+	@Test
+	public void testSetValue() {
+		s8.setValue(0.74f);
+		assertTrue(s8.getValue() == 0.74f);
+	}
+
+	@Test
+	public void testGetValue() {
+		assertEquals(1,s1.getValue(), 1e-6);
+		assertEquals(0,s0.getValue(), 1e-6);
+		assertEquals(0.3,s3.getValue(), 1e-6);
+		assertEquals(0.5,s5.getValue(), 1e-6);
+		assertEquals(0.8,s8.getValue(), 1e-6);
+	}
+
+	@Test
+	public void testEqualsObject() {
+		assertEquals(s1, s1);
+		assertTrue(s1.equals(s1));
+		
+		assertFalse(s1.equals(null));
+		
+		assertFalse(s1.equals(s0));
+		assertFalse(s3.equals(s5));
+		assertEquals(s1, new SimpleDegree(1));
+		
+		assertFalse(s1.equals( new Object()));		
+	}
+
+	@Test
+	public void testTRUE() {
+		assertEquals(s1, SimpleDegree.TRUE());
+	}
+
+	@Test
+	public void testFALSE() {
+		assertEquals(s0, SimpleDegree.FALSE());
+	}
+
+	@Test
+	public void testUNKNOWN() {
+		assertEquals(s0, SimpleDegree.UNKNOWN(true));
+	}
+
+	@Test
+	public void testSimpleDegree() {
+		assertNotNull(new SimpleDegree(1));
+		assertEquals(s1, new SimpleDegree(1));
+	}
+
+	@Test
+	public void testGetDegree() {
+		assertEquals(s1,s1.getDegree());
+		assertTrue(s3.getDegree() instanceof IDegree );
+		assertTrue(s5.getDegree() instanceof SimpleDegree);
+	}
+
+	@Test
+	public void testToString() {
+		assertNotNull(s1.toString());
+	}
+
+}




More information about the jboss-svn-commits mailing list