[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