[jboss-svn-commits] JBL Code SVN: r26748 - labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/fuzzy/evaluators.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Wed May 27 10:07:45 EDT 2009


Author: dsotty
Date: 2009-05-27 10:07:45 -0400 (Wed, 27 May 2009)
New Revision: 26748

Added:
   labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/fuzzy/evaluators/EvalEvaluator.java
   labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/fuzzy/evaluators/EvalEvaluatorDefinition.java
Modified:
   labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/fuzzy/evaluators/EqualsEvaluatorDefinition.java
   labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/fuzzy/evaluators/FuzzyNumericEvaluator.java
   labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/fuzzy/evaluators/MockEvaluator.java
   labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/fuzzy/evaluators/RandomEvaluator.java
   labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/fuzzy/evaluators/SeemsEvaluator.java
Log:
Meta-Evaluator

Modified: labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/fuzzy/evaluators/EqualsEvaluatorDefinition.java
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/fuzzy/evaluators/EqualsEvaluatorDefinition.java	2009-05-27 12:59:38 UTC (rev 26747)
+++ labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/fuzzy/evaluators/EqualsEvaluatorDefinition.java	2009-05-27 14:07:45 UTC (rev 26748)
@@ -103,7 +103,7 @@
 		}
 
 		@Override
-		protected IDegree eval(Object left, Object right, IDegreeFactory factory) {
+		public IDegree eval(Object left, Object right, IDegreeFactory factory) {
 			if (left == null || right == null)
 				return factory.Unknown();
 			return factory.fromBoolean(left.equals(right));

Added: labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/fuzzy/evaluators/EvalEvaluator.java
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/fuzzy/evaluators/EvalEvaluator.java	                        (rev 0)
+++ labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/fuzzy/evaluators/EvalEvaluator.java	2009-05-27 14:07:45 UTC (rev 26748)
@@ -0,0 +1,105 @@
+package org.drools.fuzzy.evaluators;
+
+import java.io.IOException;
+import java.io.ObjectInput;
+import java.io.ObjectOutput;
+
+import org.drools.RuntimeDroolsException;
+import org.drools.WorkingMemory;
+import org.drools.base.BaseImperfectEvaluator;
+import org.drools.base.ValueType;
+import org.drools.base.evaluators.Operator;
+import org.drools.base.field.LongFieldImpl;
+import org.drools.common.InternalWorkingMemory;
+import org.drools.degrees.IDegree;
+import org.drools.degrees.factory.IDegreeFactory;
+import org.drools.reteoo.ImperfectRuleBase;
+import org.drools.rule.VariableRestriction.VariableContextEntry;
+import org.drools.spi.Evaluator;
+import org.drools.spi.FieldValue;
+
+import org.drools.spi.InternalReadAccessor;
+
+
+
+
+public class EvalEvaluator 
+	extends BaseImperfectEvaluator  {
+	
+	
+
+
+	
+	
+	public EvalEvaluator() {		
+		this(ValueType.OBJECT_TYPE,false,"");
+	}
+		
+	public EvalEvaluator(final ValueType type,
+            				final boolean isNegated,
+            				final String parameters) {
+			super( type,
+                   EvalEvaluatorDefinition.EVAL,
+                   parameters);            
+	}
+	
+	
+
+    
+    public IDegree evaluate(InternalWorkingMemory workingMemory,
+    		IDegreeFactory factory,
+			InternalReadAccessor extractor, 			
+			Object object1, 
+			FieldValue value) {
+
+    	Object o = extractor.getValue(object1);
+    	if (o instanceof BaseImperfectEvaluator) {
+			BaseImperfectEvaluator evaluator = (BaseImperfectEvaluator) o;
+			
+			Object arg = value.getValue();
+			
+			return evaluator.eval(arg, arg, factory);
+		}	
+		return factory.Unknown();
+    	    	    		
+	}
+    
+	
+
+	
+	public IDegree evaluate(InternalWorkingMemory workingMemory,
+			IDegreeFactory factory,
+			InternalReadAccessor leftExtractor, Object left,
+			InternalReadAccessor rightExtractor, Object right) {
+
+		Object o = leftExtractor.getValue(left);
+    	if (o instanceof BaseImperfectEvaluator) {
+			BaseImperfectEvaluator evaluator = (BaseImperfectEvaluator) o;
+			
+			Object arg = rightExtractor.getValue(right);
+			
+			return evaluator.eval(arg, arg, factory);
+		}	
+		return factory.Unknown();
+		
+								
+	}
+
+	
+
+	@Override
+	public IDegree eval(Object left, Object right, IDegreeFactory factory) {
+		//shouldn't get here
+		return factory.Unknown();
+	}
+	
+	
+	
+
+ 
+
+	
+
+}
+	
+	
\ No newline at end of file

Added: labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/fuzzy/evaluators/EvalEvaluatorDefinition.java
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/fuzzy/evaluators/EvalEvaluatorDefinition.java	                        (rev 0)
+++ labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/fuzzy/evaluators/EvalEvaluatorDefinition.java	2009-05-27 14:07:45 UTC (rev 26748)
@@ -0,0 +1,110 @@
+package org.drools.fuzzy.evaluators;
+
+
+
+
+import java.awt.geom.Point2D;
+import java.io.IOException;
+import java.io.ObjectInput;
+import java.io.ObjectOutput;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.Map;
+
+import org.drools.RuntimeDroolsException;
+import org.drools.WorkingMemory;
+import org.drools.base.BaseEvaluator;
+import org.drools.base.BaseImperfectEvaluator;
+import org.drools.base.ValueType;
+import org.drools.base.evaluators.ImperfectAbstractEvaluatorDefinition;
+import org.drools.base.evaluators.ImperfectEvaluatorDefinition;
+import org.drools.base.evaluators.Operator;
+import org.drools.base.evaluators.EvaluatorDefinition.Target;
+import org.drools.common.InternalWorkingMemory;
+import org.drools.rule.VariableRestriction.ObjectVariableContextEntry;
+import org.drools.rule.VariableRestriction.VariableContextEntry;
+import org.drools.spi.Evaluator;
+import org.drools.spi.FieldValue;
+import org.drools.spi.InternalReadAccessor;
+
+
+
+
+
+
+
+/**
+ * 
+ * @author sotty
+ 
+ *
+ */
+public class EvalEvaluatorDefinition 
+	extends ImperfectAbstractEvaluatorDefinition {
+	
+	
+	
+	
+	
+	
+		
+	
+	
+	
+	public static final Operator   EVAL         = Operator.addOperatorToRegistry( "evaluates",
+            										false );
+
+	private static final String[]  SUPPORTED_IDS = {EVAL.getOperatorString()};
+
+	
+
+
+	
+	
+	
+	public Evaluator getEvaluator(ValueType type, String operatorId,
+			boolean isNegated, String parameterText, Target left, Target right) {
+		
+		if ( this.cache == Collections.EMPTY_MAP ) {
+            this.cache = new HashMap<String, Evaluator>();
+        }
+        String key = isNegated + ":" + parameterText;
+        Evaluator eval = this.cache.get( key );
+        if ( eval == null ) {
+            eval = new EvalEvaluator( type,
+                                       isNegated,
+                                       parameterText );
+            this.cache.put( key,
+                            eval );
+        }
+        return eval;
+        
+        
+        
+	}
+
+	/**
+	 * Operator is known as "far"
+	 */
+	public String[] getEvaluatorIds() {
+		return SUPPORTED_IDS;
+	}
+
+	
+	
+	
+	
+	
+	
+	
+	
+	
+	
+	
+	
+	
+	
+	
+	
+	
+}

Modified: labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/fuzzy/evaluators/FuzzyNumericEvaluator.java
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/fuzzy/evaluators/FuzzyNumericEvaluator.java	2009-05-27 12:59:38 UTC (rev 26747)
+++ labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/fuzzy/evaluators/FuzzyNumericEvaluator.java	2009-05-27 14:07:45 UTC (rev 26748)
@@ -56,7 +56,7 @@
 	
 	
    
-    protected IDegree eval(Object left, Object right, IDegreeFactory factory) {
+    public IDegree eval(Object left, Object right, IDegreeFactory factory) {
     			
 		if (left == null) return factory.Unknown();
 		if (! (left instanceof Number))

Modified: labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/fuzzy/evaluators/MockEvaluator.java
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/fuzzy/evaluators/MockEvaluator.java	2009-05-27 12:59:38 UTC (rev 26747)
+++ labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/fuzzy/evaluators/MockEvaluator.java	2009-05-27 14:07:45 UTC (rev 26748)
@@ -32,7 +32,7 @@
 
 	
 	@Override
-	protected IDegree eval(Object left, Object right, IDegreeFactory factory) {
+	public IDegree eval(Object left, Object right, IDegreeFactory factory) {
 		return factory.Unknown();
 	}
 

Modified: labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/fuzzy/evaluators/RandomEvaluator.java
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/fuzzy/evaluators/RandomEvaluator.java	2009-05-27 12:59:38 UTC (rev 26747)
+++ labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/fuzzy/evaluators/RandomEvaluator.java	2009-05-27 14:07:45 UTC (rev 26748)
@@ -23,7 +23,7 @@
 
 
 	@Override
-	protected IDegree eval(Object left, Object right, IDegreeFactory factory) {
+	public IDegree eval(Object left, Object right, IDegreeFactory factory) {
 		return factory.buildDegree((float) Math.random());
 	}
 	

Modified: labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/fuzzy/evaluators/SeemsEvaluator.java
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/fuzzy/evaluators/SeemsEvaluator.java	2009-05-27 12:59:38 UTC (rev 26747)
+++ labs/jbossrules/branches/DroolsChance/drools-core/src/main/java/org/drools/fuzzy/evaluators/SeemsEvaluator.java	2009-05-27 14:07:45 UTC (rev 26748)
@@ -76,7 +76,7 @@
 	
 
 	@Override
-	protected IDegree eval(Object left, Object right, IDegreeFactory factory) {
+	public IDegree eval(Object left, Object right, IDegreeFactory factory) {
 		return factory.Unknown();
 	}
 	




More information about the jboss-svn-commits mailing list