[jboss-svn-commits] JBL Code SVN: r5422 - in labs/jbossrules/trunk/drools-core/src: main/java/org/drools main/java/org/drools/base main/java/org/drools/base/evaluators main/java/org/drools/facttemplates main/java/org/drools/reteoo main/java/org/drools/reteoo/beta main/java/org/drools/rule main/java/org/drools/spi test/java/org/drools/base test/java/org/drools/examples/manners test/java/org/drools/examples/waltz test/java/org/drools/leaps test/java/org/drools/reteoo test/java/org/drools/reteoo/beta test/java/org/drools/rule test/java/org/drools/spi
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Wed Aug 2 20:15:22 EDT 2006
Author: mark.proctor at jboss.com
Date: 2006-08-02 20:14:40 -0400 (Wed, 02 Aug 2006)
New Revision: 5422
Added:
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/ValueType.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/evaluators/EvaluatorFactory.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/evaluators/FactTemplateFactory.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/evaluators/Operator.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/facttemplates/
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/facttemplates/Fact.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/facttemplates/FactImpl.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/facttemplates/FactTemplate.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/facttemplates/FactTemplateImpl.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/facttemplates/FactTemplateObjectType.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/facttemplates/FactTemplatorFieldExtractor.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/facttemplates/FieldTemplate.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/facttemplates/FieldTemplateImpl.java
Removed:
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/EvaluatorFactory.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/spi/Semaphore.java
Modified:
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/BaseClassFieldExtractor.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/BaseEvaluator.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/ClassFieldExtractor.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/ClassFieldExtractorFactory.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/ClassObjectType.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/FieldFactory.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/FieldImpl.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/evaluators/ArrayFactory.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/evaluators/BooleanFactory.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/evaluators/ByteFactory.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/evaluators/CharacterFactory.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/evaluators/DateFactory.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/evaluators/DoubleFactory.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/evaluators/FloatFactory.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/evaluators/IntegerFactory.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/evaluators/LongFactory.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/evaluators/ObjectFactory.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/evaluators/ShortFactory.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/evaluators/StringFactory.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/AlphaNodeSwitch.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/HashedObjectSinkList.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/ReteooBuilder.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/beta/BetaMemoryFactory.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/beta/BooleanConstrainedLeftMemory.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/beta/BooleanConstrainedRightMemory.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/Declaration.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/spi/ColumnExtractor.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/spi/Evaluator.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/spi/Extractor.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/spi/ObjectType.java
labs/jbossrules/trunk/drools-core/src/test/java/org/drools/base/EvaluatorFactoryTest.java
labs/jbossrules/trunk/drools-core/src/test/java/org/drools/examples/manners/BaseMannersTest.java
labs/jbossrules/trunk/drools-core/src/test/java/org/drools/examples/waltz/BaseWaltzTest.java
labs/jbossrules/trunk/drools-core/src/test/java/org/drools/leaps/ColumnConstraintsTest.java
labs/jbossrules/trunk/drools-core/src/test/java/org/drools/leaps/LeapsRuleBaseTest.java
labs/jbossrules/trunk/drools-core/src/test/java/org/drools/leaps/QueryResultsTest.java
labs/jbossrules/trunk/drools-core/src/test/java/org/drools/leaps/QueryTest.java
labs/jbossrules/trunk/drools-core/src/test/java/org/drools/reteoo/AlphaNodeSwitchTest.java
labs/jbossrules/trunk/drools-core/src/test/java/org/drools/reteoo/AlphaNodeTest.java
labs/jbossrules/trunk/drools-core/src/test/java/org/drools/reteoo/HashedObjectSinkListTest.java
labs/jbossrules/trunk/drools-core/src/test/java/org/drools/reteoo/QueryTerminalNodeTest.java
labs/jbossrules/trunk/drools-core/src/test/java/org/drools/reteoo/beta/BooleanConstrainedLeftMemoryTest.java
labs/jbossrules/trunk/drools-core/src/test/java/org/drools/reteoo/beta/BooleanConstrainedRightMemoryTest.java
labs/jbossrules/trunk/drools-core/src/test/java/org/drools/reteoo/beta/ObjectEqualConstrLeftMemoryTest.java
labs/jbossrules/trunk/drools-core/src/test/java/org/drools/reteoo/beta/ObjectEqualConstrRightMemoryTest.java
labs/jbossrules/trunk/drools-core/src/test/java/org/drools/reteoo/beta/ObjectNotEqualConstrLeftMemoryTest.java
labs/jbossrules/trunk/drools-core/src/test/java/org/drools/reteoo/beta/ObjectNotEqualConstrRightMemoryTest.java
labs/jbossrules/trunk/drools-core/src/test/java/org/drools/rule/DeclarationTest.java
labs/jbossrules/trunk/drools-core/src/test/java/org/drools/rule/FieldConstraintTest.java
labs/jbossrules/trunk/drools-core/src/test/java/org/drools/rule/OrTest.java
labs/jbossrules/trunk/drools-core/src/test/java/org/drools/spi/MockObjectType.java
Log:
JBRULES-220 Refactor ObjectType to work with Templates
-This also involved refactor Evaluator to use Enums for ValueType and Operator
JBRULES-329 implement core handling of Templates for ObjectType
-Initial commmit for FactTemplate work, still not integrated into parsers and builds, it also needs unit tests.
JBRULES-216 Allow & and | connectives for field constraints
-XmlReader is now fixed
-Xml and Drl Dumpers have been fixed
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/BaseClassFieldExtractor.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/BaseClassFieldExtractor.java 2006-08-03 00:14:06 UTC (rev 5421)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/BaseClassFieldExtractor.java 2006-08-03 00:14:40 UTC (rev 5422)
@@ -28,19 +28,19 @@
abstract public class BaseClassFieldExtractor
implements
FieldExtractor {
- private final ClassObjectType objectType;
-
private final int index;
private final Class fieldType;
+
+ private final ValueType valueType;
public BaseClassFieldExtractor(final Class clazz,
final String fieldName) {
try {
final ClassFieldInspector inspector = new ClassFieldInspector( clazz );
- this.index = ((Integer) inspector.getFieldNames().get( fieldName )).intValue();
- this.fieldType = (Class) inspector.getFieldTypes().get( fieldName );
- this.objectType = ClassFieldExtractorFactory.getClassObjectType( this.fieldType );
+ this.index = ((Integer) inspector.getFieldNames().get( fieldName ) ).intValue();
+ this.fieldType = wrapPrimitive( (Class) inspector.getFieldTypes().get( fieldName ) );
+ this.valueType = ValueType.determineValueType( this.fieldType );
} catch ( final Exception e ) {
throw new RuntimeDroolsException( e );
}
@@ -50,29 +50,62 @@
return this.index;
}
- protected Class getFieldType() {
+ public Class getExtractToClass() {
return this.fieldType;
}
+
+ public ValueType getValueType() {
+ return this.valueType;
+ }
/** This will be implemented by the dynamic classes */
abstract public Object getValue(Object object);
+
+ protected static Class wrapPrimitive(final Class fieldType) {
+ Class returnClass = null;
+ // autobox primitives
+ if ( fieldType.isPrimitive() ) {
+ if ( fieldType == char.class ) {
+ returnClass = Character.class;
+ } else if ( fieldType == byte.class ) {
+ returnClass = Byte.class;
+ } else if ( fieldType == short.class ) {
+ returnClass = Short.class;
+ } else if ( fieldType == int.class ) {
+ returnClass = Integer.class;
+ } else if ( fieldType == long.class ) {
+ returnClass = Long.class;
+ } else if ( fieldType == float.class ) {
+ returnClass = Float.class;
+ } else if ( fieldType == double.class ) {
+ returnClass = Double.class;
+ } else if ( fieldType == boolean.class ) {
+ returnClass = Boolean.class;
+ }
+ } else {
+ returnClass = fieldType;
+ }
- public ObjectType getObjectType() {
- return this.objectType;
+ return returnClass;
}
- public boolean equals(final Object other) {
- if ( this == other ) {
+ public int hashCode() {
+ final int PRIME = 31;
+ int result = 1;
+ result = PRIME * result + this.fieldType.hashCode();
+ result = PRIME * result + this.index;
+ result = PRIME * result + this.valueType.hashCode();
+ return result;
+ }
+
+ public boolean equals(final Object object) {
+ if ( this == object ) {
return true;
}
- if ( !(other instanceof BaseClassFieldExtractor) ) {
+ if ( !(object instanceof BaseClassFieldExtractor) ) {
return false;
}
- final BaseClassFieldExtractor extr = (BaseClassFieldExtractor) other;
- return this.objectType.equals( extr.objectType ) && this.index == extr.index;
- }
-
- public int hashCode() {
- return this.objectType.hashCode() * 17 + this.index;
- }
+ final BaseClassFieldExtractor other = (BaseClassFieldExtractor) object;
+ return this.fieldType == other.fieldType && this.index == other.index;
+ }
}
\ No newline at end of file
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/BaseEvaluator.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/BaseEvaluator.java 2006-08-03 00:14:06 UTC (rev 5421)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/BaseEvaluator.java 2006-08-03 00:14:40 UTC (rev 5422)
@@ -16,6 +16,7 @@
* limitations under the License.
*/
+import org.drools.base.evaluators.Operator;
import org.drools.spi.Evaluator;
/**
@@ -28,39 +29,41 @@
implements
Evaluator {
- private final int operator;
+ private final Operator operator;
- private final int type;
+ private final ValueType type;
- public BaseEvaluator(final int type,
- final int operator) {
+ public BaseEvaluator(final ValueType type,
+ final Operator operator) {
this.type = type;
this.operator = operator;
}
- public int getOperator() {
+ public Operator getOperator() {
return this.operator;
}
- public int getType() {
+ public ValueType getValueType() {
return this.type;
}
public abstract boolean evaluate(Object object1,
Object object2);
- public boolean equals(final Object other) {
- if ( this == other ) {
+ public boolean equals(final Object object) {
+ if ( this == object ) {
return true;
}
- if ( !this.getClass().equals( other.getClass() ) ) {
+ if ( object == null || getClass() != object.getClass() ) {
return false;
}
- return (this.getOperator() == ((Evaluator) other).getOperator()) && (this.getType() == ((Evaluator) other).getType());
+
+ Evaluator other = ( Evaluator ) object;
+ return this.getOperator() == other.getOperator() && this.getValueType() == other.getValueType();
}
public int hashCode() {
- return (this.getType() * 17) ^ (this.getOperator() * 11) ^ (this.getClass().hashCode());
+ return (this.getValueType().hashCode()) ^ (this.getOperator().hashCode()) ^ (this.getClass().hashCode());
}
}
\ No newline at end of file
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/ClassFieldExtractor.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/ClassFieldExtractor.java 2006-08-03 00:14:06 UTC (rev 5421)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/ClassFieldExtractor.java 2006-08-03 00:14:40 UTC (rev 5422)
@@ -38,7 +38,7 @@
/**
*
*/
- private static final long serialVersionUID = 1865123571023540643L;
+ private static final long serialVersionUID = 320;
private String fieldName;
private Class clazz;
private transient FieldExtractor extractor;
@@ -79,16 +79,20 @@
return this.extractor.getValue( object );
}
- public ObjectType getObjectType() {
- return this.extractor.getObjectType();
+ public ValueType getValueType() {
+ return this.extractor.getValueType();
}
+
+ public Class getExtractToClass() {
+ return this.extractor.getExtractToClass();
+ }
public String toString() {
return "[ClassFieldExtractor class=" + this.clazz + " field=" + this.fieldName + "]";
}
public int hashCode() {
- return this.getObjectType().hashCode() * 17 + this.getIndex();
+ return getValueType().hashCode() * 17 + getIndex();
}
public boolean equals(final Object object) {
@@ -102,6 +106,6 @@
final ClassFieldExtractor other = (ClassFieldExtractor) object;
- return this.extractor.getObjectType().equals( other.getObjectType() ) && this.extractor.getIndex() == other.getIndex();
+ return this.extractor.getValueType() == other.getValueType() && this.extractor.getIndex() == other.getIndex();
}
}
\ No newline at end of file
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/ClassFieldExtractorFactory.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/ClassFieldExtractorFactory.java 2006-08-03 00:14:06 UTC (rev 5421)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/ClassFieldExtractorFactory.java 2006-08-03 00:14:40 UTC (rev 5422)
@@ -254,37 +254,6 @@
return cw.toByteArray();
}
- /**
- * Return the classObjectType, allowing for the fact that it will be autoboxed if it is a primitive.
- */
- protected static ClassObjectType getClassObjectType(final Class fieldType) throws IntrospectionException {
- Class returnClass = null;
- // autobox primitives
- if ( fieldType.isPrimitive() ) {
- if ( fieldType == char.class ) {
- returnClass = Character.class;
- } else if ( fieldType == byte.class ) {
- returnClass = Byte.class;
- } else if ( fieldType == short.class ) {
- returnClass = Short.class;
- } else if ( fieldType == int.class ) {
- returnClass = Integer.class;
- } else if ( fieldType == long.class ) {
- returnClass = Long.class;
- } else if ( fieldType == float.class ) {
- returnClass = Float.class;
- } else if ( fieldType == double.class ) {
- returnClass = Double.class;
- } else if ( fieldType == boolean.class ) {
- returnClass = Boolean.class;
- }
- } else {
- returnClass = fieldType;
- }
-
- return new ClassObjectType( returnClass );
- }
-
private static String getTypeName(final Class fieldType) {
String ret = null;
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/ClassObjectType.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/ClassObjectType.java 2006-08-03 00:14:06 UTC (rev 5421)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/ClassObjectType.java 2006-08-03 00:14:40 UTC (rev 5422)
@@ -16,6 +16,7 @@
* limitations under the License.
*/
+import org.drools.RuntimeDroolsException;
import org.drools.spi.Evaluator;
import org.drools.spi.ObjectType;
@@ -41,7 +42,7 @@
/** Java object class. */
protected Class objectTypeClass;
- protected int valueType;
+ protected ValueType valueType;
// ------------------------------------------------------------
// Constructors
@@ -55,7 +56,7 @@
*/
public ClassObjectType(final Class objectTypeClass) {
this.objectTypeClass = objectTypeClass;
- setValueType( objectTypeClass );
+ this.valueType = ValueType.determineValueType( objectTypeClass );
}
// ------------------------------------------------------------
@@ -89,46 +90,10 @@
return getClassType().isInstance( object );
}
- public int getValueType() {
+ public ValueType getValueType() {
return this.valueType;
}
- // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- // java.lang.Object
- // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- protected void setValueType(final Class clazz) {
- if ( clazz == null ) {
- this.valueType = Evaluator.NULL_TYPE;
- } else if ( clazz == Character.class ) {
- this.valueType = Evaluator.CHAR_TYPE;
- } else if ( clazz == Byte.class ) {
- this.valueType = Evaluator.BYTE_TYPE;
- } else if ( clazz == Short.class ) {
- this.valueType = Evaluator.SHORT_TYPE;
- } else if ( clazz == Integer.class ) {
- this.valueType = Evaluator.INTEGER_TYPE;
- } else if ( clazz == Long.class ) {
- this.valueType = Evaluator.LONG_TYPE;
- } else if ( clazz == Float.class ) {
- this.valueType = Evaluator.FLOAT_TYPE;
- } else if ( clazz == Double.class ) {
- this.valueType = Evaluator.DOUBLE_TYPE;
- } else if ( clazz == Boolean.class ) {
- this.valueType = Evaluator.BOOLEAN_TYPE;
- } else if ( clazz == java.sql.Date.class ) {
- this.valueType = Evaluator.DATE_TYPE;
- } else if ( clazz == java.util.Date.class ) {
- this.valueType = Evaluator.DATE_TYPE;
- } else if ( clazz.isAssignableFrom( Object[].class ) ) {
- this.valueType = Evaluator.ARRAY_TYPE;
- } else if ( clazz == String.class ) {
- this.valueType = Evaluator.STRING_TYPE;
- } else if ( clazz instanceof Object ) {
- this.valueType = Evaluator.OBJECT_TYPE;
- }
- }
-
public String toString() {
return "[ClassObjectType class=" + getClassType().getName() + "]";
}
Deleted: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/EvaluatorFactory.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/EvaluatorFactory.java 2006-08-03 00:14:06 UTC (rev 5421)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/EvaluatorFactory.java 2006-08-03 00:14:40 UTC (rev 5422)
@@ -1,124 +0,0 @@
-package org.drools.base;
-
-/*
- * Copyright 2005 JBoss Inc
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-import org.drools.base.evaluators.ArrayFactory;
-import org.drools.base.evaluators.BooleanFactory;
-import org.drools.base.evaluators.ByteFactory;
-import org.drools.base.evaluators.CharacterFactory;
-import org.drools.base.evaluators.DateFactory;
-import org.drools.base.evaluators.DoubleFactory;
-import org.drools.base.evaluators.FloatFactory;
-import org.drools.base.evaluators.IntegerFactory;
-import org.drools.base.evaluators.LongFactory;
-import org.drools.base.evaluators.ObjectFactory;
-import org.drools.base.evaluators.ShortFactory;
-import org.drools.base.evaluators.StringFactory;
-import org.drools.spi.Evaluator;
-
-/**
- * This is a factory to generate evaluators for all types and operations that can be used
- * in constraints. Uses the helper classes in the evaluators sub package.
- *
- * eg Person(object<type> opr object)
- * Where valid type's are are defined as contants in Evaluator.
- *
- * Adding support for other types or operators is quite easy, just remmeber to add it to the getEvaluator method(s)
- * below, and also to the unit tests.
- * TODO: Should this be made dynamic, such that users can add their own types, a-la hibernate?
- */
-public class EvaluatorFactory {
- private static final EvaluatorFactory INSTANCE = new EvaluatorFactory();
-
- public static EvaluatorFactory getInstance() {
- return EvaluatorFactory.INSTANCE;
- }
-
- private EvaluatorFactory() {
-
- }
-
- public static Evaluator getEvaluator(final int type,
- final String operator) {
- Evaluator evaluator = null;
- if ( operator.equals( "==" ) ) {
- evaluator = getEvaluator( type,
- Evaluator.EQUAL );
- } else if ( operator.equals( "!=" ) ) {
- evaluator = getEvaluator( type,
- Evaluator.NOT_EQUAL );
- } else if ( operator.equals( "<" ) ) {
- evaluator = getEvaluator( type,
- Evaluator.LESS );
- } else if ( operator.equals( "<=" ) ) {
- evaluator = getEvaluator( type,
- Evaluator.LESS_OR_EQUAL );
- } else if ( operator.equals( ">" ) ) {
- evaluator = getEvaluator( type,
- Evaluator.GREATER );
- } else if ( operator.equals( ">=" ) ) {
- evaluator = getEvaluator( type,
- Evaluator.GREATER_OR_EQUAL );
- } else if ( operator.equals( "contains" ) ) {
- evaluator = getEvaluator( type,
- Evaluator.CONTAINS );
- } else if ( operator.equals( "matches" ) ) {
- evaluator = getEvaluator( type,
- Evaluator.MATCHES );
- } else if ( operator.equals( "excludes" ) ) {
- evaluator = getEvaluator( type,
- Evaluator.EXCLUDES );
- } else {
- throw new IllegalArgumentException( "Unknown operator: '" + operator + "'" );
- }
-
- return evaluator;
- }
-
- public static Evaluator getEvaluator(final int type,
- final int operator) {
- switch ( type ) {
- case Evaluator.STRING_TYPE :
- return StringFactory.getStringEvaluator( operator );
- case Evaluator.OBJECT_TYPE :
- return ObjectFactory.getObjectEvaluator( operator );
- case Evaluator.SHORT_TYPE :
- return ShortFactory.getShortEvaluator( operator );
- case Evaluator.INTEGER_TYPE :
- return IntegerFactory.getIntegerEvaluator( operator );
- case Evaluator.BOOLEAN_TYPE :
- return BooleanFactory.getBooleanEvaluator( operator );
- case Evaluator.DOUBLE_TYPE :
- return DoubleFactory.getDoubleEvaluator( operator );
- case Evaluator.CHAR_TYPE :
- return CharacterFactory.getCharacterEvaluator( operator );
- case Evaluator.BYTE_TYPE :
- return ByteFactory.getByteEvaluator( operator );
- case Evaluator.FLOAT_TYPE :
- return FloatFactory.getFloatEvaluator( operator );
- case Evaluator.LONG_TYPE :
- return LongFactory.getLongEvaluator( operator );
- case Evaluator.DATE_TYPE :
- return DateFactory.getDateEvaluator( operator );
- case Evaluator.ARRAY_TYPE :
- return ArrayFactory.getArrayEvaluator( operator );
- default :
- throw new RuntimeException( "Type '" + type + "' does not exist for BaseEvaluatorFactory" );
- }
- }
-
-}
\ No newline at end of file
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/FieldFactory.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/FieldFactory.java 2006-08-03 00:14:06 UTC (rev 5421)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/FieldFactory.java 2006-08-03 00:14:40 UTC (rev 5422)
@@ -31,55 +31,42 @@
}
public static FieldValue getFieldValue(final String value,
- int valueType) {
+ ValueType valueType) {
FieldValue field = null;
if ( value == null ) {
- valueType = Evaluator.NULL_TYPE;
+ valueType = ValueType.NULL_TYPE;
}
- switch ( valueType ) {
- case Evaluator.NULL_TYPE :
- field = new FieldImpl( null );
- break;
- case Evaluator.CHAR_TYPE :
- field = new FieldImpl( new Character( value.charAt( 0 ) ) );
- break;
- case Evaluator.BYTE_TYPE :
- field = new FieldImpl( new Byte( value ) );
- break;
- case Evaluator.SHORT_TYPE :
- field = new FieldImpl( new Short( value ) );
- break;
- case Evaluator.INTEGER_TYPE :
- field = new FieldImpl( new Integer( value ) );
- break;
- case Evaluator.LONG_TYPE :
- field = new FieldImpl( new Long( value ) );
- break;
- case Evaluator.FLOAT_TYPE :
- field = new FieldImpl( new Float( value ) );
- break;
- case Evaluator.DOUBLE_TYPE :
- field = new FieldImpl( new Double( value ) );
- break;
- case Evaluator.BOOLEAN_TYPE :
- field = new FieldImpl( new Boolean( value ) );
- break;
- case Evaluator.STRING_TYPE :
- field = new FieldImpl( value.intern() );
- break;
- case Evaluator.DATE_TYPE :
- //MN: I think its fine like this, seems to work !
- field = new FieldImpl( value );
- break;
- case Evaluator.ARRAY_TYPE :
- //MN: I think its fine like this.
- field = new FieldImpl( value );
- break;
- case Evaluator.OBJECT_TYPE :
- field = new FieldImpl( value );
- break;
+ if ( valueType == ValueType.NULL_TYPE ) {
+ field = new FieldImpl( null );
+ } else if ( valueType == ValueType.CHAR_TYPE ) {
+ field = new FieldImpl( new Character( value.charAt( 0 ) ) );
+ } else if ( valueType == ValueType.BYTE_TYPE ) {
+ field = new FieldImpl( new Byte( value ) );
+ } else if ( valueType == ValueType.SHORT_TYPE ) {
+ field = new FieldImpl( new Short( value ) );
+ } else if ( valueType == ValueType.INTEGER_TYPE ) {
+ field = new FieldImpl( new Integer( value ) );
+ } else if ( valueType == ValueType.LONG_TYPE ) {
+ field = new FieldImpl( new Long( value ) );
+ } else if ( valueType == ValueType.FLOAT_TYPE ) {
+ field = new FieldImpl( new Float( value ) );
+ } else if ( valueType == ValueType.DOUBLE_TYPE ) {
+ field = new FieldImpl( new Double( value ) );
+ } else if ( valueType == ValueType.BOOLEAN_TYPE ) {
+ field = new FieldImpl( new Boolean( value ) );
+ } else if ( valueType == ValueType.STRING_TYPE ) {
+ field = new FieldImpl( value.intern() );
+ } else if ( valueType == ValueType.DATE_TYPE ) {
+ //MN: I think its fine like this, seems to work !
+ field = new FieldImpl( value );
+ } else if ( valueType == ValueType.ARRAY_TYPE ) {
+ //MN: I think its fine like this.
+ field = new FieldImpl( value );
+ } else if ( valueType == ValueType.OBJECT_TYPE ) {
+ field = new FieldImpl( value );
}
+
return field;
}
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/FieldImpl.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/FieldImpl.java 2006-08-03 00:14:06 UTC (rev 5421)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/FieldImpl.java 2006-08-03 00:14:40 UTC (rev 5422)
@@ -24,7 +24,7 @@
/**
*
*/
- private static final long serialVersionUID = -5865571326405806524L;
+ private static final long serialVersionUID = 320;
private Object value;
public FieldImpl(final Object value) {
Added: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/ValueType.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/ValueType.java 2006-08-03 00:14:06 UTC (rev 5421)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/ValueType.java 2006-08-03 00:14:40 UTC (rev 5422)
@@ -0,0 +1,121 @@
+package org.drools.base;
+
+import java.io.Serializable;
+import java.util.Date;
+
+import org.drools.RuntimeDroolsException;
+import org.drools.base.evaluators.ArrayFactory;
+import org.drools.base.evaluators.BooleanFactory;
+import org.drools.base.evaluators.ByteFactory;
+import org.drools.base.evaluators.CharacterFactory;
+import org.drools.base.evaluators.DateFactory;
+import org.drools.base.evaluators.DoubleFactory;
+import org.drools.base.evaluators.FloatFactory;
+import org.drools.base.evaluators.IntegerFactory;
+import org.drools.base.evaluators.LongFactory;
+import org.drools.base.evaluators.ObjectFactory;
+import org.drools.base.evaluators.Operator;
+import org.drools.base.evaluators.ShortFactory;
+import org.drools.base.evaluators.StringFactory;
+import org.drools.spi.Evaluator;
+import org.drools.base.evaluators.EvaluatorFactory;
+import org.drools.facttemplates.FactTemplate;
+
+public class ValueType implements Serializable {
+
+ private static final long serialVersionUID = 320;
+
+ public static final ValueType NULL_TYPE = new ValueType( "null", null, null );
+ public static final ValueType CHAR_TYPE = new ValueType( "Character", Character.class, CharacterFactory.getInstance() );
+ public static final ValueType BYTE_TYPE = new ValueType( "Byte", Byte.class, ByteFactory.getInstance() );
+ public static final ValueType SHORT_TYPE = new ValueType( "Short", Short.class, ShortFactory.getInstance() );
+ public static final ValueType INTEGER_TYPE = new ValueType( "Integer", Integer.class, IntegerFactory.getInstance() );
+ public static final ValueType LONG_TYPE = new ValueType( "Long", Long.class, LongFactory.getInstance() );
+ public static final ValueType FLOAT_TYPE = new ValueType( "Float", Float.class, FloatFactory.getInstance() );
+ public static final ValueType DOUBLE_TYPE = new ValueType( "Double", Double.class, DoubleFactory.getInstance() );
+ public static final ValueType BOOLEAN_TYPE = new ValueType( "Boolean", Boolean.class, BooleanFactory.getInstance() );
+ public static final ValueType DATE_TYPE = new ValueType( "Date", Date.class, DateFactory.getInstance() );
+ public static final ValueType ARRAY_TYPE = new ValueType( "Array", Object[].class, ArrayFactory.getInstance() );
+ public static final ValueType STRING_TYPE = new ValueType( "String", String.class, StringFactory.getInstance() );
+ public static final ValueType OBJECT_TYPE = new ValueType( "Object", Object.class, ObjectFactory.getInstance() );
+ public static final ValueType FACTTEMPLATE_TYPE = new ValueType( "FactTemplate", FactTemplate.class, ObjectFactory.getInstance() );
+
+ private final String name;
+ private final Class classType;
+ private final EvaluatorFactory evaluatorFactory;
+
+ private ValueType(String name, Class classType, EvaluatorFactory evaluatorFactory) {
+ this.name = name;
+ this.classType = classType;
+ this.evaluatorFactory = evaluatorFactory;
+ }
+
+ private Object readResolve () throws java.io.ObjectStreamException
+ {
+ return determineValueType( this.classType );
+ }
+
+ public String getName() {
+ return this.name;
+ }
+
+ public Class getClassType() {
+ return this.classType;
+ }
+
+ public Evaluator getEvaluator(Operator operator) {
+ return this.evaluatorFactory.getEvaluator( operator );
+ }
+
+ public static ValueType determineValueType(Class clazz) {
+ if ( clazz == null ) {
+ return ValueType .NULL_TYPE;
+ } if ( clazz == FactTemplate.class ) {
+ return ValueType.FACTTEMPLATE_TYPE;
+ } else if ( clazz == Character.class ) {
+ return ValueType.CHAR_TYPE;
+ } else if ( clazz == Byte.class ) {
+ return ValueType .BYTE_TYPE;
+ } else if ( clazz == Short.class ) {
+ return ValueType .SHORT_TYPE;
+ } else if ( clazz == Integer.class ) {
+ return ValueType .INTEGER_TYPE;
+ } else if ( clazz == Long.class ) {
+ return ValueType .LONG_TYPE;
+ } else if ( clazz == Float.class ) {
+ return ValueType .FLOAT_TYPE;
+ } else if ( clazz == Double.class ) {
+ return ValueType .DOUBLE_TYPE;
+ } else if ( clazz == Boolean.class ) {
+ return ValueType .BOOLEAN_TYPE;
+ } else if ( clazz == java.sql.Date.class ) {
+ return ValueType .DATE_TYPE;
+ } else if ( clazz == java.util.Date.class ) {
+ return ValueType .DATE_TYPE;
+ } else if ( clazz.isAssignableFrom( Object[].class ) ) {
+ return ValueType .ARRAY_TYPE;
+ } else if ( clazz == String.class ) {
+ return ValueType .STRING_TYPE;
+ } else if ( clazz instanceof Object ) {
+ return ValueType .OBJECT_TYPE;
+ }
+ throw new RuntimeDroolsException( "unable to determine ValueType for Class [" + clazz + "]" );
+ }
+
+ public String toString() {
+ return "ValueType = '" + this.name + "'";
+ }
+
+ public int hashCode() {
+ return this.name.hashCode();
+ }
+
+ public boolean equals(Object object) {
+ if ( object == this ) {
+ return true;
+ }
+
+ return false;
+ }
+
+}
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/evaluators/ArrayFactory.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/evaluators/ArrayFactory.java 2006-08-03 00:14:06 UTC (rev 5421)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/evaluators/ArrayFactory.java 2006-08-03 00:14:40 UTC (rev 5422)
@@ -19,37 +19,58 @@
import java.util.Arrays;
import org.drools.base.BaseEvaluator;
+import org.drools.base.ValueType;
+import org.drools.base.evaluators.ShortFactory.ShortEqualEvaluator;
+import org.drools.base.evaluators.ShortFactory.ShortGreaterEvaluator;
+import org.drools.base.evaluators.ShortFactory.ShortGreaterOrEqualEvaluator;
+import org.drools.base.evaluators.ShortFactory.ShortLessEvaluator;
+import org.drools.base.evaluators.ShortFactory.ShortLessOrEqualEvaluator;
+import org.drools.base.evaluators.ShortFactory.ShortNotEqualEvaluator;
import org.drools.spi.Evaluator;
/**
* For handling simple (non collection) array types.
* @author Michael Neale
*/
-public class ArrayFactory {
-
- public static Evaluator getArrayEvaluator(final int operator) {
- switch ( operator ) {
- case Evaluator.EQUAL :
- return ArrayEqualEvaluator.INSTANCE;
- case Evaluator.NOT_EQUAL :
- return ArrayNotEqualEvaluator.INSTANCE;
- case Evaluator.CONTAINS :
- return ArrayContainsEvaluator.INSTANCE;
- default :
- throw new RuntimeException( "Operator '" + operator + "' does not exist for ArrayEvaluator" );
+public class ArrayFactory implements EvaluatorFactory {
+ private static EvaluatorFactory INSTANCE = new ArrayFactory();
+
+ private ArrayFactory() {
+
+ }
+
+ public static EvaluatorFactory getInstance() {
+ if ( INSTANCE == null ) {
+ INSTANCE = new ArrayFactory();
}
+ return INSTANCE;
}
+ public Evaluator getEvaluator(final Operator operator) {
+ if ( operator == Operator.EQUAL ) {
+ return ArrayEqualEvaluator.INSTANCE;
+ } else if ( operator == Operator.NOT_EQUAL ) {
+ return ArrayNotEqualEvaluator.INSTANCE;
+ } else if ( operator == Operator.LESS ) {
+ return ArrayContainsEvaluator.INSTANCE;
+ } else if ( operator == Operator.CONTAINS) {
+ return ArrayContainsEvaluator.INSTANCE;
+ } else {
+ throw new RuntimeException( "Operator '" + operator + "' does not exist for ArrayEvaluator" );
+ }
+ }
+
+
static class ArrayEqualEvaluator extends BaseEvaluator {
/**
*
*/
- private static final long serialVersionUID = -3988506265461766585L;
+ private static final long serialVersionUID = 320;
public final static Evaluator INSTANCE = new ArrayEqualEvaluator();
private ArrayEqualEvaluator() {
- super( Evaluator.ARRAY_TYPE,
- Evaluator.EQUAL );
+ super( ValueType.ARRAY_TYPE,
+ Operator.EQUAL );
}
public boolean evaluate(final Object object1,
@@ -66,12 +87,12 @@
/**
*
*/
- private static final long serialVersionUID = 4021357517502692236L;
+ private static final long serialVersionUID = 320;
public final static Evaluator INSTANCE = new ArrayNotEqualEvaluator();
private ArrayNotEqualEvaluator() {
- super( Evaluator.ARRAY_TYPE,
- Evaluator.NOT_EQUAL );
+ super( ValueType.ARRAY_TYPE,
+ Operator.NOT_EQUAL );
}
public boolean evaluate(final Object object1,
@@ -89,12 +110,12 @@
/**
*
*/
- private static final long serialVersionUID = -4541491453186891644L;
+ private static final long serialVersionUID = 320;
public final static Evaluator INSTANCE = new ArrayContainsEvaluator();
private ArrayContainsEvaluator() {
- super( Evaluator.ARRAY_TYPE,
- Evaluator.CONTAINS );
+ super( ValueType.ARRAY_TYPE,
+ Operator.CONTAINS );
}
public boolean evaluate(final Object object1,
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/evaluators/BooleanFactory.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/evaluators/BooleanFactory.java 2006-08-03 00:14:06 UTC (rev 5421)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/evaluators/BooleanFactory.java 2006-08-03 00:14:40 UTC (rev 5422)
@@ -17,31 +17,50 @@
*/
import org.drools.base.BaseEvaluator;
+import org.drools.base.ValueType;
+import org.drools.base.evaluators.ShortFactory.ShortEqualEvaluator;
+import org.drools.base.evaluators.ShortFactory.ShortGreaterEvaluator;
+import org.drools.base.evaluators.ShortFactory.ShortGreaterOrEqualEvaluator;
+import org.drools.base.evaluators.ShortFactory.ShortLessEvaluator;
+import org.drools.base.evaluators.ShortFactory.ShortLessOrEqualEvaluator;
+import org.drools.base.evaluators.ShortFactory.ShortNotEqualEvaluator;
import org.drools.spi.Evaluator;
-public class BooleanFactory {
-
- public static Evaluator getBooleanEvaluator(final int operator) {
- switch ( operator ) {
- case Evaluator.EQUAL :
- return BooleanEqualEvaluator.INSTANCE;
- case Evaluator.NOT_EQUAL :
- return BooleanNotEqualEvaluator.INSTANCE;
- default :
- throw new RuntimeException( "Operator '" + operator + "' does not exist for BooleanEvaluator" );
+public class BooleanFactory implements EvaluatorFactory {
+ private static EvaluatorFactory INSTANCE = new BooleanFactory();
+
+ private BooleanFactory() {
+
+ }
+
+ public static EvaluatorFactory getInstance() {
+ if ( INSTANCE == null ) {
+ INSTANCE = new BooleanFactory();
}
+ return INSTANCE;
}
+
+ public Evaluator getEvaluator(final Operator operator) {
+ if ( operator == Operator.EQUAL ) {
+ return BooleanEqualEvaluator.INSTANCE;
+ } else if ( operator == Operator.NOT_EQUAL ) {
+ return BooleanNotEqualEvaluator.INSTANCE;
+ } else {
+ throw new RuntimeException( "Operator '" + operator + "' does not exist for BooleanEvaluator" );
+ }
+ }
+
static class BooleanEqualEvaluator extends BaseEvaluator {
/**
*
*/
- private static final long serialVersionUID = 7891019213259874134L;
+ private static final long serialVersionUID = 320;
private final static Evaluator INSTANCE = new BooleanEqualEvaluator();
private BooleanEqualEvaluator() {
- super( Evaluator.BOOLEAN_TYPE,
- Evaluator.EQUAL );
+ super( ValueType.BOOLEAN_TYPE,
+ Operator.EQUAL );
}
public boolean evaluate(final Object object1,
@@ -61,12 +80,12 @@
/**
*
*/
- private static final long serialVersionUID = -451325761056297938L;
+ private static final long serialVersionUID = 320;
public final static Evaluator INSTANCE = new BooleanNotEqualEvaluator();
private BooleanNotEqualEvaluator() {
- super( Evaluator.BOOLEAN_TYPE,
- Evaluator.NOT_EQUAL );
+ super( ValueType.BOOLEAN_TYPE,
+ Operator.NOT_EQUAL );
}
public boolean evaluate(final Object object1,
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/evaluators/ByteFactory.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/evaluators/ByteFactory.java 2006-08-03 00:14:06 UTC (rev 5421)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/evaluators/ByteFactory.java 2006-08-03 00:14:40 UTC (rev 5422)
@@ -17,29 +17,48 @@
*/
import org.drools.base.BaseEvaluator;
+import org.drools.base.ValueType;
+import org.drools.base.evaluators.ShortFactory.ShortEqualEvaluator;
+import org.drools.base.evaluators.ShortFactory.ShortGreaterEvaluator;
+import org.drools.base.evaluators.ShortFactory.ShortGreaterOrEqualEvaluator;
+import org.drools.base.evaluators.ShortFactory.ShortLessEvaluator;
+import org.drools.base.evaluators.ShortFactory.ShortLessOrEqualEvaluator;
+import org.drools.base.evaluators.ShortFactory.ShortNotEqualEvaluator;
import org.drools.spi.Evaluator;
-public class ByteFactory {
-
- public static Evaluator getByteEvaluator(final int operator) {
- switch ( operator ) {
- case Evaluator.EQUAL :
- return ByteEqualEvaluator.INSTANCE;
- case Evaluator.NOT_EQUAL :
- return ByteNotEqualEvaluator.INSTANCE;
- case Evaluator.LESS :
- return ByteLessEvaluator.INSTANCE;
- case Evaluator.LESS_OR_EQUAL :
- return ByteLessOrEqualEvaluator.INSTANCE;
- case Evaluator.GREATER :
- return ByteGreaterEvaluator.INSTANCE;
- case Evaluator.GREATER_OR_EQUAL :
- return ByteGreaterOrEqualEvaluator.INSTANCE;
- default :
- throw new RuntimeException( "Operator '" + operator + "' does not exist for ByteEvaluator" );
+public class ByteFactory implements EvaluatorFactory {
+ private static EvaluatorFactory INSTANCE = new ByteFactory();
+
+ private ByteFactory() {
+
+ }
+
+ public static EvaluatorFactory getInstance() {
+ if ( INSTANCE == null ) {
+ INSTANCE = new ByteFactory();
}
+ return INSTANCE;
}
+ public Evaluator getEvaluator(final Operator operator) {
+ if ( operator == Operator.EQUAL ) {
+ return ByteEqualEvaluator.INSTANCE;
+ } else if ( operator == Operator.NOT_EQUAL ) {
+ return ByteNotEqualEvaluator.INSTANCE;
+ } else if ( operator == Operator.LESS ) {
+ return ByteLessEvaluator.INSTANCE;
+ } else if ( operator == Operator.LESS_OR_EQUAL ) {
+ return ByteLessOrEqualEvaluator.INSTANCE;
+ } else if ( operator == Operator.GREATER ) {
+ return ByteGreaterEvaluator.INSTANCE;
+ } else if ( operator == Operator.GREATER_OR_EQUAL ) {
+ return ByteGreaterOrEqualEvaluator.INSTANCE;
+ } else {
+ throw new RuntimeException( "Operator '" + operator + "' does not exist for ByteEvaluator" );
+ }
+ }
+
+
static class ByteEqualEvaluator extends BaseEvaluator {
/**
*
@@ -48,8 +67,8 @@
public final static Evaluator INSTANCE = new ByteEqualEvaluator();
private ByteEqualEvaluator() {
- super( Evaluator.BYTE_TYPE,
- Evaluator.EQUAL );
+ super( ValueType.BYTE_TYPE,
+ Operator.EQUAL );
}
public boolean evaluate(final Object object1,
@@ -73,8 +92,8 @@
public final static Evaluator INSTANCE = new ByteNotEqualEvaluator();
private ByteNotEqualEvaluator() {
- super( Evaluator.BYTE_TYPE,
- Evaluator.NOT_EQUAL );
+ super( ValueType.BYTE_TYPE,
+ Operator.NOT_EQUAL );
}
public boolean evaluate(final Object object1,
@@ -98,8 +117,8 @@
public final static Evaluator INSTANCE = new ByteLessEvaluator();
private ByteLessEvaluator() {
- super( Evaluator.BYTE_TYPE,
- Evaluator.LESS );
+ super( ValueType.BYTE_TYPE,
+ Operator.LESS );
}
public boolean evaluate(final Object object1,
@@ -120,8 +139,8 @@
public final static Evaluator INSTANCE = new ByteLessOrEqualEvaluator();
private ByteLessOrEqualEvaluator() {
- super( Evaluator.BYTE_TYPE,
- Evaluator.LESS_OR_EQUAL );
+ super( ValueType.BYTE_TYPE,
+ Operator.LESS_OR_EQUAL );
}
public boolean evaluate(final Object object1,
@@ -142,8 +161,8 @@
public final static Evaluator INSTANCE = new ByteGreaterEvaluator();
private ByteGreaterEvaluator() {
- super( Evaluator.BYTE_TYPE,
- Evaluator.GREATER );
+ super( ValueType.BYTE_TYPE,
+ Operator.GREATER );
}
public boolean evaluate(final Object object1,
@@ -164,8 +183,8 @@
private final static Evaluator INSTANCE = new ByteGreaterOrEqualEvaluator();
private ByteGreaterOrEqualEvaluator() {
- super( Evaluator.BYTE_TYPE,
- Evaluator.GREATER_OR_EQUAL );
+ super( ValueType.BYTE_TYPE,
+ Operator.GREATER_OR_EQUAL );
}
public boolean evaluate(final Object object1,
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/evaluators/CharacterFactory.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/evaluators/CharacterFactory.java 2006-08-03 00:14:06 UTC (rev 5421)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/evaluators/CharacterFactory.java 2006-08-03 00:14:40 UTC (rev 5422)
@@ -17,39 +17,58 @@
*/
import org.drools.base.BaseEvaluator;
+import org.drools.base.ValueType;
+import org.drools.base.evaluators.ShortFactory.ShortEqualEvaluator;
+import org.drools.base.evaluators.ShortFactory.ShortGreaterEvaluator;
+import org.drools.base.evaluators.ShortFactory.ShortGreaterOrEqualEvaluator;
+import org.drools.base.evaluators.ShortFactory.ShortLessEvaluator;
+import org.drools.base.evaluators.ShortFactory.ShortLessOrEqualEvaluator;
+import org.drools.base.evaluators.ShortFactory.ShortNotEqualEvaluator;
import org.drools.spi.Evaluator;
-public class CharacterFactory {
-
- public static Evaluator getCharacterEvaluator(final int operator) {
- switch ( operator ) {
- case Evaluator.EQUAL :
- return CharacterEqualEvaluator.INSTANCE;
- case Evaluator.NOT_EQUAL :
- return CharacterNotEqualEvaluator.INSTANCE;
- case Evaluator.LESS :
- return CharacterLessEvaluator.INSTANCE;
- case Evaluator.LESS_OR_EQUAL :
- return CharacterLessOrEqualEvaluator.INSTANCE;
- case Evaluator.GREATER :
- return CharacterGreaterEvaluator.INSTANCE;
- case Evaluator.GREATER_OR_EQUAL :
- return CharacterGreaterOrEqualEvaluator.INSTANCE;
- default :
- throw new RuntimeException( "Operator '" + operator + "' does not exist for CharacterEvaluator" );
+public class CharacterFactory implements EvaluatorFactory {
+ private static EvaluatorFactory INSTANCE = new CharacterFactory();
+
+ private CharacterFactory() {
+
+ }
+
+ public static EvaluatorFactory getInstance() {
+ if ( INSTANCE == null ) {
+ INSTANCE = new CharacterFactory();
}
+ return INSTANCE;
}
+ public Evaluator getEvaluator(final Operator operator) {
+ if ( operator == Operator.EQUAL ) {
+ return CharacterEqualEvaluator.INSTANCE;
+ } else if ( operator == Operator.NOT_EQUAL ) {
+ return CharacterNotEqualEvaluator.INSTANCE;
+ } else if ( operator == Operator.LESS ) {
+ return CharacterLessEvaluator.INSTANCE;
+ } else if ( operator == Operator.LESS_OR_EQUAL ) {
+ return CharacterLessOrEqualEvaluator.INSTANCE;
+ } else if ( operator == Operator.GREATER ) {
+ return CharacterGreaterEvaluator.INSTANCE;
+ } else if ( operator == Operator.GREATER_OR_EQUAL ) {
+ return CharacterGreaterOrEqualEvaluator.INSTANCE;
+ } else {
+ throw new RuntimeException( "Operator '" + operator + "' does not exist for CharacterEvaluator" );
+ }
+ }
+
+
static class CharacterEqualEvaluator extends BaseEvaluator {
/**
*
*/
- private static final long serialVersionUID = 8766645269581805269L;
+ private static final long serialVersionUID = 320;
public final static Evaluator INSTANCE = new CharacterEqualEvaluator();
private CharacterEqualEvaluator() {
- super( Evaluator.CHAR_TYPE,
- Evaluator.EQUAL );
+ super( ValueType.CHAR_TYPE,
+ Operator.EQUAL );
}
public boolean evaluate(final Object object1,
@@ -69,12 +88,12 @@
/**
*
*/
- private static final long serialVersionUID = 8010152240062213440L;
+ private static final long serialVersionUID = 320;
public final static Evaluator INSTANCE = new CharacterNotEqualEvaluator();
private CharacterNotEqualEvaluator() {
- super( Evaluator.CHAR_TYPE,
- Evaluator.NOT_EQUAL );
+ super( ValueType.CHAR_TYPE,
+ Operator.NOT_EQUAL );
}
public boolean evaluate(final Object object1,
@@ -94,12 +113,12 @@
/**
*
*/
- private static final long serialVersionUID = 5236106171143422684L;
+ private static final long serialVersionUID = 320;
public final static Evaluator INSTANCE = new CharacterLessEvaluator();
private CharacterLessEvaluator() {
- super( Evaluator.CHAR_TYPE,
- Evaluator.LESS );
+ super( ValueType.CHAR_TYPE,
+ Operator.LESS );
}
public boolean evaluate(final Object object1,
@@ -116,12 +135,12 @@
/**
*
*/
- private static final long serialVersionUID = 8064001658173531244L;
+ private static final long serialVersionUID = 320;
public final static Evaluator INSTANCE = new CharacterLessOrEqualEvaluator();
private CharacterLessOrEqualEvaluator() {
- super( Evaluator.CHAR_TYPE,
- Evaluator.LESS_OR_EQUAL );
+ super( ValueType.CHAR_TYPE,
+ Operator.LESS_OR_EQUAL );
}
public boolean evaluate(final Object object1,
@@ -138,12 +157,12 @@
/**
*
*/
- private static final long serialVersionUID = 7622623046585316842L;
+ private static final long serialVersionUID = 320;
public final static Evaluator INSTANCE = new CharacterGreaterEvaluator();
private CharacterGreaterEvaluator() {
- super( Evaluator.CHAR_TYPE,
- Evaluator.GREATER );
+ super( ValueType.CHAR_TYPE,
+ Operator.GREATER );
}
public boolean evaluate(final Object object1,
@@ -160,12 +179,12 @@
/**
*
*/
- private static final long serialVersionUID = 8587935558617586015L;
+ private static final long serialVersionUID = 320;
private final static Evaluator INSTANCE = new CharacterGreaterOrEqualEvaluator();
private CharacterGreaterOrEqualEvaluator() {
- super( Evaluator.CHAR_TYPE,
- Evaluator.GREATER_OR_EQUAL );
+ super( ValueType.CHAR_TYPE,
+ Operator.GREATER_OR_EQUAL );
}
public boolean evaluate(final Object object1,
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/evaluators/DateFactory.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/evaluators/DateFactory.java 2006-08-03 00:14:06 UTC (rev 5421)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/evaluators/DateFactory.java 2006-08-03 00:14:40 UTC (rev 5422)
@@ -21,6 +21,13 @@
import java.util.Date;
import org.drools.base.BaseEvaluator;
+import org.drools.base.ValueType;
+import org.drools.base.evaluators.ShortFactory.ShortEqualEvaluator;
+import org.drools.base.evaluators.ShortFactory.ShortGreaterEvaluator;
+import org.drools.base.evaluators.ShortFactory.ShortGreaterOrEqualEvaluator;
+import org.drools.base.evaluators.ShortFactory.ShortLessEvaluator;
+import org.drools.base.evaluators.ShortFactory.ShortLessOrEqualEvaluator;
+import org.drools.base.evaluators.ShortFactory.ShortNotEqualEvaluator;
import org.drools.spi.Evaluator;
/**
@@ -35,40 +42,54 @@
*
* @author Michael Neale
*/
-public class DateFactory {
+public class DateFactory
+ implements
+ EvaluatorFactory {
- private static final String DEFAULT_FORMAT_MASK = "dd-MMM-yyyy";
- private static final String DATE_FORMAT_MASK = getDateFormatMask();
+ private static final String DEFAULT_FORMAT_MASK = "dd-MMM-yyyy";
+ private static final String DATE_FORMAT_MASK = getDateFormatMask();
- public static Evaluator getDateEvaluator(final int operator) {
- switch ( operator ) {
- case Evaluator.EQUAL :
- return DateEqualEvaluator.INSTANCE;
- case Evaluator.NOT_EQUAL :
- return DateNotEqualEvaluator.INSTANCE;
- case Evaluator.LESS :
- return DateLessEvaluator.INSTANCE;
- case Evaluator.LESS_OR_EQUAL :
- return DateLessOrEqualEvaluator.INSTANCE;
- case Evaluator.GREATER :
- return DateGreaterEvaluator.INSTANCE;
- case Evaluator.GREATER_OR_EQUAL :
- return DateGreaterOrEqualEvaluator.INSTANCE;
- default :
- throw new RuntimeException( "Operator '" + operator + "' does not exist for DateEvaluator" );
+ private static EvaluatorFactory INSTANCE = new DateFactory();
+
+ private DateFactory() {
+
+ }
+
+ public static EvaluatorFactory getInstance() {
+ if ( INSTANCE == null ) {
+ INSTANCE = new DateFactory();
}
+ return INSTANCE;
}
+ public Evaluator getEvaluator(final Operator operator) {
+ if ( operator == Operator.EQUAL ) {
+ return DateEqualEvaluator.INSTANCE;
+ } else if ( operator == Operator.NOT_EQUAL ) {
+ return DateNotEqualEvaluator.INSTANCE;
+ } else if ( operator == Operator.LESS ) {
+ return DateLessEvaluator.INSTANCE;
+ } else if ( operator == Operator.LESS_OR_EQUAL ) {
+ return DateLessOrEqualEvaluator.INSTANCE;
+ } else if ( operator == Operator.GREATER ) {
+ return DateGreaterEvaluator.INSTANCE;
+ } else if ( operator == Operator.GREATER_OR_EQUAL ) {
+ return DateGreaterOrEqualEvaluator.INSTANCE;
+ } else {
+ throw new RuntimeException( "Operator '" + operator + "' does not exist for DateEvaluator" );
+ }
+ }
+
static class DateEqualEvaluator extends BaseEvaluator {
/**
*
*/
- private static final long serialVersionUID = -7248999526793624416L;
+ private static final long serialVersionUID = 320;
public final static Evaluator INSTANCE = new DateEqualEvaluator();
private DateEqualEvaluator() {
- super( Evaluator.DATE_TYPE,
- Evaluator.EQUAL );
+ super( ValueType.DATE_TYPE,
+ Operator.EQUAL );
}
public boolean evaluate(final Object object1,
@@ -97,12 +118,12 @@
/**
*
*/
- private static final long serialVersionUID = -999744404766802074L;
+ private static final long serialVersionUID = 320;
public final static Evaluator INSTANCE = new DateNotEqualEvaluator();
private DateNotEqualEvaluator() {
- super( Evaluator.DATE_TYPE,
- Evaluator.NOT_EQUAL );
+ super( ValueType.DATE_TYPE,
+ Operator.NOT_EQUAL );
}
public boolean evaluate(final Object object1,
@@ -130,12 +151,12 @@
/**
*
*/
- private static final long serialVersionUID = -4362504881470806670L;
+ private static final long serialVersionUID = 320;
public final static Evaluator INSTANCE = new DateLessEvaluator();
private DateLessEvaluator() {
- super( Evaluator.DATE_TYPE,
- Evaluator.LESS );
+ super( ValueType.DATE_TYPE,
+ Operator.LESS );
}
public boolean evaluate(final Object object1,
@@ -157,12 +178,12 @@
/**
*
*/
- private static final long serialVersionUID = -1545183091770593710L;
+ private static final long serialVersionUID = 320;
public final static Evaluator INSTANCE = new DateLessOrEqualEvaluator();
private DateLessOrEqualEvaluator() {
- super( Evaluator.DATE_TYPE,
- Evaluator.LESS_OR_EQUAL );
+ super( ValueType.DATE_TYPE,
+ Operator.LESS_OR_EQUAL );
}
public boolean evaluate(final Object object1,
@@ -184,12 +205,12 @@
/**
*
*/
- private static final long serialVersionUID = 1450531664603794369L;
+ private static final long serialVersionUID = 320;
public final static Evaluator INSTANCE = new DateGreaterEvaluator();
private DateGreaterEvaluator() {
- super( Evaluator.DATE_TYPE,
- Evaluator.GREATER );
+ super( ValueType.DATE_TYPE,
+ Operator.GREATER );
}
public boolean evaluate(final Object object1,
@@ -211,12 +232,12 @@
/**
*
*/
- private static final long serialVersionUID = -6149840707848164332L;
+ private static final long serialVersionUID = 320;
private final static Evaluator INSTANCE = new DateGreaterOrEqualEvaluator();
private DateGreaterOrEqualEvaluator() {
- super( Evaluator.DATE_TYPE,
- Evaluator.GREATER_OR_EQUAL );
+ super( ValueType.DATE_TYPE,
+ Operator.GREATER_OR_EQUAL );
}
public boolean evaluate(final Object object1,
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/evaluators/DoubleFactory.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/evaluators/DoubleFactory.java 2006-08-03 00:14:06 UTC (rev 5421)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/evaluators/DoubleFactory.java 2006-08-03 00:14:40 UTC (rev 5422)
@@ -17,26 +17,38 @@
*/
import org.drools.base.BaseEvaluator;
+import org.drools.base.ValueType;
import org.drools.spi.Evaluator;
-public class DoubleFactory {
+public class DoubleFactory implements EvaluatorFactory {
+ private static EvaluatorFactory INSTANCE = new DoubleFactory();
+
+ private DoubleFactory() {
+
+ }
+
+ public static EvaluatorFactory getInstance() {
+ if ( INSTANCE == null ) {
+ INSTANCE = new DoubleFactory();
+ }
+ return INSTANCE;
+ }
- public static Evaluator getDoubleEvaluator(final int operator) {
- switch ( operator ) {
- case Evaluator.EQUAL :
- return DoubleEqualEvaluator.INSTANCE;
- case Evaluator.NOT_EQUAL :
- return DoubleNotEqualEvaluator.INSTANCE;
- case Evaluator.LESS :
- return DoubleLessEvaluator.INSTANCE;
- case Evaluator.LESS_OR_EQUAL :
- return DoubleLessOrEqualEvaluator.INSTANCE;
- case Evaluator.GREATER :
- return DoubleGreaterEvaluator.INSTANCE;
- case Evaluator.GREATER_OR_EQUAL :
- return DoubleGreaterOrEqualEvaluator.INSTANCE;
- default :
- throw new RuntimeException( "Operator '" + operator + "' does not exist for DoubleEvaluator" );
+ public Evaluator getEvaluator(final Operator operator) {
+ if ( operator == Operator.EQUAL ) {
+ return DoubleEqualEvaluator.INSTANCE;
+ } else if ( operator == Operator.NOT_EQUAL ) {
+ return DoubleNotEqualEvaluator.INSTANCE;
+ } else if ( operator == Operator.LESS ) {
+ return DoubleLessEvaluator.INSTANCE;
+ } else if ( operator == Operator.LESS_OR_EQUAL ) {
+ return DoubleLessOrEqualEvaluator.INSTANCE;
+ } else if ( operator == Operator.GREATER ) {
+ return DoubleGreaterEvaluator.INSTANCE;
+ } else if ( operator == Operator.GREATER_OR_EQUAL ) {
+ return DoubleGreaterOrEqualEvaluator.INSTANCE;
+ } else {
+ throw new RuntimeException( "Operator '" + operator + "' does not exist for DoubleEvaluator" );
}
}
@@ -44,12 +56,12 @@
/**
*
*/
- private static final long serialVersionUID = 8638265291388692160L;
+ private static final long serialVersionUID = 320;
public final static Evaluator INSTANCE = new DoubleEqualEvaluator();
private DoubleEqualEvaluator() {
- super( Evaluator.DOUBLE_TYPE,
- Evaluator.EQUAL );
+ super( ValueType.DOUBLE_TYPE,
+ Operator.EQUAL );
}
public boolean evaluate(final Object object1,
@@ -69,12 +81,12 @@
/**
*
*/
- private static final long serialVersionUID = -1605810860861480665L;
+ private static final long serialVersionUID = 320;
public final static Evaluator INSTANCE = new DoubleNotEqualEvaluator();
private DoubleNotEqualEvaluator() {
- super( Evaluator.DOUBLE_TYPE,
- Evaluator.NOT_EQUAL );
+ super( ValueType.DOUBLE_TYPE,
+ Operator.NOT_EQUAL );
}
public boolean evaluate(final Object object1,
@@ -94,12 +106,12 @@
/**
*
*/
- private static final long serialVersionUID = -6256590818217451743L;
+ private static final long serialVersionUID = 320;
public final static Evaluator INSTANCE = new DoubleLessEvaluator();
private DoubleLessEvaluator() {
- super( Evaluator.DOUBLE_TYPE,
- Evaluator.LESS );
+ super( ValueType.DOUBLE_TYPE,
+ Operator.LESS );
}
public boolean evaluate(final Object object1,
@@ -116,12 +128,12 @@
/**
*
*/
- private static final long serialVersionUID = -3663317930533546094L;
+ private static final long serialVersionUID = 320;
public final static Evaluator INSTANCE = new DoubleLessOrEqualEvaluator();
private DoubleLessOrEqualEvaluator() {
- super( Evaluator.DOUBLE_TYPE,
- Evaluator.LESS_OR_EQUAL );
+ super( ValueType.DOUBLE_TYPE,
+ Operator.LESS_OR_EQUAL );
}
public boolean evaluate(final Object object1,
@@ -138,12 +150,12 @@
/**
*
*/
- private static final long serialVersionUID = 1420842292058943594L;
+ private static final long serialVersionUID = 320;
public final static Evaluator INSTANCE = new DoubleGreaterEvaluator();
private DoubleGreaterEvaluator() {
- super( Evaluator.DOUBLE_TYPE,
- Evaluator.GREATER );
+ super( ValueType.DOUBLE_TYPE,
+ Operator.GREATER );
}
public boolean evaluate(final Object object1,
@@ -160,12 +172,12 @@
/**
*
*/
- private static final long serialVersionUID = 468558955316190757L;
+ private static final long serialVersionUID = 320;
private final static Evaluator INSTANCE = new DoubleGreaterOrEqualEvaluator();
private DoubleGreaterOrEqualEvaluator() {
- super( Evaluator.DOUBLE_TYPE,
- Evaluator.GREATER_OR_EQUAL );
+ super( ValueType.DOUBLE_TYPE,
+ Operator.GREATER_OR_EQUAL );
}
public boolean evaluate(final Object object1,
Added: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/evaluators/EvaluatorFactory.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/evaluators/EvaluatorFactory.java 2006-08-03 00:14:06 UTC (rev 5421)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/evaluators/EvaluatorFactory.java 2006-08-03 00:14:40 UTC (rev 5422)
@@ -0,0 +1,9 @@
+package org.drools.base.evaluators;
+
+import java.io.Serializable;
+
+import org.drools.spi.Evaluator;
+
+public interface EvaluatorFactory extends Serializable{
+ public Evaluator getEvaluator(Operator operator);
+}
Added: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/evaluators/FactTemplateFactory.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/evaluators/FactTemplateFactory.java 2006-08-03 00:14:06 UTC (rev 5421)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/evaluators/FactTemplateFactory.java 2006-08-03 00:14:40 UTC (rev 5422)
@@ -0,0 +1,110 @@
+package org.drools.base.evaluators;
+
+/*
+ * Copyright 2005 JBoss Inc
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import org.drools.base.BaseEvaluator;
+import org.drools.base.ValueType;
+import org.drools.base.evaluators.DoubleFactory.DoubleEqualEvaluator;
+import org.drools.base.evaluators.DoubleFactory.DoubleGreaterEvaluator;
+import org.drools.base.evaluators.DoubleFactory.DoubleGreaterOrEqualEvaluator;
+import org.drools.base.evaluators.DoubleFactory.DoubleLessEvaluator;
+import org.drools.base.evaluators.DoubleFactory.DoubleLessOrEqualEvaluator;
+import org.drools.base.evaluators.DoubleFactory.DoubleNotEqualEvaluator;
+import org.drools.spi.Evaluator;
+
+/**
+ * This is the misc "bucket" evaluator factory for objects.
+ * It is fairly limited in operations,
+ * and what operations are available are dependent on the exact type.
+ *
+ * @author Michael Neale
+ */
+public class FactTemplateFactory implements EvaluatorFactory {
+ private static EvaluatorFactory INSTANCE = new FactTemplateFactory();
+
+ private FactTemplateFactory() {
+
+ }
+
+ public static EvaluatorFactory getInstance() {
+ if ( INSTANCE == null ) {
+ INSTANCE = new FactTemplateFactory();
+ }
+ return INSTANCE;
+ }
+
+ public Evaluator getEvaluator(final Operator operator) {
+ if ( operator == Operator.EQUAL ) {
+ return FactTemplateEqualEvaluator.INSTANCE;
+ } else if ( operator == Operator.NOT_EQUAL ) {
+ return FactTemplateNotEqualEvaluator.INSTANCE;
+ } else {
+ throw new RuntimeException( "Operator '" + operator + "' does not exist for FactTemplateEvaluator" );
+ }
+ }
+
+ static class FactTemplateEqualEvaluator extends BaseEvaluator {
+ /**
+ *
+ */
+ private static final long serialVersionUID = 320;
+ public final static Evaluator INSTANCE = new FactTemplateEqualEvaluator();
+
+ private FactTemplateEqualEvaluator() {
+ super( ValueType.FACTTEMPLATE_TYPE,
+ Operator.EQUAL );
+ }
+
+ public boolean evaluate(final Object object1,
+ final Object object2) {
+ if ( object1 == null ) {
+ return object2 == null;
+ }
+ return object1.equals( object2 );
+ }
+
+ public String toString() {
+ return "FactTemplate ==";
+ }
+ }
+
+ static class FactTemplateNotEqualEvaluator extends BaseEvaluator {
+ /**
+ *
+ */
+ private static final long serialVersionUID = 320;
+ public final static Evaluator INSTANCE = new FactTemplateNotEqualEvaluator();
+
+ private FactTemplateNotEqualEvaluator() {
+ super( ValueType.FACTTEMPLATE_TYPE,
+ Operator.NOT_EQUAL );
+ }
+
+ public boolean evaluate(final Object object1,
+ final Object object2) {
+ if ( object1 == null ) {
+ return !(object2 == null);
+ }
+
+ return !object1.equals( object2 );
+ }
+
+ public String toString() {
+ return "FactTemplate !=";
+ }
+ }
+}
\ No newline at end of file
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/evaluators/FloatFactory.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/evaluators/FloatFactory.java 2006-08-03 00:14:06 UTC (rev 5421)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/evaluators/FloatFactory.java 2006-08-03 00:14:40 UTC (rev 5422)
@@ -17,39 +17,58 @@
*/
import org.drools.base.BaseEvaluator;
+import org.drools.base.ValueType;
+import org.drools.base.evaluators.ShortFactory.ShortEqualEvaluator;
+import org.drools.base.evaluators.ShortFactory.ShortGreaterEvaluator;
+import org.drools.base.evaluators.ShortFactory.ShortGreaterOrEqualEvaluator;
+import org.drools.base.evaluators.ShortFactory.ShortLessEvaluator;
+import org.drools.base.evaluators.ShortFactory.ShortLessOrEqualEvaluator;
+import org.drools.base.evaluators.ShortFactory.ShortNotEqualEvaluator;
import org.drools.spi.Evaluator;
-public class FloatFactory {
-
- public static Evaluator getFloatEvaluator(final int operator) {
- switch ( operator ) {
- case Evaluator.EQUAL :
- return FloatEqualEvaluator.INSTANCE;
- case Evaluator.NOT_EQUAL :
- return FloatNotEqualEvaluator.INSTANCE;
- case Evaluator.LESS :
- return FloatLessEvaluator.INSTANCE;
- case Evaluator.LESS_OR_EQUAL :
- return FloatLessOrEqualEvaluator.INSTANCE;
- case Evaluator.GREATER :
- return FloatGreaterEvaluator.INSTANCE;
- case Evaluator.GREATER_OR_EQUAL :
- return FloatGreaterOrEqualEvaluator.INSTANCE;
- default :
- throw new RuntimeException( "Operator '" + operator + "' does not exist for FloatEvaluator" );
+public class FloatFactory implements EvaluatorFactory {
+ private static EvaluatorFactory INSTANCE = new FloatFactory();
+
+ private FloatFactory() {
+
+ }
+
+ public static EvaluatorFactory getInstance() {
+ if ( INSTANCE == null ) {
+ INSTANCE = new FloatFactory();
}
+ return INSTANCE;
}
+ public Evaluator getEvaluator(final Operator operator) {
+ if ( operator == Operator.EQUAL ) {
+ return FloatEqualEvaluator.INSTANCE;
+ } else if ( operator == Operator.NOT_EQUAL ) {
+ return FloatNotEqualEvaluator.INSTANCE;
+ } else if ( operator == Operator.LESS ) {
+ return FloatLessEvaluator.INSTANCE;
+ } else if ( operator == Operator.LESS_OR_EQUAL ) {
+ return FloatLessOrEqualEvaluator.INSTANCE;
+ } else if ( operator == Operator.GREATER ) {
+ return FloatGreaterEvaluator.INSTANCE;
+ } else if ( operator == Operator.GREATER_OR_EQUAL ) {
+ return FloatGreaterOrEqualEvaluator.INSTANCE;
+ } else {
+ throw new RuntimeException( "Operator '" + operator + "' does not exist for FloatEvaluator" );
+ }
+ }
+
+
static class FloatEqualEvaluator extends BaseEvaluator {
/**
*
*/
- private static final long serialVersionUID = -3295563005669423883L;
+ private static final long serialVersionUID = 320;
public final static Evaluator INSTANCE = new FloatEqualEvaluator();
private FloatEqualEvaluator() {
- super( Evaluator.FLOAT_TYPE,
- Evaluator.EQUAL );
+ super( ValueType.FLOAT_TYPE,
+ Operator.EQUAL );
}
public boolean evaluate(final Object object1,
@@ -69,12 +88,12 @@
/**
*
*/
- private static final long serialVersionUID = -4852271063945330337L;
+ private static final long serialVersionUID = 320;
public final static Evaluator INSTANCE = new FloatNotEqualEvaluator();
private FloatNotEqualEvaluator() {
- super( Evaluator.FLOAT_TYPE,
- Evaluator.NOT_EQUAL );
+ super( ValueType.FLOAT_TYPE,
+ Operator.NOT_EQUAL );
}
public boolean evaluate(final Object object1,
@@ -94,12 +113,12 @@
/**
*
*/
- private static final long serialVersionUID = -4971007931169565583L;
+ private static final long serialVersionUID = 320;
public final static Evaluator INSTANCE = new FloatLessEvaluator();
private FloatLessEvaluator() {
- super( Evaluator.FLOAT_TYPE,
- Evaluator.LESS );
+ super( ValueType.FLOAT_TYPE,
+ Operator.LESS );
}
public boolean evaluate(final Object object1,
@@ -116,12 +135,12 @@
/**
*
*/
- private static final long serialVersionUID = 8475866839302691518L;
+ private static final long serialVersionUID = 320;
public final static Evaluator INSTANCE = new FloatLessOrEqualEvaluator();
private FloatLessOrEqualEvaluator() {
- super( Evaluator.FLOAT_TYPE,
- Evaluator.LESS_OR_EQUAL );
+ super( ValueType.FLOAT_TYPE,
+ Operator.LESS_OR_EQUAL );
}
public boolean evaluate(final Object object1,
@@ -138,12 +157,12 @@
/**
*
*/
- private static final long serialVersionUID = 7121251641514162807L;
+ private static final long serialVersionUID = 320;
public final static Evaluator INSTANCE = new FloatGreaterEvaluator();
private FloatGreaterEvaluator() {
- super( Evaluator.FLOAT_TYPE,
- Evaluator.GREATER );
+ super( ValueType.FLOAT_TYPE,
+ Operator.GREATER );
}
public boolean evaluate(final Object object1,
@@ -160,12 +179,12 @@
/**
*
*/
- private static final long serialVersionUID = -6885383763349349798L;
+ private static final long serialVersionUID = 320;
private final static Evaluator INSTANCE = new FloatGreaterOrEqualEvaluator();
private FloatGreaterOrEqualEvaluator() {
- super( Evaluator.FLOAT_TYPE,
- Evaluator.GREATER_OR_EQUAL );
+ super( ValueType.FLOAT_TYPE,
+ Operator.GREATER_OR_EQUAL );
}
public boolean evaluate(final Object object1,
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/evaluators/IntegerFactory.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/evaluators/IntegerFactory.java 2006-08-03 00:14:06 UTC (rev 5421)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/evaluators/IntegerFactory.java 2006-08-03 00:14:40 UTC (rev 5422)
@@ -17,38 +17,57 @@
*/
import org.drools.base.BaseEvaluator;
+import org.drools.base.ValueType;
+import org.drools.base.evaluators.ShortFactory.ShortEqualEvaluator;
+import org.drools.base.evaluators.ShortFactory.ShortGreaterEvaluator;
+import org.drools.base.evaluators.ShortFactory.ShortGreaterOrEqualEvaluator;
+import org.drools.base.evaluators.ShortFactory.ShortLessEvaluator;
+import org.drools.base.evaluators.ShortFactory.ShortLessOrEqualEvaluator;
+import org.drools.base.evaluators.ShortFactory.ShortNotEqualEvaluator;
import org.drools.spi.Evaluator;
-public class IntegerFactory {
- public static Evaluator getIntegerEvaluator(final int operator) {
- switch ( operator ) {
- case Evaluator.EQUAL :
- return IntegerEqualEvaluator.INSTANCE;
- case Evaluator.NOT_EQUAL :
- return IntegerNotEqualEvaluator.INSTANCE;
- case Evaluator.LESS :
- return IntegerLessEvaluator.INSTANCE;
- case Evaluator.LESS_OR_EQUAL :
- return IntegerLessOrEqualEvaluator.INSTANCE;
- case Evaluator.GREATER :
- return IntegerGreaterEvaluator.INSTANCE;
- case Evaluator.GREATER_OR_EQUAL :
- return IntegerGreaterOrEqualEvaluator.INSTANCE;
- default :
- throw new RuntimeException( "Operator '" + operator + "' does not exist for IntegerEvaluator" );
+public class IntegerFactory implements EvaluatorFactory {
+ private static EvaluatorFactory INSTANCE = new IntegerFactory();
+
+ private IntegerFactory() {
+
+ }
+
+ public static EvaluatorFactory getInstance() {
+ if ( INSTANCE == null ) {
+ INSTANCE = new IntegerFactory();
}
+ return INSTANCE;
}
+ public Evaluator getEvaluator(final Operator operator) {
+ if ( operator == Operator.EQUAL ) {
+ return IntegerEqualEvaluator.INSTANCE;
+ } else if ( operator == Operator.NOT_EQUAL ) {
+ return IntegerNotEqualEvaluator.INSTANCE;
+ } else if ( operator == Operator.LESS ) {
+ return IntegerLessEvaluator.INSTANCE;
+ } else if ( operator == Operator.LESS_OR_EQUAL ) {
+ return IntegerLessOrEqualEvaluator.INSTANCE;
+ } else if ( operator == Operator.GREATER ) {
+ return IntegerGreaterEvaluator.INSTANCE;
+ } else if ( operator == Operator.GREATER_OR_EQUAL ) {
+ return IntegerGreaterOrEqualEvaluator.INSTANCE;
+ } else {
+ throw new RuntimeException( "Operator '" + operator + "' does not exist for IntegerEvaluator" );
+ }
+ }
+
static class IntegerEqualEvaluator extends BaseEvaluator {
/**
*
*/
- private static final long serialVersionUID = 7723739052946963265L;
+ private static final long serialVersionUID = 320;
public final static Evaluator INSTANCE = new IntegerEqualEvaluator();
private IntegerEqualEvaluator() {
- super( Evaluator.INTEGER_TYPE,
- Evaluator.EQUAL );
+ super( ValueType.INTEGER_TYPE,
+ Operator.EQUAL );
}
public boolean evaluate(final Object object1,
@@ -68,12 +87,12 @@
/**
*
*/
- private static final long serialVersionUID = -9113145485945747879L;
+ private static final long serialVersionUID = 320;
public final static Evaluator INSTANCE = new IntegerNotEqualEvaluator();
private IntegerNotEqualEvaluator() {
- super( Evaluator.INTEGER_TYPE,
- Evaluator.NOT_EQUAL );
+ super( ValueType.INTEGER_TYPE,
+ Operator.NOT_EQUAL );
}
public boolean evaluate(final Object object1,
@@ -93,12 +112,12 @@
/**
*
*/
- private static final long serialVersionUID = 4190533166100633474L;
+ private static final long serialVersionUID = 320;
public final static Evaluator INSTANCE = new IntegerLessEvaluator();
private IntegerLessEvaluator() {
- super( Evaluator.INTEGER_TYPE,
- Evaluator.LESS );
+ super( ValueType.INTEGER_TYPE,
+ Operator.LESS );
}
public boolean evaluate(final Object object1,
@@ -115,12 +134,12 @@
/**
*
*/
- private static final long serialVersionUID = -4044888400673214480L;
+ private static final long serialVersionUID = 320;
public final static Evaluator INSTANCE = new IntegerLessOrEqualEvaluator();
private IntegerLessOrEqualEvaluator() {
- super( Evaluator.INTEGER_TYPE,
- Evaluator.LESS_OR_EQUAL );
+ super( ValueType.INTEGER_TYPE,
+ Operator.LESS_OR_EQUAL );
}
public boolean evaluate(final Object object1,
@@ -137,12 +156,12 @@
/**
*
*/
- private static final long serialVersionUID = -5347620757145017588L;
+ private static final long serialVersionUID = 320;
public final static Evaluator INSTANCE = new IntegerGreaterEvaluator();
private IntegerGreaterEvaluator() {
- super( Evaluator.INTEGER_TYPE,
- Evaluator.GREATER );
+ super( ValueType.INTEGER_TYPE,
+ Operator.GREATER );
}
public boolean evaluate(final Object object1,
@@ -159,12 +178,12 @@
/**
*
*/
- private static final long serialVersionUID = 7520187005496650583L;
+ private static final long serialVersionUID = 320;
private final static Evaluator INSTANCE = new IntegerGreaterOrEqualEvaluator();
private IntegerGreaterOrEqualEvaluator() {
- super( Evaluator.INTEGER_TYPE,
- Evaluator.GREATER_OR_EQUAL );
+ super( ValueType.INTEGER_TYPE,
+ Operator.GREATER_OR_EQUAL );
}
public boolean evaluate(final Object object1,
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/evaluators/LongFactory.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/evaluators/LongFactory.java 2006-08-03 00:14:06 UTC (rev 5421)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/evaluators/LongFactory.java 2006-08-03 00:14:40 UTC (rev 5422)
@@ -17,38 +17,58 @@
*/
import org.drools.base.BaseEvaluator;
+import org.drools.base.ValueType;
+import org.drools.base.evaluators.ShortFactory.ShortEqualEvaluator;
+import org.drools.base.evaluators.ShortFactory.ShortGreaterEvaluator;
+import org.drools.base.evaluators.ShortFactory.ShortGreaterOrEqualEvaluator;
+import org.drools.base.evaluators.ShortFactory.ShortLessEvaluator;
+import org.drools.base.evaluators.ShortFactory.ShortLessOrEqualEvaluator;
+import org.drools.base.evaluators.ShortFactory.ShortNotEqualEvaluator;
import org.drools.spi.Evaluator;
-public class LongFactory {
- public static Evaluator getLongEvaluator(final int operator) {
- switch ( operator ) {
- case Evaluator.EQUAL :
- return LongEqualEvaluator.INSTANCE;
- case Evaluator.NOT_EQUAL :
- return LongNotEqualEvaluator.INSTANCE;
- case Evaluator.LESS :
- return LongLessEvaluator.INSTANCE;
- case Evaluator.LESS_OR_EQUAL :
- return LongLessOrEqualEvaluator.INSTANCE;
- case Evaluator.GREATER :
- return LongGreaterEvaluator.INSTANCE;
- case Evaluator.GREATER_OR_EQUAL :
- return LongGreaterOrEqualEvaluator.INSTANCE;
- default :
- throw new RuntimeException( "Operator '" + operator + "' does not exist for LongEvaluator" );
+public class LongFactory implements EvaluatorFactory {
+ private static EvaluatorFactory INSTANCE = new LongFactory();
+
+ private LongFactory() {
+
+ }
+
+ public static EvaluatorFactory getInstance() {
+ if ( INSTANCE == null ) {
+ INSTANCE = new LongFactory();
}
+ return INSTANCE;
}
+ public Evaluator getEvaluator(final Operator operator) {
+ if ( operator == Operator.EQUAL ) {
+ return LongEqualEvaluator.INSTANCE;
+ } else if ( operator == Operator.NOT_EQUAL ) {
+ return LongNotEqualEvaluator.INSTANCE;
+ } else if ( operator == Operator.LESS ) {
+ return LongLessEvaluator.INSTANCE;
+ } else if ( operator == Operator.LESS_OR_EQUAL ) {
+ return LongLessOrEqualEvaluator.INSTANCE;
+ } else if ( operator == Operator.GREATER ) {
+ return LongGreaterEvaluator.INSTANCE;
+ } else if ( operator == Operator.GREATER_OR_EQUAL ) {
+ return LongGreaterOrEqualEvaluator.INSTANCE;
+ } else {
+ throw new RuntimeException( "Operator '" + operator + "' does not exist for LongEvaluator" );
+ }
+ }
+
+
static class LongEqualEvaluator extends BaseEvaluator {
/**
*
*/
- private static final long serialVersionUID = 952936509469163071L;
+ private static final long serialVersionUID = 320;
public final static Evaluator INSTANCE = new LongEqualEvaluator();
private LongEqualEvaluator() {
- super( Evaluator.LONG_TYPE,
- Evaluator.EQUAL );
+ super( ValueType.LONG_TYPE,
+ Operator.EQUAL );
}
public boolean evaluate(final Object object1,
@@ -68,12 +88,12 @@
/**
*
*/
- private static final long serialVersionUID = -6007396753250538232L;
+ private static final long serialVersionUID = 320;
public final static Evaluator INSTANCE = new LongNotEqualEvaluator();
private LongNotEqualEvaluator() {
- super( Evaluator.LONG_TYPE,
- Evaluator.NOT_EQUAL );
+ super( ValueType.LONG_TYPE,
+ Operator.NOT_EQUAL );
}
public boolean evaluate(final Object object1,
@@ -93,12 +113,12 @@
/**
*
*/
- private static final long serialVersionUID = -4364068749553989563L;
+ private static final long serialVersionUID = 320;
public final static Evaluator INSTANCE = new LongLessEvaluator();
private LongLessEvaluator() {
- super( Evaluator.LONG_TYPE,
- Evaluator.LESS );
+ super( ValueType.LONG_TYPE,
+ Operator.LESS );
}
public boolean evaluate(final Object object1,
@@ -115,12 +135,12 @@
/**
*
*/
- private static final long serialVersionUID = -6047195686511631405L;
+ private static final long serialVersionUID = 320;
public final static Evaluator INSTANCE = new LongLessOrEqualEvaluator();
private LongLessOrEqualEvaluator() {
- super( Evaluator.LONG_TYPE,
- Evaluator.LESS_OR_EQUAL );
+ super( ValueType.LONG_TYPE,
+ Operator.LESS_OR_EQUAL );
}
public boolean evaluate(final Object object1,
@@ -137,12 +157,12 @@
/**
*
*/
- private static final long serialVersionUID = -6931144987779205475L;
+ private static final long serialVersionUID = 320;
public final static Evaluator INSTANCE = new LongGreaterEvaluator();
private LongGreaterEvaluator() {
- super( Evaluator.LONG_TYPE,
- Evaluator.GREATER );
+ super( ValueType.LONG_TYPE,
+ Operator.GREATER );
}
public boolean evaluate(final Object object1,
@@ -159,12 +179,12 @@
/**
*
*/
- private static final long serialVersionUID = 4533604086739451238L;
+ private static final long serialVersionUID = 320;
private final static Evaluator INSTANCE = new LongGreaterOrEqualEvaluator();
private LongGreaterOrEqualEvaluator() {
- super( Evaluator.LONG_TYPE,
- Evaluator.GREATER_OR_EQUAL );
+ super( ValueType.LONG_TYPE,
+ Operator.GREATER_OR_EQUAL );
}
public boolean evaluate(final Object object1,
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/evaluators/ObjectFactory.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/evaluators/ObjectFactory.java 2006-08-03 00:14:06 UTC (rev 5421)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/evaluators/ObjectFactory.java 2006-08-03 00:14:40 UTC (rev 5422)
@@ -19,6 +19,19 @@
import java.util.Collection;
import org.drools.base.BaseEvaluator;
+import org.drools.base.ValueType;
+import org.drools.base.evaluators.IntegerFactory.IntegerEqualEvaluator;
+import org.drools.base.evaluators.IntegerFactory.IntegerGreaterEvaluator;
+import org.drools.base.evaluators.IntegerFactory.IntegerGreaterOrEqualEvaluator;
+import org.drools.base.evaluators.IntegerFactory.IntegerLessEvaluator;
+import org.drools.base.evaluators.IntegerFactory.IntegerLessOrEqualEvaluator;
+import org.drools.base.evaluators.IntegerFactory.IntegerNotEqualEvaluator;
+import org.drools.base.evaluators.ShortFactory.ShortEqualEvaluator;
+import org.drools.base.evaluators.ShortFactory.ShortGreaterEvaluator;
+import org.drools.base.evaluators.ShortFactory.ShortGreaterOrEqualEvaluator;
+import org.drools.base.evaluators.ShortFactory.ShortLessEvaluator;
+import org.drools.base.evaluators.ShortFactory.ShortLessOrEqualEvaluator;
+import org.drools.base.evaluators.ShortFactory.ShortNotEqualEvaluator;
import org.drools.spi.Evaluator;
/**
@@ -32,41 +45,53 @@
*
* @author Michael Neale
*/
-public class ObjectFactory {
-
- public static Evaluator getObjectEvaluator(final int operator) {
- switch ( operator ) {
- case Evaluator.EQUAL :
- return ObjectEqualEvaluator.INSTANCE;
- case Evaluator.NOT_EQUAL :
- return ObjectNotEqualEvaluator.INSTANCE;
- case Evaluator.CONTAINS :
- return ObjectContainsEvaluator.INSTANCE;
- case Evaluator.LESS :
- return ObjectLessEvaluator.INSTANCE;
- case Evaluator.LESS_OR_EQUAL :
- return ObjectLessOrEqualEvaluator.INSTANCE;
- case Evaluator.GREATER :
- return ObjectGreaterEvaluator.INSTANCE;
- case Evaluator.GREATER_OR_EQUAL :
- return ObjectGreaterOrEqualEvaluator.INSTANCE;
- case Evaluator.EXCLUDES :
- return ObjectExcludesEvaluator.INSTANCE;
- default :
- throw new RuntimeException( "Operator '" + operator + "' does not exist for ObjectEvaluator" );
+public class ObjectFactory implements EvaluatorFactory {
+ private static EvaluatorFactory INSTANCE = new ObjectFactory();
+
+ private ObjectFactory() {
+
+ }
+
+ public static EvaluatorFactory getInstance() {
+ if ( INSTANCE == null ) {
+ INSTANCE = new ObjectFactory();
}
+ return INSTANCE;
}
+
+ public Evaluator getEvaluator(final Operator operator) {
+ if ( operator == Operator.EQUAL ) {
+ return ObjectEqualEvaluator.INSTANCE;
+ } else if ( operator == Operator.NOT_EQUAL ) {
+ return ObjectNotEqualEvaluator.INSTANCE;
+ } else if ( operator == Operator.LESS ) {
+ return ObjectLessEvaluator.INSTANCE;
+ } else if ( operator == Operator.LESS_OR_EQUAL ) {
+ return ObjectLessOrEqualEvaluator.INSTANCE;
+ } else if ( operator == Operator.GREATER ) {
+ return ObjectGreaterEvaluator.INSTANCE;
+ } else if ( operator == Operator.GREATER_OR_EQUAL ) {
+ return ObjectGreaterOrEqualEvaluator.INSTANCE;
+ } else if ( operator == Operator.CONTAINS ) {
+ return ObjectContainsEvaluator.INSTANCE;
+ } else if ( operator == Operator.EXCLUDES ) {
+ return ObjectExcludesEvaluator.INSTANCE;
+ } else {
+ throw new RuntimeException( "Operator '" + operator + "' does not exist for ShortEvaluator" );
+ }
+ }
+
static class ObjectEqualEvaluator extends BaseEvaluator {
/**
*
*/
- private static final long serialVersionUID = 4532849170161094887L;
+ private static final long serialVersionUID = 320;
public final static Evaluator INSTANCE = new ObjectEqualEvaluator();
private ObjectEqualEvaluator() {
- super( Evaluator.OBJECT_TYPE,
- Evaluator.EQUAL );
+ super( ValueType.OBJECT_TYPE,
+ Operator.EQUAL );
}
public boolean evaluate(final Object object1,
@@ -86,12 +111,12 @@
/**
*
*/
- private static final long serialVersionUID = -6995475512317781516L;
+ private static final long serialVersionUID = 320;
public final static Evaluator INSTANCE = new ObjectNotEqualEvaluator();
private ObjectNotEqualEvaluator() {
- super( Evaluator.OBJECT_TYPE,
- Evaluator.NOT_EQUAL );
+ super( ValueType.OBJECT_TYPE,
+ Operator.NOT_EQUAL );
}
public boolean evaluate(final Object object1,
@@ -111,12 +136,12 @@
/**
*
*/
- private static final long serialVersionUID = 5327278696364237380L;
+ private static final long serialVersionUID = 320;
public final static Evaluator INSTANCE = new ObjectLessEvaluator();
private ObjectLessEvaluator() {
- super( Evaluator.OBJECT_TYPE,
- Evaluator.LESS );
+ super( ValueType.OBJECT_TYPE,
+ Operator.LESS );
}
public boolean evaluate(final Object object1,
@@ -135,12 +160,12 @@
/**
*
*/
- private static final long serialVersionUID = 3463248146201714137L;
+ private static final long serialVersionUID = 320;
public final static Evaluator INSTANCE = new ObjectLessOrEqualEvaluator();
private ObjectLessOrEqualEvaluator() {
- super( Evaluator.OBJECT_TYPE,
- Evaluator.LESS_OR_EQUAL );
+ super( ValueType.OBJECT_TYPE,
+ Operator.LESS_OR_EQUAL );
}
public boolean evaluate(final Object object1,
@@ -158,12 +183,12 @@
/**
*
*/
- private static final long serialVersionUID = 7808425299326128881L;
+ private static final long serialVersionUID = 320;
public final static Evaluator INSTANCE = new ObjectGreaterEvaluator();
private ObjectGreaterEvaluator() {
- super( Evaluator.OBJECT_TYPE,
- Evaluator.GREATER );
+ super( ValueType.OBJECT_TYPE,
+ Operator.GREATER );
}
public boolean evaluate(final Object object1,
@@ -181,12 +206,12 @@
/**
*
*/
- private static final long serialVersionUID = -3337081388987517878L;
+ private static final long serialVersionUID = 320;
public final static Evaluator INSTANCE = new ObjectGreaterOrEqualEvaluator();
private ObjectGreaterOrEqualEvaluator() {
- super( Evaluator.OBJECT_TYPE,
- Evaluator.GREATER_OR_EQUAL );
+ super( ValueType.OBJECT_TYPE,
+ Operator.GREATER_OR_EQUAL );
}
public boolean evaluate(final Object object1,
@@ -204,12 +229,12 @@
/**
*
*/
- private static final long serialVersionUID = 6607233589136455455L;
+ private static final long serialVersionUID = 320;
public final static Evaluator INSTANCE = new ObjectContainsEvaluator();
private ObjectContainsEvaluator() {
- super( Evaluator.OBJECT_TYPE,
- Evaluator.CONTAINS );
+ super( ValueType.OBJECT_TYPE,
+ Operator.CONTAINS );
}
public boolean evaluate(final Object object1,
@@ -230,12 +255,12 @@
/**
*
*/
- private static final long serialVersionUID = 4353038775000051165L;
+ private static final long serialVersionUID = 320;
public final static Evaluator INSTANCE = new ObjectExcludesEvaluator();
private ObjectExcludesEvaluator() {
- super( Evaluator.OBJECT_TYPE,
- Evaluator.EXCLUDES );
+ super( ValueType.OBJECT_TYPE,
+ Operator.EXCLUDES );
}
public boolean evaluate(final Object object1,
Added: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/evaluators/Operator.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/evaluators/Operator.java 2006-08-03 00:14:06 UTC (rev 5421)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/evaluators/Operator.java 2006-08-03 00:14:40 UTC (rev 5422)
@@ -0,0 +1,70 @@
+package org.drools.base.evaluators;
+
+import java.io.Serializable;
+
+import org.drools.RuntimeDroolsException;
+
+public class Operator implements Serializable {
+
+ private static final long serialVersionUID = 320;
+
+ public static final Operator EQUAL = new Operator( "==" );
+ public static final Operator NOT_EQUAL = new Operator( "!=" );
+ public static final Operator LESS = new Operator( "<" );
+ public static final Operator LESS_OR_EQUAL = new Operator( "<=" );
+ public static final Operator GREATER = new Operator( ">" );
+ public static final Operator GREATER_OR_EQUAL = new Operator( ">=" );
+ public static final Operator CONTAINS = new Operator( "contains" );
+ public static final Operator MATCHES = new Operator( "matches" );
+ public static final Operator EXCLUDES = new Operator( "excludes" );
+
+ private String operator;
+
+ private Operator(String operator) {
+ this.operator = operator;
+ }
+
+ private Object readResolve () throws java.io.ObjectStreamException
+ {
+ return determineOperator( this.operator );
+ }
+
+ public static Operator determineOperator(String string) {
+ if ( string.equals( "==" ) ) {
+ return Operator.EQUAL;
+ } else if ( string.equals( "!=" ) ) {
+ return Operator.NOT_EQUAL;
+ } else if ( string.equals( "<" ) ) {
+ return Operator.LESS;
+ } else if ( string.equals( "<=" ) ) {
+ return Operator.LESS_OR_EQUAL;
+ } else if ( string.equals( ">" ) ) {
+ return Operator.GREATER;
+ } else if ( string.equals( ">=" ) ) {
+ return Operator.GREATER_OR_EQUAL;
+ } else if ( string.equals( "contains" ) ) {
+ return Operator.CONTAINS;
+ } else if ( string.equals( "matches" ) ) {
+ return Operator.MATCHES;
+ } else if ( string.equals( "excludes" ) ) {
+ return Operator.EXCLUDES;
+ }
+ throw new RuntimeDroolsException( "unable to determine operator for String [" + string + "]" );
+ }
+
+ public String toString() {
+ return "Operator = '" + this.operator + "'";
+ }
+
+ public int hashCode() {
+ return this.operator.hashCode();
+ }
+
+ public boolean equals(Object object) {
+ if ( object == this ) {
+ return true;
+ }
+
+ return false;
+ }
+}
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/evaluators/ShortFactory.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/evaluators/ShortFactory.java 2006-08-03 00:14:06 UTC (rev 5421)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/evaluators/ShortFactory.java 2006-08-03 00:14:40 UTC (rev 5422)
@@ -17,45 +17,57 @@
*/
import org.drools.base.BaseEvaluator;
+import org.drools.base.ValueType;
+import org.drools.base.evaluators.DoubleFactory.DoubleEqualEvaluator;
+import org.drools.base.evaluators.DoubleFactory.DoubleGreaterEvaluator;
+import org.drools.base.evaluators.DoubleFactory.DoubleGreaterOrEqualEvaluator;
+import org.drools.base.evaluators.DoubleFactory.DoubleLessEvaluator;
+import org.drools.base.evaluators.DoubleFactory.DoubleLessOrEqualEvaluator;
+import org.drools.base.evaluators.DoubleFactory.DoubleNotEqualEvaluator;
import org.drools.spi.Evaluator;
-public class ShortFactory {
- public static Evaluator getShortEvaluator(final int operator) {
- switch ( operator ) {
- case Evaluator.EQUAL :
- return ShortEqualEvaluator.getInstance();
- case Evaluator.NOT_EQUAL :
- return ShortNotEqualEvaluator.getInstance();
- case Evaluator.LESS :
- return ShortLessEvaluator.getInstance();
- case Evaluator.LESS_OR_EQUAL :
- return ShortLessOrEqualEvaluator.getInstance();
- case Evaluator.GREATER :
- return ShortGreaterEvaluator.getInstance();
- case Evaluator.GREATER_OR_EQUAL :
- return ShortGreaterOrEqualEvaluator.getInstance();
- default :
- throw new RuntimeException( "Operator '" + operator + "' does not exist for ShortEvaluator" );
- }
+public class ShortFactory implements EvaluatorFactory {
+ private static EvaluatorFactory INSTANCE = new ShortFactory();
+
+ private ShortFactory() {
+
}
+
+ public static EvaluatorFactory getInstance() {
+ if ( INSTANCE == null ) {
+ INSTANCE = new ShortFactory();
+ }
+ return INSTANCE;
+ }
+ public Evaluator getEvaluator(final Operator operator) {
+ if ( operator == Operator.EQUAL ) {
+ return ShortEqualEvaluator.INSTANCE;
+ } else if ( operator == Operator.NOT_EQUAL ) {
+ return ShortNotEqualEvaluator.INSTANCE;
+ } else if ( operator == Operator.LESS ) {
+ return ShortLessEvaluator.INSTANCE;
+ } else if ( operator == Operator.LESS_OR_EQUAL ) {
+ return ShortLessOrEqualEvaluator.INSTANCE;
+ } else if ( operator == Operator.GREATER ) {
+ return ShortGreaterEvaluator.INSTANCE;
+ } else if ( operator == Operator.GREATER_OR_EQUAL ) {
+ return ShortGreaterOrEqualEvaluator.INSTANCE;
+ } else {
+ throw new RuntimeException( "Operator '" + operator + "' does not exist for ShortEvaluator" );
+ }
+ }
+
static class ShortEqualEvaluator extends BaseEvaluator {
/**
*
*/
- private static final long serialVersionUID = 8933390138182317179L;
- private static Evaluator INSTANCE;
+ private static final long serialVersionUID = 320;
+ private static Evaluator INSTANCE = new ShortEqualEvaluator();
- public static Evaluator getInstance() {
- if ( ShortEqualEvaluator.INSTANCE == null ) {
- ShortEqualEvaluator.INSTANCE = new ShortEqualEvaluator();
- }
- return ShortEqualEvaluator.INSTANCE;
- }
-
private ShortEqualEvaluator() {
- super( Evaluator.SHORT_TYPE,
- Evaluator.EQUAL );
+ super( ValueType.SHORT_TYPE,
+ Operator.EQUAL );
}
public boolean evaluate(final Object object1,
@@ -75,19 +87,12 @@
/**
*
*/
- private static final long serialVersionUID = -273350270376804828L;
- private static Evaluator INSTANCE;
-
- public static Evaluator getInstance() {
- if ( ShortNotEqualEvaluator.INSTANCE == null ) {
- ShortNotEqualEvaluator.INSTANCE = new ShortNotEqualEvaluator();
- }
- return ShortNotEqualEvaluator.INSTANCE;
- }
-
+ private static final long serialVersionUID = 320;
+ private static Evaluator INSTANCE = new ShortNotEqualEvaluator();
+
private ShortNotEqualEvaluator() {
- super( Evaluator.SHORT_TYPE,
- Evaluator.NOT_EQUAL );
+ super( ValueType.SHORT_TYPE,
+ Operator.NOT_EQUAL );
}
public boolean evaluate(final Object object1,
@@ -107,19 +112,12 @@
/**
*
*/
- private static final long serialVersionUID = -1562867187426899162L;
- private static Evaluator INSTANCE;
+ private static final long serialVersionUID = 320;
+ private static Evaluator INSTANCE = new ShortLessEvaluator();
- public static Evaluator getInstance() {
- if ( ShortLessEvaluator.INSTANCE == null ) {
- ShortLessEvaluator.INSTANCE = new ShortLessEvaluator();
- }
- return ShortLessEvaluator.INSTANCE;
- }
-
private ShortLessEvaluator() {
- super( Evaluator.SHORT_TYPE,
- Evaluator.LESS );
+ super( ValueType.SHORT_TYPE,
+ Operator.LESS );
}
public boolean evaluate(final Object object1,
@@ -136,19 +134,12 @@
/**
*
*/
- private static final long serialVersionUID = -1541816846266081605L;
- private static Evaluator INSTANCE;
+ private static final long serialVersionUID = 320;
+ private static Evaluator INSTANCE = new ShortLessOrEqualEvaluator();
- public static Evaluator getInstance() {
- if ( ShortLessOrEqualEvaluator.INSTANCE == null ) {
- ShortLessOrEqualEvaluator.INSTANCE = new ShortLessOrEqualEvaluator();
- }
- return ShortLessOrEqualEvaluator.INSTANCE;
- }
-
private ShortLessOrEqualEvaluator() {
- super( Evaluator.SHORT_TYPE,
- Evaluator.LESS_OR_EQUAL );
+ super( ValueType.SHORT_TYPE,
+ Operator.LESS_OR_EQUAL );
}
public boolean evaluate(final Object object1,
@@ -165,19 +156,12 @@
/**
*
*/
- private static final long serialVersionUID = -3260955087091852509L;
- private static Evaluator INSTANCE;
+ private static final long serialVersionUID = 320;
+ private static Evaluator INSTANCE = new ShortGreaterEvaluator();
- public static Evaluator getInstance() {
- if ( ShortGreaterEvaluator.INSTANCE == null ) {
- ShortGreaterEvaluator.INSTANCE = new ShortGreaterEvaluator();
- }
- return ShortGreaterEvaluator.INSTANCE;
- }
-
private ShortGreaterEvaluator() {
- super( Evaluator.SHORT_TYPE,
- Evaluator.GREATER );
+ super( ValueType.SHORT_TYPE,
+ Operator.GREATER );
}
public boolean evaluate(final Object object1,
@@ -194,19 +178,12 @@
/**
*
*/
- private static final long serialVersionUID = 1254418853497580320L;
- private static Evaluator INSTANCE;
+ private static final long serialVersionUID = 320;
+ private static Evaluator INSTANCE = new ShortGreaterOrEqualEvaluator();
- public static Evaluator getInstance() {
- if ( ShortGreaterOrEqualEvaluator.INSTANCE == null ) {
- ShortGreaterOrEqualEvaluator.INSTANCE = new ShortGreaterOrEqualEvaluator();
- }
- return ShortGreaterOrEqualEvaluator.INSTANCE;
- }
-
private ShortGreaterOrEqualEvaluator() {
- super( Evaluator.SHORT_TYPE,
- Evaluator.GREATER_OR_EQUAL );
+ super( ValueType.SHORT_TYPE,
+ Operator.GREATER_OR_EQUAL );
}
public boolean evaluate(final Object object1,
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/evaluators/StringFactory.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/evaluators/StringFactory.java 2006-08-03 00:14:06 UTC (rev 5421)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/evaluators/StringFactory.java 2006-08-03 00:14:40 UTC (rev 5422)
@@ -17,6 +17,13 @@
*/
import org.drools.base.BaseEvaluator;
+import org.drools.base.ValueType;
+import org.drools.base.evaluators.DoubleFactory.DoubleEqualEvaluator;
+import org.drools.base.evaluators.DoubleFactory.DoubleGreaterEvaluator;
+import org.drools.base.evaluators.DoubleFactory.DoubleGreaterOrEqualEvaluator;
+import org.drools.base.evaluators.DoubleFactory.DoubleLessEvaluator;
+import org.drools.base.evaluators.DoubleFactory.DoubleLessOrEqualEvaluator;
+import org.drools.base.evaluators.DoubleFactory.DoubleNotEqualEvaluator;
import org.drools.spi.Evaluator;
/**
@@ -26,31 +33,42 @@
*
* @author Michael Neale
*/
-public class StringFactory {
-
- public static Evaluator getStringEvaluator(final int operator) {
- switch ( operator ) {
- case Evaluator.EQUAL :
- return StringEqualEvaluator.INSTANCE;
- case Evaluator.NOT_EQUAL :
- return StringNotEqualEvaluator.INSTANCE;
- case Evaluator.MATCHES :
- return StringMatchesEvaluator.INSTANCE;
- default :
- throw new RuntimeException( "Operator '" + operator + "' does not exist for StringEvaluator" );
+public class StringFactory implements EvaluatorFactory {
+ private static EvaluatorFactory INSTANCE = new StringFactory();
+
+ private StringFactory() {
+
+ }
+
+ public static EvaluatorFactory getInstance() {
+ if ( INSTANCE == null ) {
+ INSTANCE = new StringFactory();
}
+ return INSTANCE;
}
+ public Evaluator getEvaluator(final Operator operator) {
+ if ( operator == Operator.EQUAL ) {
+ return StringEqualEvaluator.INSTANCE;
+ } else if ( operator == Operator.NOT_EQUAL ) {
+ return StringNotEqualEvaluator.INSTANCE;
+ } else if ( operator == Operator.MATCHES ) {
+ return StringMatchesEvaluator.INSTANCE;
+ } else {
+ throw new RuntimeException( "Operator '" + operator + "' does not exist for StringEvaluator" );
+ }
+ }
+
static class StringEqualEvaluator extends BaseEvaluator {
/**
*
*/
- private static final long serialVersionUID = 5282693491345148054L;
+ private static final long serialVersionUID = 320;
public final static Evaluator INSTANCE = new StringEqualEvaluator();
private StringEqualEvaluator() {
- super( Evaluator.STRING_TYPE,
- Evaluator.EQUAL );
+ super( ValueType.STRING_TYPE,
+ Operator.EQUAL );
}
public boolean evaluate(final Object object1,
@@ -70,12 +88,12 @@
/**
*
*/
- private static final long serialVersionUID = -3385245390840913608L;
+ private static final long serialVersionUID = 320;
public final static Evaluator INSTANCE = new StringNotEqualEvaluator();
private StringNotEqualEvaluator() {
- super( Evaluator.STRING_TYPE,
- Evaluator.NOT_EQUAL );
+ super( ValueType.STRING_TYPE,
+ Operator.NOT_EQUAL );
}
public boolean evaluate(final Object object1,
@@ -96,12 +114,12 @@
/**
*
*/
- private static final long serialVersionUID = 5934192092501066510L;
+ private static final long serialVersionUID = 320;
public final static Evaluator INSTANCE = new StringMatchesEvaluator();
private StringMatchesEvaluator() {
- super( Evaluator.STRING_TYPE,
- Evaluator.MATCHES );
+ super( ValueType.STRING_TYPE,
+ Operator.MATCHES );
}
public boolean evaluate(final Object object1,
Added: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/facttemplates/Fact.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/facttemplates/Fact.java 2006-08-03 00:14:06 UTC (rev 5421)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/facttemplates/Fact.java 2006-08-03 00:14:40 UTC (rev 5422)
@@ -0,0 +1,45 @@
+/*
+ * Copyright 2002-2005 Peter Lin & RuleML.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://ruleml-dev.sourceforge.net/
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+package org.drools.facttemplates;
+
+
+/**
+ * @author Peter Lin
+ *
+ * Base interface for Facts
+ */
+public interface Fact {
+
+ /**
+ * Return the value at the given field index
+ * @param id
+ * @return
+ */
+ Object getFieldValue(int index);
+
+ /**
+ * Return the unique ID for the fact
+ * @return
+ */
+ long getFactId();
+
+ /**
+ * Return the Deftemplate for the fact
+ * @return
+ */
+ FactTemplate getFactTemplate();
+}
Added: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/facttemplates/FactImpl.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/facttemplates/FactImpl.java 2006-08-03 00:14:06 UTC (rev 5421)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/facttemplates/FactImpl.java 2006-08-03 00:14:40 UTC (rev 5422)
@@ -0,0 +1,140 @@
+/*
+ * Copyright 2002-2006 Peter Lin & RuleML.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://ruleml-dev.sourceforge.net/
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+package org.drools.facttemplates;
+
+import java.io.Serializable;
+import java.util.ArrayList;
+import java.util.Arrays;
+
+
+//import woolfel.engine.rule.Rule;
+
+/**
+ * @author Peter Lin
+ *
+ * Deffact is a concrete implementation of Fact interface. It is
+ * equivalent to deffact in CLIPS.
+ */
+public class FactImpl implements Fact, Serializable {
+
+ private static int hashCode(Object[] array) {
+ final int PRIME = 31;
+ if ( array == null ) return 0;
+ int result = 1;
+ for ( int index = 0; index < array.length; index++ ) {
+ result = PRIME * result + (array[index] == null ? 0 : array[index].hashCode());
+ }
+ return result;
+ }
+
+ private FactTemplate factTemplate = null;
+ private Object[] values = null;
+ private int hashCode;
+
+ /**
+ * the Fact id must be unique, since we use it for the indexes
+ */
+ private long id;
+
+ /**
+ * this is the default constructor
+ * @param instance
+ * @param values
+ */
+ public FactImpl(FactTemplate template, Object[] values, long id){
+ this.factTemplate = template;
+ this.values= values;
+ this.id = id;
+ }
+
+ public FactImpl(FactTemplate template, long id){
+ this.factTemplate = template;
+ this.values= new Object[ template.getNumberOfFields() ];
+ this.id = id;
+ }
+
+ /**
+ * Method returns the value of the given slot at the
+ * id.
+ * @param id
+ * @return
+ */
+ public Object getFieldValue(int index){
+ return this.values[ index ];
+ }
+
+
+
+ /**
+ * Return the long factId
+ */
+ public long getFactId(){
+ return this.id;
+ }
+
+ /**
+ * this is used to reset the id, in the event an user tries to
+ * assert the same fact again, we reset the id to the existing one.
+ * @param fact
+ */
+ protected void resetId(Fact fact) {
+ this.id = fact.getFactId();
+ }
+
+ /**
+ * Return the deftemplate for the fact
+ */
+ public FactTemplate getFactTemplate(){
+ return this.factTemplate;
+ }
+
+ public int hashCode() {
+ if ( hashCode == 0 ) {
+ final int PRIME = 31;
+ int result = 1;
+ result = PRIME * result + this.factTemplate.hashCode();
+ result = PRIME * result + FactImpl.hashCode( this.values );
+ result = PRIME * result + (int) (this.id ^ (this.id >>> 32));
+ hashCode = result;
+
+ }
+ return this.hashCode;
+ }
+
+ public boolean equals(Object object) {
+ if ( this == object ) {
+ return true;
+ }
+
+ if ( object == null || FactImpl.class != object.getClass() ) {
+ return false;
+ }
+
+ final FactImpl other = ( FactImpl ) object;
+
+ if ( !this.factTemplate.equals( other.factTemplate ) ) {
+ return false;
+ }
+
+ if ( !Arrays.equals( this.values,
+ other.values ) ) {
+ return false;
+ }
+
+ return true;
+ }
+}
Added: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/facttemplates/FactTemplate.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/facttemplates/FactTemplate.java 2006-08-03 00:14:06 UTC (rev 5421)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/facttemplates/FactTemplate.java 2006-08-03 00:14:40 UTC (rev 5422)
@@ -0,0 +1,71 @@
+/*
+ * Copyright 2002-2005 Peter Lin & RuleML.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://ruleml-dev.sourceforge.net/
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+package org.drools.facttemplates;
+
+import java.io.Serializable;
+
+
+/**
+ * @author Peter Lin
+ *
+ * Template defines the methods to access an object, which is the
+ * equivalent of un-ordered facts. It defines all the necessary
+ * methods for Deftemplate.
+ */
+public interface FactTemplate
+ extends
+ Serializable {
+ /**
+ * The name of the template may be the fully qualified
+ * class name, or an alias.
+ * @return
+ */
+ String getName();
+
+ /**
+ * templates may have 1 or more slots. A slot is a named
+ * column with a specific type of value.
+ * @return
+ */
+ int getNumberOfFields();
+
+ /**
+ * Return an array of all the slots.
+ * @return
+ */
+ FieldTemplate[] getAllFieldTemplates();
+
+ /**
+ * Return the slot with the String name
+ * @return
+ */
+ FieldTemplate getFieldTemplate(String name);
+
+ /**
+ * Get the Slot at the given column id
+ * @param index
+ * @return
+ */
+ FieldTemplate getFieldTemplate(int index);
+
+ /**
+ * Get the column index with the given name
+ * @param name
+ * @return
+ */
+ int getFieldTemplateIndex(String name);
+}
Added: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/facttemplates/FactTemplateImpl.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/facttemplates/FactTemplateImpl.java 2006-08-03 00:14:06 UTC (rev 5421)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/facttemplates/FactTemplateImpl.java 2006-08-03 00:14:40 UTC (rev 5422)
@@ -0,0 +1,141 @@
+/*
+ * Copyright 2002-2005 Peter Lin & RuleML.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://ruleml-dev.sourceforge.net/
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+package org.drools.facttemplates;
+
+import java.util.Iterator;
+import java.util.List;
+
+
+/**
+ * @author Peter Lin
+ * Deftemplate is equivalent to CLIPS deftemplate<br/>
+ *
+ * Some general design notes about the current implementation. In the
+ * case where a class is declared to create the deftemplate, the order
+ * of the slots are based on java Introspection. In the case where an
+ * user declares the deftemplate from console or directly, the order
+ * is the same as the string equivalent.
+ * The current implementation does not address redeclaring a deftemplate
+ * for a couple of reasons. The primary one is how does it affect the
+ * existing RETE nodes. One possible approach is to always add new slots
+ * to the end of the deftemplate and ignore the explicit order. Another
+ * is to recompute the deftemplate, binds and all nodes. The second
+ * approach is very costly and would make redeclaring a deftemplate
+ * undesirable.
+ */
+public class FactTemplateImpl implements FactTemplate {
+ private FieldTemplate[] fields;
+ private String templateName = null;
+
+ public FactTemplateImpl(String name, FieldTemplate[] fields){
+ this.templateName = name;
+ this.fields = fields;
+ }
+
+ /**
+ * the template name is an alias for an object
+ * @param name
+ */
+ public String getName(){
+ return this.templateName;
+ }
+
+ /**
+ * Return the number of slots in the deftemplate
+ * @return
+ */
+ public int getNumberOfFields(){
+ return this.fields.length;
+ }
+
+ /**
+ * Return all the slots
+ * @return
+ */
+ public FieldTemplate[] getAllFieldTemplates(){
+ return this.fields;
+ }
+
+ /**
+ * A convienance method for finding the slot matching
+ * the String name.
+ * @param name
+ * @return
+ */
+ public FieldTemplate getFieldTemplate(String name) {
+ for (int idx=0; idx < this.fields.length; idx++) {
+ if (this.fields[idx].getName().equals(name)) {
+ return this.fields[idx];
+ }
+ }
+ return null;
+ }
+
+ /**
+ * get the Slot at the given column id
+ * @param id
+ * @return
+ */
+ public FieldTemplate getFieldTemplate(int index) {
+ return this.fields[index];
+ }
+
+ /**
+ * Look up the column index of the slot
+ * @param name
+ * @return
+ */
+ public int getFieldTemplateIndex(String name) {
+ for (int index=0; index < this.fields.length; index++) {
+ if (this.fields[index].getName().equals(name)) {
+ return index;
+ }
+ }
+ return -1;
+ }
+
+ /**
+ * Method takes a list of Slots and creates a deffact from it.
+ * @param data
+ * @param id
+ * @return
+ */
+ public Fact createFact(long id) {
+ return new FactImpl(this, id);
+ }
+
+ /**
+ * Method will return a string format with the int type code
+ * for the slot type
+ */
+ public String toString(){
+ StringBuffer buf = new StringBuffer();
+ buf.append("(" + this.templateName + " ");
+// for (int idx=0; idx < this.slots.length; idx++){
+// buf.append("(" + this.slots[idx].getName() +
+// " (type " + ConversionUtils.getTypeName(
+// this.slots[idx].getValueType()) +
+// ") ) ");
+// }
+// if (this.clazz != null){
+// buf.append("[" + this.clazz.getClassObject().getName() + "] ");
+// }
+ buf.append(")");
+ return buf.toString();
+ }
+
+}
Added: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/facttemplates/FactTemplateObjectType.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/facttemplates/FactTemplateObjectType.java 2006-08-03 00:14:06 UTC (rev 5421)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/facttemplates/FactTemplateObjectType.java 2006-08-03 00:14:40 UTC (rev 5422)
@@ -0,0 +1,129 @@
+package org.drools.facttemplates;
+
+
+/*
+ * Copyright 2005 JBoss Inc
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import org.drools.RuntimeDroolsException;
+import org.drools.base.ValueType;
+import org.drools.facttemplates.FieldTemplate;
+import org.drools.spi.Evaluator;
+import org.drools.spi.ObjectType;
+
+/**
+ * Java class semantics <code>ObjectType</code>.
+ *
+ * @author <a href="mailto:bob at werken.com">bob at werken.com </a>
+ *
+ * @version $Id: ClassObjectType.java,v 1.5 2005/02/04 02:13:36 mproctor Exp $
+ */
+public class FactTemplateObjectType
+ implements
+ ObjectType {
+ // ------------------------------------------------------------
+ // Instance members
+ // ------------------------------------------------------------
+
+ /**
+ *
+ */
+ private static final long serialVersionUID = 320;
+
+ /** FieldTemplate. */
+ protected FactTemplate factTemplate;
+
+ // ------------------------------------------------------------
+ // Constructors
+ // ------------------------------------------------------------
+
+ /**
+ * Construct.
+ *
+ * @param objectTypeClass
+ * Java object class.
+ */
+ public FactTemplateObjectType(final FactTemplate factTemplate) {
+ this.factTemplate = factTemplate;
+ }
+
+ // ------------------------------------------------------------
+ // Instance methods
+ // ------------------------------------------------------------
+
+ /**
+ * Return the Fact Template.
+ *
+ * @return The Fact Template
+ */
+ public FactTemplate getFactTemplate() {
+ return this.factTemplate;
+ }
+
+ // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+ // org.drools.spi.ObjectType
+ // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+
+ /**
+ * Determine if the passed <code>Object</code> belongs to the object type
+ * defined by this <code>objectType</code> instance.
+ *
+ * @param object
+ * The <code>Object</code> to test.
+ *
+ * @return <code>true</code> if the <code>Object</code> matches this
+ * object type, else <code>false</code>.
+ */
+ public boolean matches(final Object object) {
+ return this.factTemplate == object;
+ }
+
+
+ public ValueType getValueType() {
+ return ValueType.FACTTEMPLATE_TYPE;
+ }
+
+ public String toString() {
+ return "[ClassObjectType class=" + this.factTemplate.getName() + "]";
+ }
+
+ /**
+ * Determine if another object is equal to this.
+ *
+ * @param object
+ * The object to test.
+ *
+ * @return <code>true</code> if <code>object</code> is equal to this,
+ * otherwise <code>false</code>.
+ */
+ public boolean equals(final Object object) {
+ if ( this == object ) {
+ return true;
+ }
+
+ if ( object == null || object.getClass() != FactTemplateObjectType.class ) {
+ return false;
+ }
+
+ FactTemplateObjectType other = ( FactTemplateObjectType ) object;
+
+ return this.factTemplate == other.factTemplate;
+ }
+
+ public int hashCode() {
+ return this.factTemplate.hashCode();
+ }
+
+}
\ No newline at end of file
Added: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/facttemplates/FactTemplatorFieldExtractor.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/facttemplates/FactTemplatorFieldExtractor.java 2006-08-03 00:14:06 UTC (rev 5421)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/facttemplates/FactTemplatorFieldExtractor.java 2006-08-03 00:14:40 UTC (rev 5422)
@@ -0,0 +1,36 @@
+package org.drools.facttemplates;
+
+import org.drools.base.ValueType;
+import org.drools.spi.FieldExtractor;
+
+public class FactTemplatorFieldExtractor
+ implements
+ FieldExtractor {
+
+ private static final long serialVersionUID = 320;
+ private FactTemplate factTemplate;
+ private int fieldIndex;
+
+ public FactTemplatorFieldExtractor(final FactTemplate factTemplate,
+ final int fieldIndex) {
+ this.factTemplate = factTemplate;
+ this.fieldIndex = fieldIndex;
+ }
+
+
+ public ValueType getValueType() {
+ return this.factTemplate.getFieldTemplate( fieldIndex ).getValueType();
+ }
+
+ public Object getValue(Object object) {
+ return ((Fact) object).getFieldValue( this.fieldIndex );
+ }
+
+ public int getIndex() {
+ return this.fieldIndex;
+ }
+
+ public Class getExtractToClass() {
+ return this.factTemplate.getFieldTemplate( fieldIndex ).getValueType().getClass();
+ }
+}
Added: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/facttemplates/FieldTemplate.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/facttemplates/FieldTemplate.java 2006-08-03 00:14:06 UTC (rev 5421)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/facttemplates/FieldTemplate.java 2006-08-03 00:14:40 UTC (rev 5422)
@@ -0,0 +1,13 @@
+package org.drools.facttemplates;
+
+import org.drools.base.ValueType;
+
+public interface FieldTemplate {
+
+ public abstract int getIndex();
+
+ public abstract String getName();
+
+ public abstract ValueType getValueType();
+
+}
\ No newline at end of file
Added: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/facttemplates/FieldTemplateImpl.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/facttemplates/FieldTemplateImpl.java 2006-08-03 00:14:06 UTC (rev 5421)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/facttemplates/FieldTemplateImpl.java 2006-08-03 00:14:40 UTC (rev 5422)
@@ -0,0 +1,48 @@
+package org.drools.facttemplates;
+
+import org.drools.RuntimeDroolsException;
+import org.drools.base.ValueType;
+import org.drools.spi.Evaluator;
+
+public class FieldTemplateImpl
+ implements
+ FieldTemplate {
+
+ private static final long serialVersionUID = 320;
+
+ private final String name;
+ private final int index;
+ private final ValueType valueType;
+
+ public FieldTemplateImpl(String name,
+ int index,
+ Class clazz) {
+ super();
+ this.name = name;
+ this.index = index;
+ this.valueType = ValueType.determineValueType( clazz );
+ }
+
+
+ /* (non-Javadoc)
+ * @see org.drools.facttemplates.FieldTemplate#getIndex()
+ */
+ public int getIndex() {
+ return this.index;
+ }
+
+ /* (non-Javadoc)
+ * @see org.drools.facttemplates.FieldTemplate#getName()
+ */
+ public String getName() {
+ return this.name;
+ }
+
+ /* (non-Javadoc)
+ * @see org.drools.facttemplates.FieldTemplate#getValueType()
+ */
+ public ValueType getValueType() {
+ return this.valueType;
+ }
+
+}
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/AlphaNodeSwitch.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/AlphaNodeSwitch.java 2006-08-03 00:14:06 UTC (rev 5421)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/AlphaNodeSwitch.java 2006-08-03 00:14:40 UTC (rev 5422)
@@ -73,6 +73,14 @@
return this.alphaSwitch.values();
}
+ public int hashCode() {
+ final int PRIME = 31;
+ int result = 1;
+ result = PRIME * result + this.constraint.getEvaluator().getOperator().hashCode();
+ result = PRIME * result + this.constraint.getFieldExtractor().getIndex();
+ return result;
+ }
+
public boolean equals(final Object otherConstraint) {
if ( this == otherConstraint ) {
return true;
@@ -87,9 +95,5 @@
return false;
}
- public int hashCode() {
- return this.constraint.getEvaluator().getOperator() * 17 + this.constraint.getFieldExtractor().getIndex();
- }
-
}
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/HashedObjectSinkList.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/HashedObjectSinkList.java 2006-08-03 00:14:06 UTC (rev 5421)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/HashedObjectSinkList.java 2006-08-03 00:14:40 UTC (rev 5422)
@@ -26,6 +26,7 @@
import java.util.NoSuchElementException;
import org.drools.WorkingMemory;
+import org.drools.base.evaluators.Operator;
import org.drools.common.DefaultFactHandle;
import org.drools.rule.LiteralConstraint;
import org.drools.spi.Evaluator;
@@ -69,7 +70,7 @@
* @inheritDoc
*/
public boolean add(final ObjectSink objectSink) {
- if ( (objectSink instanceof AlphaNode) && (((AlphaNode) objectSink).getConstraint() instanceof LiteralConstraint) && (((LiteralConstraint) ((AlphaNode) objectSink).getConstraint()).getEvaluator().getOperator() == Evaluator.EQUAL) ) {
+ if ( (objectSink instanceof AlphaNode) && (((AlphaNode) objectSink).getConstraint() instanceof LiteralConstraint) && (((LiteralConstraint) ((AlphaNode) objectSink).getConstraint()).getEvaluator().getOperator() == Operator.EQUAL) ) {
final FieldConstraint constraint = ((AlphaNode) objectSink).getConstraint();
final AlphaNodeSwitch wrapper = new AlphaNodeSwitch( (LiteralConstraint) constraint );
@@ -93,7 +94,7 @@
* @inheritDoc
*/
public boolean remove(final ObjectSink objectSink) {
- if ( (objectSink instanceof AlphaNode) && (((AlphaNode) objectSink).getConstraint() instanceof LiteralConstraint) && (((LiteralConstraint) ((AlphaNode) objectSink).getConstraint()).getEvaluator().getOperator() == Evaluator.EQUAL) ) {
+ if ( (objectSink instanceof AlphaNode) && (((AlphaNode) objectSink).getConstraint() instanceof LiteralConstraint) && (((LiteralConstraint) ((AlphaNode) objectSink).getConstraint()).getEvaluator().getOperator() == Operator.EQUAL) ) {
final FieldConstraint constraint = ((AlphaNode) objectSink).getConstraint();
AlphaNodeSwitch wrapper = new AlphaNodeSwitch( (LiteralConstraint) constraint );
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/ReteooBuilder.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/ReteooBuilder.java 2006-08-03 00:14:06 UTC (rev 5421)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/ReteooBuilder.java 2006-08-03 00:14:40 UTC (rev 5422)
@@ -29,8 +29,9 @@
import org.drools.base.ClassFieldExtractor;
import org.drools.base.ClassObjectType;
import org.drools.base.DroolsQuery;
-import org.drools.base.EvaluatorFactory;
import org.drools.base.FieldFactory;
+import org.drools.base.ValueType;
+import org.drools.base.evaluators.Operator;
import org.drools.common.BetaNodeBinder;
import org.drools.common.InstanceEqualsConstraint;
import org.drools.common.InstanceNotEqualsConstraint;
@@ -345,10 +346,10 @@
"name" );
final FieldValue field = FieldFactory.getFieldValue( queryName,
- Evaluator.STRING_TYPE );
+ ValueType.STRING_TYPE );
- final Evaluator evaluator = EvaluatorFactory.getEvaluator( Evaluator.STRING_TYPE,
- Evaluator.EQUAL );
+ final Evaluator evaluator = ValueType.STRING_TYPE.getEvaluator( Operator.EQUAL );
+
final LiteralConstraint constraint = new LiteralConstraint( extractor,
evaluator,
field );
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/beta/BetaMemoryFactory.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/beta/BetaMemoryFactory.java 2006-08-03 00:14:06 UTC (rev 5421)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/beta/BetaMemoryFactory.java 2006-08-03 00:14:40 UTC (rev 5422)
@@ -19,6 +19,8 @@
import javax.naming.OperationNotSupportedException;
import org.drools.RuleBaseConfiguration;
+import org.drools.base.ValueType;
+import org.drools.base.evaluators.Operator;
import org.drools.common.BetaNodeBinder;
import org.drools.rule.VariableConstraint;
import org.drools.spi.Evaluator;
@@ -56,29 +58,24 @@
if ( constraints[i] instanceof VariableConstraint ) {
final VariableConstraint bvc = (VariableConstraint) constraints[i];
BetaLeftMemory innerMemory = null;
- switch ( bvc.getEvaluator().getType() ) {
- case Evaluator.BOOLEAN_TYPE :
- innerMemory = new BooleanConstrainedLeftMemory( bvc.getFieldExtractor(),
- bvc.getRequiredDeclarations()[0],
- bvc.getEvaluator() );
- break;
- case Evaluator.OBJECT_TYPE :
- case Evaluator.SHORT_TYPE :
- case Evaluator.INTEGER_TYPE :
- case Evaluator.DOUBLE_TYPE :
- case Evaluator.FLOAT_TYPE :
- case Evaluator.BYTE_TYPE :
- if ( bvc.getEvaluator().getOperator() == Evaluator.EQUAL ) {
- innerMemory = new ObjectEqualConstrLeftMemory( bvc.getFieldExtractor(),
- bvc.getRequiredDeclarations()[0],
- bvc.getEvaluator() );
- } else if ( bvc.getEvaluator().getOperator() == Evaluator.NOT_EQUAL ) {
- innerMemory = new ObjectNotEqualConstrLeftMemory( bvc.getFieldExtractor(),
- bvc.getRequiredDeclarations()[0],
- bvc.getEvaluator() );
- }
- break;
+ ValueType valueType = bvc.getEvaluator().getValueType();
+ if ( valueType == ValueType.BOOLEAN_TYPE ) {
+ innerMemory = new BooleanConstrainedLeftMemory( bvc.getFieldExtractor(),
+ bvc.getRequiredDeclarations()[0],
+ bvc.getEvaluator() );
+ } else {
+ //@todo : edson is this ok?
+ if ( bvc.getEvaluator().getOperator() == Operator.EQUAL ) {
+ innerMemory = new ObjectEqualConstrLeftMemory( bvc.getFieldExtractor(),
+ bvc.getRequiredDeclarations()[0],
+ bvc.getEvaluator() );
+ } else if ( bvc.getEvaluator().getOperator() == Operator.NOT_EQUAL ) {
+ innerMemory = new ObjectNotEqualConstrLeftMemory( bvc.getFieldExtractor(),
+ bvc.getRequiredDeclarations()[0],
+ bvc.getEvaluator() );
+ }
}
+
if ( innerMemory != null ) {
if ( innerMostMemory != null ) {
try {
@@ -121,29 +118,26 @@
if ( constraints[i] instanceof VariableConstraint ) {
final VariableConstraint bvc = (VariableConstraint) constraints[i];
BetaRightMemory innerMemory = null;
- switch ( bvc.getEvaluator().getType() ) {
- case Evaluator.BOOLEAN_TYPE :
+ ValueType valueType = bvc.getEvaluator().getValueType();
+ if ( valueType == ValueType.BOOLEAN_TYPE ) {
+ if ( valueType == ValueType.BOOLEAN_TYPE ) {
innerMemory = new BooleanConstrainedRightMemory( bvc.getFieldExtractor(),
bvc.getRequiredDeclarations()[0],
bvc.getEvaluator() );
- break;
- case Evaluator.OBJECT_TYPE :
- case Evaluator.SHORT_TYPE :
- case Evaluator.INTEGER_TYPE :
- case Evaluator.DOUBLE_TYPE :
- case Evaluator.FLOAT_TYPE :
- case Evaluator.BYTE_TYPE :
- if ( bvc.getEvaluator().getOperator() == Evaluator.EQUAL ) {
- innerMemory = new ObjectEqualConstrRightMemory( bvc.getFieldExtractor(),
- bvc.getRequiredDeclarations()[0],
- bvc.getEvaluator() );
- } else if ( bvc.getEvaluator().getOperator() == Evaluator.NOT_EQUAL ) {
- innerMemory = new ObjectNotEqualConstrRightMemory( bvc.getFieldExtractor(),
- bvc.getRequiredDeclarations()[0],
- bvc.getEvaluator() );
- }
- break;
+ }
+ } else {
+ //@todo : edson is this ok?
+ if ( bvc.getEvaluator().getOperator() == Operator.EQUAL ) {
+ innerMemory = new ObjectEqualConstrRightMemory( bvc.getFieldExtractor(),
+ bvc.getRequiredDeclarations()[0],
+ bvc.getEvaluator() );
+ } else if ( bvc.getEvaluator().getOperator() == Operator.NOT_EQUAL ) {
+ innerMemory = new ObjectNotEqualConstrRightMemory( bvc.getFieldExtractor(),
+ bvc.getRequiredDeclarations()[0],
+ bvc.getEvaluator() );
+ }
}
+
if ( innerMemory != null ) {
if ( innerMostMemory != null ) {
try {
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/beta/BooleanConstrainedLeftMemory.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/beta/BooleanConstrainedLeftMemory.java 2006-08-03 00:14:06 UTC (rev 5421)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/beta/BooleanConstrainedLeftMemory.java 2006-08-03 00:14:40 UTC (rev 5422)
@@ -20,6 +20,7 @@
import java.util.NoSuchElementException;
import org.drools.WorkingMemory;
+import org.drools.base.evaluators.Operator;
import org.drools.common.InternalFactHandle;
import org.drools.reteoo.ReteTuple;
import org.drools.rule.Declaration;
@@ -281,7 +282,7 @@
public final void selectPossibleMatches(final WorkingMemory workingMemory,
final InternalFactHandle handle) {
boolean select = ((Boolean) this.extractor.getValue( handle.getObject() )).booleanValue();
- select = (this.evaluator.getOperator()) == Evaluator.EQUAL ? select : !select;
+ select = (this.evaluator.getOperator()) == Operator.EQUAL ? select : !select;
if ( select == true ) {
this.selectedList = this.trueList;
} else {
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/beta/BooleanConstrainedRightMemory.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/beta/BooleanConstrainedRightMemory.java 2006-08-03 00:14:06 UTC (rev 5421)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/beta/BooleanConstrainedRightMemory.java 2006-08-03 00:14:40 UTC (rev 5422)
@@ -22,6 +22,7 @@
import java.util.TreeSet;
import org.drools.WorkingMemory;
+import org.drools.base.evaluators.Operator;
import org.drools.common.DefaultFactHandle;
import org.drools.reteoo.ObjectMatches;
import org.drools.reteoo.ReteTuple;
@@ -215,7 +216,7 @@
public final void selectPossibleMatches(final WorkingMemory workingMemory,
final ReteTuple tuple) {
boolean select = ((Boolean) this.declaration.getValue( tuple.get( this.column ).getObject() )).booleanValue();
- select = (this.evaluator.getOperator()) == Evaluator.EQUAL ? select : !select;
+ select = (this.evaluator.getOperator()) == Operator.EQUAL ? select : !select;
this.selectedList = (select == true) ? this.trueList : this.falseList;
if ( this.innerMemory != null ) {
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/Declaration.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/Declaration.java 2006-08-03 00:14:06 UTC (rev 5421)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/Declaration.java 2006-08-03 00:14:40 UTC (rev 5422)
@@ -42,6 +42,7 @@
import java.io.Serializable;
+import org.drools.base.ValueType;
import org.drools.spi.Extractor;
import org.drools.spi.ObjectType;
@@ -122,12 +123,12 @@
}
/**
- * Retrieve the <code>ObjectType</code>.
+ * Retrieve the <code>ValueType</code>.
*
- * @return The object-type.
+ * @return The ValueType.
*/
- public ObjectType getObjectType() {
- return this.extractor.getObjectType();
+ public ValueType getValueType() {
+ return this.extractor.getValueType();
}
/**
@@ -159,7 +160,7 @@
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
public String toString() {
- return "[Declaration: type=" + this.extractor.getObjectType() + " identifier=" + this.identifier + "]";
+ return "[Declaration: type=" + this.extractor.getValueType() + " identifier=" + this.identifier + "]";
}
public int hashCode() {
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/spi/ColumnExtractor.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/spi/ColumnExtractor.java 2006-08-03 00:14:06 UTC (rev 5421)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/spi/ColumnExtractor.java 2006-08-03 00:14:40 UTC (rev 5422)
@@ -1,5 +1,9 @@
package org.drools.spi;
+import org.drools.base.ClassObjectType;
+import org.drools.base.ValueType;
+import org.drools.facttemplates.FactTemplate;
+
/*
* Copyright 2005 JBoss Inc
*
@@ -38,4 +42,17 @@
return this.objectType;
}
+ public Class getExtractToClass() {
+ // @todo : this is a bit nasty, but does the trick
+ if ( objectType.getClass() == ClassObjectType.class ) {
+ return ( ( ClassObjectType ) objectType ).getClassType();
+ } else {
+ return FactTemplate.class;
+ }
+ }
+
+ public ValueType getValueType() {
+ return objectType.getValueType();
+ }
+
}
\ No newline at end of file
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/spi/Evaluator.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/spi/Evaluator.java 2006-08-03 00:14:06 UTC (rev 5421)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/spi/Evaluator.java 2006-08-03 00:14:40 UTC (rev 5422)
@@ -18,39 +18,42 @@
import java.io.Serializable;
+import org.drools.base.ValueType;
+import org.drools.base.evaluators.Operator;
+
public interface Evaluator
extends
Serializable {
- // Operators
- public static final int EQUAL = 1;
- public static final int NOT_EQUAL = 10;
- public static final int LESS = 20;
- public static final int LESS_OR_EQUAL = 30;
- public static final int GREATER = 40;
- public static final int GREATER_OR_EQUAL = 50;
- public static final int CONTAINS = 60;
- public static final int MATCHES = 70;
- public static final int EXCLUDES = 80;
+// // Operators
+// public static final int EQUAL = 1;
+// public static final int NOT_EQUAL = 10;
+// public static final int LESS = 20;
+// public static final int LESS_OR_EQUAL = 30;
+// public static final int GREATER = 40;
+// public static final int GREATER_OR_EQUAL = 50;
+// public static final int CONTAINS = 60;
+// public static final int MATCHES = 70;
+// public static final int EXCLUDES = 80;
+//
+// // Types
+// public static final int CHAR_TYPE = 100;
+// public static final int BYTE_TYPE = 110;
+// public static final int SHORT_TYPE = 120;
+// public static final int INTEGER_TYPE = 130;
+// public static final int LONG_TYPE = 140;
+// public static final int FLOAT_TYPE = 150;
+// public static final int DOUBLE_TYPE = 160;
+// public static final int BOOLEAN_TYPE = 170;
+// public static final int STRING_TYPE = 180;
+// public static final int DATE_TYPE = 190;
+// public static final int ARRAY_TYPE = 200;
+// public static final int OBJECT_TYPE = 210;
+// public static final int NULL_TYPE = 300;
- // Types
- public static final int CHAR_TYPE = 100;
- public static final int BYTE_TYPE = 110;
- public static final int SHORT_TYPE = 120;
- public static final int INTEGER_TYPE = 130;
- public static final int LONG_TYPE = 140;
- public static final int FLOAT_TYPE = 150;
- public static final int DOUBLE_TYPE = 160;
- public static final int BOOLEAN_TYPE = 170;
- public static final int STRING_TYPE = 180;
- public static final int DATE_TYPE = 190;
- public static final int ARRAY_TYPE = 200;
- public static final int OBJECT_TYPE = 210;
- public static final int NULL_TYPE = 300;
+ public ValueType getValueType();
- public int getType();
+ public Operator getOperator();
- public int getOperator();
-
/**
* This method will apply the evaluator on the objects.
*
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/spi/Extractor.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/spi/Extractor.java 2006-08-03 00:14:06 UTC (rev 5421)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/spi/Extractor.java 2006-08-03 00:14:40 UTC (rev 5422)
@@ -18,10 +18,15 @@
import java.io.Serializable;
+import org.drools.base.ValueType;
+
public interface Extractor
extends
Serializable {
- Object getValue(Object object);
+
+ public Object getValue(Object object);
- ObjectType getObjectType();
+ public ValueType getValueType();
+
+ public Class getExtractToClass();
}
\ No newline at end of file
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/spi/ObjectType.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/spi/ObjectType.java 2006-08-03 00:14:06 UTC (rev 5421)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/spi/ObjectType.java 2006-08-03 00:14:40 UTC (rev 5422)
@@ -18,6 +18,8 @@
import java.io.Serializable;
+import org.drools.base.ValueType;
+
/**
* Semantic object type differentiator.
*
@@ -40,5 +42,6 @@
*/
boolean matches(Object object);
- int getValueType();
+ ValueType getValueType();
+
}
\ No newline at end of file
Deleted: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/spi/Semaphore.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/spi/Semaphore.java 2006-08-03 00:14:06 UTC (rev 5421)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/spi/Semaphore.java 2006-08-03 00:14:40 UTC (rev 5422)
@@ -1,28 +0,0 @@
-package org.drools.spi;
-
-/*
- * Copyright 2005 JBoss Inc
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-import java.io.Serializable;
-
-/**
- * @author mproctor
- */
-public interface Semaphore
- extends
- Serializable {
- public String getIdentifier();
-}
\ No newline at end of file
Modified: labs/jbossrules/trunk/drools-core/src/test/java/org/drools/base/EvaluatorFactoryTest.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/test/java/org/drools/base/EvaluatorFactoryTest.java 2006-08-03 00:14:06 UTC (rev 5421)
+++ labs/jbossrules/trunk/drools-core/src/test/java/org/drools/base/EvaluatorFactoryTest.java 2006-08-03 00:14:40 UTC (rev 5422)
@@ -25,6 +25,7 @@
import junit.framework.TestCase;
+import org.drools.base.evaluators.Operator;
import org.drools.spi.Evaluator;
/**
@@ -47,7 +48,7 @@
};
runEvaluatorTest( data,
- Evaluator.OBJECT_TYPE );
+ ValueType.OBJECT_TYPE );
}
@@ -59,7 +60,7 @@
{field, "==", null, Boolean.FALSE}};
runEvaluatorTest( data,
- Evaluator.ARRAY_TYPE );
+ ValueType.ARRAY_TYPE );
}
@@ -72,7 +73,7 @@
};
runEvaluatorTest( data,
- Evaluator.STRING_TYPE );
+ ValueType.STRING_TYPE );
}
@@ -84,7 +85,7 @@
{null, "!=", new Integer( 42 ), Boolean.TRUE}};
runEvaluatorTest( data,
- Evaluator.INTEGER_TYPE );
+ ValueType.INTEGER_TYPE );
}
@@ -95,7 +96,7 @@
{new Short( (short) 42 ), "!=", new Short( (short) 41 ), Boolean.TRUE}, {new Short( (short) 42 ), "!=", null, Boolean.TRUE}};
runEvaluatorTest( data,
- Evaluator.SHORT_TYPE );
+ ValueType.SHORT_TYPE );
}
public void testBoolean() {
@@ -107,7 +108,7 @@
};
runEvaluatorTest( data,
- Evaluator.BOOLEAN_TYPE );
+ ValueType.BOOLEAN_TYPE );
}
public void testDouble() {
@@ -116,7 +117,7 @@
{new Double( 42 ), ">=", new Double( 100 ), Boolean.FALSE}, {new Double( 42 ), "<", new Double( 1 ), Boolean.FALSE}, {new Double( 42 ), "==", null, Boolean.FALSE}, {null, "!=", new Double( 1 ), Boolean.TRUE}};
runEvaluatorTest( data,
- Evaluator.DOUBLE_TYPE );
+ ValueType.DOUBLE_TYPE );
}
public void testFloat() {
@@ -125,7 +126,7 @@
{new Float( 42 ), ">=", new Float( 100 ), Boolean.FALSE}, {new Float( 42 ), "<", new Float( 1 ), Boolean.FALSE}, {new Float( 42 ), "==", null, Boolean.FALSE}, {null, "!=", new Float( 1 ), Boolean.TRUE}};
runEvaluatorTest( data,
- Evaluator.FLOAT_TYPE );
+ ValueType.FLOAT_TYPE );
}
public void testLong() {
@@ -134,7 +135,7 @@
{new Long( 42 ), "<", new Long( 1 ), Boolean.FALSE}, {new Long( 42 ), "==", null, Boolean.FALSE}, {null, "!=", new Long( 1 ), Boolean.TRUE}};
runEvaluatorTest( data,
- Evaluator.LONG_TYPE );
+ ValueType.LONG_TYPE );
}
public void testCharacter() {
@@ -143,7 +144,7 @@
{new Character( 'z' ), ">=", new Character( 'a' ), Boolean.TRUE}, {new Character( 'a' ), ">=", new Character( 'z' ), Boolean.FALSE}, {new Character( 'z' ), "<", new Character( 'a' ), Boolean.FALSE},
{new Character( 'z' ), "==", null, Boolean.FALSE}, {null, "!=", new Character( 'a' ), Boolean.TRUE}};
runEvaluatorTest( data,
- Evaluator.CHAR_TYPE );
+ ValueType.CHAR_TYPE );
}
public void testDate() throws Exception {
@@ -158,31 +159,30 @@
{df.parse( "10-Jul-1974" ), "!=", "11-Jul-1974", Boolean.TRUE}, {df.parse( "10-Jul-2000" ), ">", "10-Jul-1974", Boolean.TRUE}, {df.parse( "10-Jul-1974" ), ">=", "10-Jul-1974", Boolean.TRUE},
{df.parse( "11-Jul-1974" ), ">=", "10-Jul-1974", Boolean.TRUE}, {df.parse( "10-Jul-1974" ), ">=", "11-Jul-1974", Boolean.FALSE}, {df.parse( "10-Jul-1974" ), "==", null, Boolean.FALSE}, {null, "!=", "11-Jul-1974", Boolean.TRUE}};
runEvaluatorTest( data,
- Evaluator.DATE_TYPE );
+ ValueType.DATE_TYPE );
}
public void testByte() {
final Object[][] data = {{new Byte( "1" ), "==", new Byte( "1" ), Boolean.TRUE}, {new Byte( "1" ), "==", new Byte( "2" ), Boolean.FALSE}, {new Byte( "1" ), "!=", new Byte( "2" ), Boolean.TRUE},
{new Byte( "1" ), "!=", new Byte( "1" ), Boolean.FALSE}, {new Byte( "1" ), "<=", new Byte( "1" ), Boolean.TRUE}, {new Byte( "1" ), "==", null, Boolean.FALSE}, {null, "!=", new Byte( "1" ), Boolean.TRUE}};
runEvaluatorTest( data,
- Evaluator.BYTE_TYPE );
+ ValueType.BYTE_TYPE );
}
/**
* Test utility to play the data through the evaluators.
* @param data The data to try out : Array of {arg1, operator, arg2}
- * @param evalType The Evaluator.**_TYPE to test
+ * @param valueType The Evaluator.**_TYPE to test
*/
private void runEvaluatorTest(final Object[][] data,
- final int evalType) {
+ final ValueType valueType) {
for ( int i = 0; i < data.length; i++ ) {
final Object[] row = data[i];
- final Evaluator evaluator = EvaluatorFactory.getEvaluator( evalType,
- (String) row[1] );
+ final Evaluator evaluator = valueType.getEvaluator( Operator.determineOperator( (String) row[1] ) );
final boolean result = evaluator.evaluate( row[0],
row[2] );
- final String message = "The evaluator type: [" + evalType + "] incorrectly returned " + result + " for [" + row[0] + " " + row[1] + " " + row[2] + "]. It was asserted to return " + row[3];
+ final String message = "The evaluator type: [" + valueType + "] incorrectly returned " + result + " for [" + row[0] + " " + row[1] + " " + row[2] + "]. It was asserted to return " + row[3];
if ( row[3] == Boolean.TRUE ) {
assertTrue( message,
@@ -192,8 +192,8 @@
result );
}
- assertEquals( evalType,
- evaluator.getType() );
+ assertEquals( valueType,
+ evaluator.getValueType() );
}
}
Modified: labs/jbossrules/trunk/drools-core/src/test/java/org/drools/examples/manners/BaseMannersTest.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/test/java/org/drools/examples/manners/BaseMannersTest.java 2006-08-03 00:14:06 UTC (rev 5421)
+++ labs/jbossrules/trunk/drools-core/src/test/java/org/drools/examples/manners/BaseMannersTest.java 2006-08-03 00:14:40 UTC (rev 5422)
@@ -35,7 +35,8 @@
import org.drools.WorkingMemory;
import org.drools.base.ClassFieldExtractor;
import org.drools.base.ClassObjectType;
-import org.drools.base.EvaluatorFactory;
+import org.drools.base.ValueType;
+import org.drools.base.evaluators.Operator;
import org.drools.rule.VariableConstraint;
import org.drools.rule.Column;
import org.drools.rule.Declaration;
@@ -92,21 +93,13 @@
this.pathType = new ClassObjectType( Path.class );
this.chosenType = new ClassObjectType( Chosen.class );
- this.integerEqualEvaluator = EvaluatorFactory.getInstance().getEvaluator( Evaluator.INTEGER_TYPE,
- Evaluator.EQUAL );
- this.integerNotEqualEvaluator = EvaluatorFactory.getInstance().getEvaluator( Evaluator.INTEGER_TYPE,
- Evaluator.NOT_EQUAL );
+ this.integerEqualEvaluator = ValueType.INTEGER_TYPE.getEvaluator( Operator.EQUAL );
+ this.integerNotEqualEvaluator = ValueType.INTEGER_TYPE.getEvaluator( Operator.NOT_EQUAL );
+ this.objectEqualEvaluator = ValueType.OBJECT_TYPE.getEvaluator( Operator.EQUAL );
+ this.objectNotEqualEvaluator = ValueType.OBJECT_TYPE.getEvaluator( Operator.NOT_EQUAL );
+ this.booleanEqualEvaluator = ValueType.BOOLEAN_TYPE.getEvaluator( Operator.EQUAL );
+ this.booleanNotEqualEvaluator = ValueType.BOOLEAN_TYPE.getEvaluator( Operator.NOT_EQUAL );
- this.objectEqualEvaluator = EvaluatorFactory.getInstance().getEvaluator( Evaluator.OBJECT_TYPE,
- Evaluator.EQUAL );
- this.objectNotEqualEvaluator = EvaluatorFactory.getInstance().getEvaluator( Evaluator.OBJECT_TYPE,
- Evaluator.NOT_EQUAL );
-
- this.booleanEqualEvaluator = EvaluatorFactory.getInstance().getEvaluator( Evaluator.BOOLEAN_TYPE,
- Evaluator.EQUAL );
- this.booleanNotEqualEvaluator = EvaluatorFactory.getInstance().getEvaluator( Evaluator.BOOLEAN_TYPE,
- Evaluator.NOT_EQUAL );
-
this.pkg = new Package( "Miss Manners" );
this.pkg.addRule( getAssignFirstSeatRule() );
this.pkg.addRule( getFindSeating() );
Modified: labs/jbossrules/trunk/drools-core/src/test/java/org/drools/examples/waltz/BaseWaltzTest.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/test/java/org/drools/examples/waltz/BaseWaltzTest.java 2006-08-03 00:14:06 UTC (rev 5421)
+++ labs/jbossrules/trunk/drools-core/src/test/java/org/drools/examples/waltz/BaseWaltzTest.java 2006-08-03 00:14:40 UTC (rev 5422)
@@ -31,7 +31,8 @@
import org.drools.WorkingMemory;
import org.drools.base.ClassFieldExtractorFactory;
import org.drools.base.ClassObjectType;
-import org.drools.base.EvaluatorFactory;
+import org.drools.base.ValueType;
+import org.drools.base.evaluators.Operator;
import org.drools.rule.VariableConstraint;
import org.drools.rule.Column;
import org.drools.rule.Declaration;
@@ -88,25 +89,16 @@
this.edgeType = new ClassObjectType( Edge.class );
this.junctionType = new ClassObjectType( Junction.class );
// evaluators
- this.integerEqualEvaluator = EvaluatorFactory.getEvaluator( Evaluator.INTEGER_TYPE,
- Evaluator.EQUAL );
- this.integerNotEqualEvaluator = EvaluatorFactory.getEvaluator( Evaluator.INTEGER_TYPE,
- Evaluator.NOT_EQUAL );
- this.integerGreaterEvaluator = EvaluatorFactory.getEvaluator( Evaluator.INTEGER_TYPE,
- Evaluator.GREATER );
- this.integerLessEvaluator = EvaluatorFactory.getEvaluator( Evaluator.INTEGER_TYPE,
- Evaluator.LESS );
+
+ this.integerEqualEvaluator = ValueType.INTEGER_TYPE.getEvaluator( Operator.EQUAL );
+ this.integerNotEqualEvaluator = ValueType.INTEGER_TYPE.getEvaluator( Operator.NOT_EQUAL );
+ this.integerGreaterEvaluator = ValueType.INTEGER_TYPE.getEvaluator( Operator.GREATER );
+ this.integerLessEvaluator = ValueType.INTEGER_TYPE.getEvaluator( Operator.LESS );
+ this.objectEqualEvaluator = ValueType.OBJECT_TYPE.getEvaluator( Operator.EQUAL );
+ this.objectNotEqualEvaluator = ValueType.OBJECT_TYPE.getEvaluator( Operator.NOT_EQUAL );
+ this.booleanEqualEvaluator = ValueType.BOOLEAN_TYPE.getEvaluator( Operator.EQUAL );
+ this.booleanNotEqualEvaluator = ValueType.BOOLEAN_TYPE.getEvaluator( Operator.NOT_EQUAL );
- this.objectEqualEvaluator = EvaluatorFactory.getEvaluator( Evaluator.OBJECT_TYPE,
- Evaluator.EQUAL );
- this.objectNotEqualEvaluator = EvaluatorFactory.getEvaluator( Evaluator.OBJECT_TYPE,
- Evaluator.NOT_EQUAL );
-
- this.booleanEqualEvaluator = EvaluatorFactory.getEvaluator( Evaluator.BOOLEAN_TYPE,
- Evaluator.EQUAL );
- this.booleanNotEqualEvaluator = EvaluatorFactory.getEvaluator( Evaluator.BOOLEAN_TYPE,
- Evaluator.NOT_EQUAL );
-
// rules
this.pkg = new Package( "Waltz" );
this.pkg.addRule( getBeginRule() );
Modified: labs/jbossrules/trunk/drools-core/src/test/java/org/drools/leaps/ColumnConstraintsTest.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/test/java/org/drools/leaps/ColumnConstraintsTest.java 2006-08-03 00:14:06 UTC (rev 5421)
+++ labs/jbossrules/trunk/drools-core/src/test/java/org/drools/leaps/ColumnConstraintsTest.java 2006-08-03 00:14:40 UTC (rev 5422)
@@ -26,7 +26,8 @@
import org.drools.RuleBaseFactory;
import org.drools.base.ClassFieldExtractor;
import org.drools.base.ClassObjectType;
-import org.drools.base.EvaluatorFactory;
+import org.drools.base.ValueType;
+import org.drools.base.evaluators.Operator;
import org.drools.examples.manners.Context;
import org.drools.rule.Column;
import org.drools.rule.LiteralConstraint;
@@ -49,10 +50,8 @@
protected void setUp() throws Exception {
super.setUp();
- this.integerEqualEvaluator = EvaluatorFactory.getEvaluator( Evaluator.INTEGER_TYPE,
- Evaluator.EQUAL );
- this.integerNotEqualEvaluator = EvaluatorFactory.getEvaluator( Evaluator.INTEGER_TYPE,
- Evaluator.NOT_EQUAL );
+ this.integerEqualEvaluator = ValueType.INTEGER_TYPE.getEvaluator( Operator.EQUAL );
+ this.integerNotEqualEvaluator = ValueType.INTEGER_TYPE.getEvaluator( Operator.NOT_EQUAL );
}
/*
Modified: labs/jbossrules/trunk/drools-core/src/test/java/org/drools/leaps/LeapsRuleBaseTest.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/test/java/org/drools/leaps/LeapsRuleBaseTest.java 2006-08-03 00:14:06 UTC (rev 5421)
+++ labs/jbossrules/trunk/drools-core/src/test/java/org/drools/leaps/LeapsRuleBaseTest.java 2006-08-03 00:14:40 UTC (rev 5422)
@@ -24,7 +24,8 @@
import org.drools.WorkingMemory;
import org.drools.base.ClassFieldExtractor;
import org.drools.base.ClassObjectType;
-import org.drools.base.EvaluatorFactory;
+import org.drools.base.ValueType;
+import org.drools.base.evaluators.Operator;
import org.drools.examples.manners.Context;
import org.drools.rule.Column;
import org.drools.rule.Declaration;
@@ -91,8 +92,7 @@
this.workingMemory = this.ruleBaseAddRule.newWorkingMemory();
// rules
final ClassObjectType contextType = new ClassObjectType( Context.class );
- final Evaluator integerEqualEvaluator = EvaluatorFactory.getEvaluator( Evaluator.INTEGER_TYPE,
- Evaluator.EQUAL );
+ final Evaluator integerEqualEvaluator = ValueType.INTEGER_TYPE.getEvaluator( Operator.EQUAL );
// rule 1
// fires on context.state == integer(1)
this.rule1 = new Rule( "rule1" );
Modified: labs/jbossrules/trunk/drools-core/src/test/java/org/drools/leaps/QueryResultsTest.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/test/java/org/drools/leaps/QueryResultsTest.java 2006-08-03 00:14:06 UTC (rev 5421)
+++ labs/jbossrules/trunk/drools-core/src/test/java/org/drools/leaps/QueryResultsTest.java 2006-08-03 00:14:40 UTC (rev 5422)
@@ -27,7 +27,8 @@
import org.drools.WorkingMemory;
import org.drools.base.ClassFieldExtractor;
import org.drools.base.ClassObjectType;
-import org.drools.base.EvaluatorFactory;
+import org.drools.base.ValueType;
+import org.drools.base.evaluators.Operator;
import org.drools.rule.Column;
import org.drools.rule.LiteralConstraint;
import org.drools.rule.Query;
@@ -47,8 +48,7 @@
final LeapsRuleBase ruleBase = (LeapsRuleBase) RuleBaseFactory.newRuleBase( RuleBase.LEAPS );
final ClassObjectType cheeseObjectType = new ClassObjectType( Cheese.class );
- final Evaluator evaluator = EvaluatorFactory.getEvaluator( Evaluator.STRING_TYPE,
- Evaluator.EQUAL );
+ final Evaluator evaluator = ValueType.STRING_TYPE.getEvaluator( Operator.EQUAL );
// fires on context.state == integer(1)
final Query query = new Query( "query-1" );
Modified: labs/jbossrules/trunk/drools-core/src/test/java/org/drools/leaps/QueryTest.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/test/java/org/drools/leaps/QueryTest.java 2006-08-03 00:14:06 UTC (rev 5421)
+++ labs/jbossrules/trunk/drools-core/src/test/java/org/drools/leaps/QueryTest.java 2006-08-03 00:14:40 UTC (rev 5422)
@@ -24,7 +24,8 @@
import org.drools.WorkingMemory;
import org.drools.base.ClassFieldExtractor;
import org.drools.base.ClassObjectType;
-import org.drools.base.EvaluatorFactory;
+import org.drools.base.ValueType;
+import org.drools.base.evaluators.Operator;
import org.drools.examples.manners.Context;
import org.drools.rule.Column;
import org.drools.rule.Declaration;
@@ -83,8 +84,7 @@
this.workingMemory = this.ruleBaseAddRule.newWorkingMemory();
// rules
final ClassObjectType contextType = new ClassObjectType( Context.class );
- final Evaluator integerEqualEvaluator = EvaluatorFactory.getEvaluator( Evaluator.INTEGER_TYPE,
- Evaluator.EQUAL );
+ final Evaluator integerEqualEvaluator = ValueType.INTEGER_TYPE.getEvaluator( Operator.EQUAL );
// rule 1
// fires on context.state == integer(1)
this.rule1 = new Query( "query-to-execute" );
Modified: labs/jbossrules/trunk/drools-core/src/test/java/org/drools/reteoo/AlphaNodeSwitchTest.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/test/java/org/drools/reteoo/AlphaNodeSwitchTest.java 2006-08-03 00:14:06 UTC (rev 5421)
+++ labs/jbossrules/trunk/drools-core/src/test/java/org/drools/reteoo/AlphaNodeSwitchTest.java 2006-08-03 00:14:40 UTC (rev 5422)
@@ -22,7 +22,8 @@
import org.drools.Cheese;
import org.drools.RuleBaseFactory;
import org.drools.base.ClassFieldExtractor;
-import org.drools.base.EvaluatorFactory;
+import org.drools.base.ValueType;
+import org.drools.base.evaluators.Operator;
import org.drools.common.DefaultFactHandle;
import org.drools.rule.LiteralConstraint;
import org.drools.spi.Evaluator;
@@ -54,8 +55,7 @@
final FieldValue field1 = new MockField( "cheddar" );
final FieldValue field2 = new MockField( "mussarela" );
- final Evaluator evaluator = EvaluatorFactory.getEvaluator( Evaluator.OBJECT_TYPE,
- Evaluator.EQUAL );
+ final Evaluator evaluator = ValueType.OBJECT_TYPE.getEvaluator( Operator.EQUAL );
this.constraint1 = new LiteralConstraint( extractor,
evaluator,
field1 );
Modified: labs/jbossrules/trunk/drools-core/src/test/java/org/drools/reteoo/AlphaNodeTest.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/test/java/org/drools/reteoo/AlphaNodeTest.java 2006-08-03 00:14:06 UTC (rev 5421)
+++ labs/jbossrules/trunk/drools-core/src/test/java/org/drools/reteoo/AlphaNodeTest.java 2006-08-03 00:14:40 UTC (rev 5422)
@@ -25,7 +25,8 @@
import org.drools.FactException;
import org.drools.RuleBaseFactory;
import org.drools.base.ClassFieldExtractor;
-import org.drools.base.EvaluatorFactory;
+import org.drools.base.ValueType;
+import org.drools.base.evaluators.Operator;
import org.drools.common.DefaultFactHandle;
import org.drools.common.PropagationContextImpl;
import org.drools.rule.LiteralConstraint;
@@ -84,8 +85,7 @@
final FieldValue field = new MockField( "cheddar" );
- final Evaluator evaluator = EvaluatorFactory.getEvaluator( Evaluator.OBJECT_TYPE,
- Evaluator.EQUAL );
+ final Evaluator evaluator = ValueType.OBJECT_TYPE.getEvaluator( Operator.EQUAL );
final LiteralConstraint constraint = new LiteralConstraint( extractor,
evaluator,
field );
@@ -169,8 +169,7 @@
final FieldValue field = new MockField( "cheddar" );
- final Evaluator evaluator = EvaluatorFactory.getEvaluator( Evaluator.OBJECT_TYPE,
- Evaluator.EQUAL );
+ final Evaluator evaluator = ValueType.OBJECT_TYPE.getEvaluator( Operator.EQUAL );
final LiteralConstraint constraint = new LiteralConstraint( extractor,
evaluator,
field );
@@ -231,8 +230,7 @@
final FieldValue field = new MockField( "cheddar" );
- final Evaluator evaluator = EvaluatorFactory.getEvaluator( Evaluator.OBJECT_TYPE,
- Evaluator.EQUAL );
+ final Evaluator evaluator = ValueType.OBJECT_TYPE.getEvaluator( Operator.EQUAL );
final LiteralConstraint constraint = new LiteralConstraint( extractor,
evaluator,
field );
@@ -313,8 +311,7 @@
final FieldValue field = new MockField( "cheddar" );
- final Evaluator evaluator = EvaluatorFactory.getEvaluator( Evaluator.OBJECT_TYPE,
- Evaluator.EQUAL );
+ final Evaluator evaluator = ValueType.OBJECT_TYPE.getEvaluator( Operator.EQUAL );
final LiteralConstraint constraint = new LiteralConstraint( extractor,
evaluator,
field );
Modified: labs/jbossrules/trunk/drools-core/src/test/java/org/drools/reteoo/HashedObjectSinkListTest.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/test/java/org/drools/reteoo/HashedObjectSinkListTest.java 2006-08-03 00:14:06 UTC (rev 5421)
+++ labs/jbossrules/trunk/drools-core/src/test/java/org/drools/reteoo/HashedObjectSinkListTest.java 2006-08-03 00:14:40 UTC (rev 5422)
@@ -25,7 +25,8 @@
import org.drools.Cheese;
import org.drools.RuleBaseFactory;
import org.drools.base.ClassFieldExtractor;
-import org.drools.base.EvaluatorFactory;
+import org.drools.base.ValueType;
+import org.drools.base.evaluators.Operator;
import org.drools.common.DefaultFactHandle;
import org.drools.rule.LiteralConstraint;
import org.drools.spi.Evaluator;
@@ -165,8 +166,7 @@
final FieldValue field1 = new MockField( "cheddar" );
final FieldValue field2 = new MockField( "mussarela" );
- final Evaluator evaluator = EvaluatorFactory.getEvaluator( Evaluator.OBJECT_TYPE,
- Evaluator.EQUAL );
+ final Evaluator evaluator = ValueType.OBJECT_TYPE.getEvaluator( Operator.EQUAL );
final LiteralConstraint constraint1 = new LiteralConstraint( extractor,
evaluator,
field1 );
Modified: labs/jbossrules/trunk/drools-core/src/test/java/org/drools/reteoo/QueryTerminalNodeTest.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/test/java/org/drools/reteoo/QueryTerminalNodeTest.java 2006-08-03 00:14:06 UTC (rev 5421)
+++ labs/jbossrules/trunk/drools-core/src/test/java/org/drools/reteoo/QueryTerminalNodeTest.java 2006-08-03 00:14:40 UTC (rev 5422)
@@ -28,7 +28,8 @@
import org.drools.base.ClassFieldExtractor;
import org.drools.base.ClassObjectType;
import org.drools.base.DroolsQuery;
-import org.drools.base.EvaluatorFactory;
+import org.drools.base.ValueType;
+import org.drools.base.evaluators.Operator;
import org.drools.rule.LiteralConstraint;
import org.drools.rule.Query;
import org.drools.spi.Evaluator;
@@ -51,8 +52,7 @@
FieldValue field = new MockField( "query-1" );
- final Evaluator evaluator = EvaluatorFactory.getEvaluator( Evaluator.STRING_TYPE,
- Evaluator.EQUAL );
+ final Evaluator evaluator = ValueType.STRING_TYPE.getEvaluator( Operator.EQUAL );
LiteralConstraint constraint = new LiteralConstraint( extractor,
evaluator,
field );
Modified: labs/jbossrules/trunk/drools-core/src/test/java/org/drools/reteoo/beta/BooleanConstrainedLeftMemoryTest.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/test/java/org/drools/reteoo/beta/BooleanConstrainedLeftMemoryTest.java 2006-08-03 00:14:06 UTC (rev 5421)
+++ labs/jbossrules/trunk/drools-core/src/test/java/org/drools/reteoo/beta/BooleanConstrainedLeftMemoryTest.java 2006-08-03 00:14:40 UTC (rev 5422)
@@ -22,7 +22,8 @@
import junit.framework.Assert;
import org.drools.base.ClassFieldExtractor;
-import org.drools.base.EvaluatorFactory;
+import org.drools.base.ValueType;
+import org.drools.base.evaluators.Operator;
import org.drools.common.DefaultFactHandle;
import org.drools.reteoo.ReteTuple;
import org.drools.rule.Declaration;
@@ -47,8 +48,7 @@
final Declaration declaration = new Declaration( "myBoolean",
extractor,
0 );
- final Evaluator evaluator = EvaluatorFactory.getEvaluator( Evaluator.BOOLEAN_TYPE,
- Evaluator.EQUAL );
+ final Evaluator evaluator = ValueType.BOOLEAN_TYPE.getEvaluator( Operator.EQUAL );
this.memory = new BooleanConstrainedLeftMemory( extractor,
declaration,
Modified: labs/jbossrules/trunk/drools-core/src/test/java/org/drools/reteoo/beta/BooleanConstrainedRightMemoryTest.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/test/java/org/drools/reteoo/beta/BooleanConstrainedRightMemoryTest.java 2006-08-03 00:14:06 UTC (rev 5421)
+++ labs/jbossrules/trunk/drools-core/src/test/java/org/drools/reteoo/beta/BooleanConstrainedRightMemoryTest.java 2006-08-03 00:14:40 UTC (rev 5422)
@@ -22,7 +22,8 @@
import junit.framework.Assert;
import org.drools.base.ClassFieldExtractor;
-import org.drools.base.EvaluatorFactory;
+import org.drools.base.ValueType;
+import org.drools.base.evaluators.Operator;
import org.drools.common.DefaultFactHandle;
import org.drools.reteoo.ObjectMatches;
import org.drools.reteoo.ReteTuple;
@@ -48,8 +49,7 @@
final Declaration declaration = new Declaration( "myBoolean",
extractor,
0 );
- final Evaluator evaluator = EvaluatorFactory.getEvaluator( Evaluator.BOOLEAN_TYPE,
- Evaluator.EQUAL );
+ final Evaluator evaluator = ValueType.BOOLEAN_TYPE.getEvaluator( Operator.EQUAL );
this.memory = new BooleanConstrainedRightMemory( extractor,
declaration,
Modified: labs/jbossrules/trunk/drools-core/src/test/java/org/drools/reteoo/beta/ObjectEqualConstrLeftMemoryTest.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/test/java/org/drools/reteoo/beta/ObjectEqualConstrLeftMemoryTest.java 2006-08-03 00:14:06 UTC (rev 5421)
+++ labs/jbossrules/trunk/drools-core/src/test/java/org/drools/reteoo/beta/ObjectEqualConstrLeftMemoryTest.java 2006-08-03 00:14:40 UTC (rev 5422)
@@ -22,7 +22,8 @@
import junit.framework.Assert;
import org.drools.base.ClassFieldExtractor;
-import org.drools.base.EvaluatorFactory;
+import org.drools.base.ValueType;
+import org.drools.base.evaluators.Operator;
import org.drools.common.DefaultFactHandle;
import org.drools.reteoo.ReteTuple;
import org.drools.rule.Declaration;
@@ -46,8 +47,7 @@
final Declaration declaration = new Declaration( "myObject",
extractor,
0 );
- final Evaluator evaluator = EvaluatorFactory.getEvaluator( Evaluator.OBJECT_TYPE,
- Evaluator.EQUAL );
+ final Evaluator evaluator = ValueType.OBJECT_TYPE.getEvaluator( Operator.EQUAL );
this.memory = new ObjectEqualConstrLeftMemory( extractor,
declaration,
Modified: labs/jbossrules/trunk/drools-core/src/test/java/org/drools/reteoo/beta/ObjectEqualConstrRightMemoryTest.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/test/java/org/drools/reteoo/beta/ObjectEqualConstrRightMemoryTest.java 2006-08-03 00:14:06 UTC (rev 5421)
+++ labs/jbossrules/trunk/drools-core/src/test/java/org/drools/reteoo/beta/ObjectEqualConstrRightMemoryTest.java 2006-08-03 00:14:40 UTC (rev 5422)
@@ -22,7 +22,8 @@
import junit.framework.Assert;
import org.drools.base.ClassFieldExtractor;
-import org.drools.base.EvaluatorFactory;
+import org.drools.base.ValueType;
+import org.drools.base.evaluators.Operator;
import org.drools.common.DefaultFactHandle;
import org.drools.reteoo.ObjectMatches;
import org.drools.reteoo.ReteTuple;
@@ -48,8 +49,7 @@
final Declaration declaration = new Declaration( "myObject",
extractor,
0 );
- final Evaluator evaluator = EvaluatorFactory.getEvaluator( Evaluator.OBJECT_TYPE,
- Evaluator.EQUAL );
+ final Evaluator evaluator = ValueType.OBJECT_TYPE.getEvaluator( Operator.EQUAL );
this.memory = new ObjectEqualConstrRightMemory( extractor,
declaration,
Modified: labs/jbossrules/trunk/drools-core/src/test/java/org/drools/reteoo/beta/ObjectNotEqualConstrLeftMemoryTest.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/test/java/org/drools/reteoo/beta/ObjectNotEqualConstrLeftMemoryTest.java 2006-08-03 00:14:06 UTC (rev 5421)
+++ labs/jbossrules/trunk/drools-core/src/test/java/org/drools/reteoo/beta/ObjectNotEqualConstrLeftMemoryTest.java 2006-08-03 00:14:40 UTC (rev 5422)
@@ -22,7 +22,8 @@
import junit.framework.Assert;
import org.drools.base.ClassFieldExtractor;
-import org.drools.base.EvaluatorFactory;
+import org.drools.base.ValueType;
+import org.drools.base.evaluators.Operator;
import org.drools.common.DefaultFactHandle;
import org.drools.reteoo.ReteTuple;
import org.drools.rule.Declaration;
@@ -47,8 +48,7 @@
final Declaration declaration = new Declaration( "myObject",
extractor,
0 );
- final Evaluator evaluator = EvaluatorFactory.getEvaluator( Evaluator.OBJECT_TYPE,
- Evaluator.NOT_EQUAL );
+ final Evaluator evaluator = ValueType.OBJECT_TYPE.getEvaluator( Operator.NOT_EQUAL );
this.memory = new ObjectNotEqualConstrLeftMemory( extractor,
declaration,
Modified: labs/jbossrules/trunk/drools-core/src/test/java/org/drools/reteoo/beta/ObjectNotEqualConstrRightMemoryTest.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/test/java/org/drools/reteoo/beta/ObjectNotEqualConstrRightMemoryTest.java 2006-08-03 00:14:06 UTC (rev 5421)
+++ labs/jbossrules/trunk/drools-core/src/test/java/org/drools/reteoo/beta/ObjectNotEqualConstrRightMemoryTest.java 2006-08-03 00:14:40 UTC (rev 5422)
@@ -22,7 +22,8 @@
import junit.framework.Assert;
import org.drools.base.ClassFieldExtractor;
-import org.drools.base.EvaluatorFactory;
+import org.drools.base.ValueType;
+import org.drools.base.evaluators.Operator;
import org.drools.common.DefaultFactHandle;
import org.drools.reteoo.ObjectMatches;
import org.drools.reteoo.ReteTuple;
@@ -48,8 +49,7 @@
final Declaration declaration = new Declaration( "myObject",
extractor,
0 );
- final Evaluator evaluator = EvaluatorFactory.getEvaluator( Evaluator.OBJECT_TYPE,
- Evaluator.NOT_EQUAL );
+ final Evaluator evaluator = ValueType.OBJECT_TYPE.getEvaluator( Operator.NOT_EQUAL );
this.memory = new ObjectNotEqualConstrRightMemory( extractor,
declaration,
Modified: labs/jbossrules/trunk/drools-core/src/test/java/org/drools/rule/DeclarationTest.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/test/java/org/drools/rule/DeclarationTest.java 2006-08-03 00:14:06 UTC (rev 5421)
+++ labs/jbossrules/trunk/drools-core/src/test/java/org/drools/rule/DeclarationTest.java 2006-08-03 00:14:40 UTC (rev 5422)
@@ -43,7 +43,7 @@
declaration.getIdentifier() );
assertSame( String.class,
- ((ClassObjectType) declaration.getObjectType()).getClassType() );
+ declaration.getExtractor().getExtractToClass() );
assertSame( extractor,
declaration.getExtractor() );
Modified: labs/jbossrules/trunk/drools-core/src/test/java/org/drools/rule/FieldConstraintTest.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/test/java/org/drools/rule/FieldConstraintTest.java 2006-08-03 00:14:06 UTC (rev 5421)
+++ labs/jbossrules/trunk/drools-core/src/test/java/org/drools/rule/FieldConstraintTest.java 2006-08-03 00:14:40 UTC (rev 5422)
@@ -25,7 +25,8 @@
import org.drools.RuleBaseFactory;
import org.drools.WorkingMemory;
import org.drools.base.ClassFieldExtractor;
-import org.drools.base.EvaluatorFactory;
+import org.drools.base.ValueType;
+import org.drools.base.evaluators.Operator;
import org.drools.common.InternalFactHandle;
import org.drools.reteoo.InstrumentedReteTuple;
import org.drools.reteoo.ReteooRuleBase;
@@ -65,8 +66,8 @@
final FieldValue field = new MockField( "cheddar" );
- final Evaluator evaluator = EvaluatorFactory.getEvaluator( Evaluator.OBJECT_TYPE,
- Evaluator.EQUAL );
+ Evaluator evaluator = ValueType.STRING_TYPE.getEvaluator( Operator.EQUAL );
+
final LiteralConstraint constraint = new LiteralConstraint( extractor,
evaluator,
field );
@@ -208,14 +209,12 @@
final ReturnValueConstraint constraint1 = new ReturnValueConstraint( priceExtractor,
isDoubleThePrice,
new Declaration[]{priceDeclaration},
- EvaluatorFactory.getEvaluator( Evaluator.INTEGER_TYPE,
- Evaluator.EQUAL ) );
+ ValueType.INTEGER_TYPE.getEvaluator( Operator.EQUAL ) );
final ReturnValueConstraint constraint2 = new ReturnValueConstraint( priceExtractor,
isDoubleThePrice,
new Declaration[]{priceDeclaration},
- EvaluatorFactory.getEvaluator( Evaluator.INTEGER_TYPE,
- Evaluator.GREATER ) );
+ ValueType.INTEGER_TYPE.getEvaluator( Operator.GREATER ) );
final Cheese cheddar0 = new Cheese( "cheddar",
5 );
Modified: labs/jbossrules/trunk/drools-core/src/test/java/org/drools/rule/OrTest.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/test/java/org/drools/rule/OrTest.java 2006-08-03 00:14:06 UTC (rev 5421)
+++ labs/jbossrules/trunk/drools-core/src/test/java/org/drools/rule/OrTest.java 2006-08-03 00:14:40 UTC (rev 5422)
@@ -27,7 +27,8 @@
import org.drools.WorkingMemory;
import org.drools.base.ClassFieldExtractor;
import org.drools.base.ClassObjectType;
-import org.drools.base.EvaluatorFactory;
+import org.drools.base.ValueType;
+import org.drools.base.evaluators.Operator;
import org.drools.examples.waltz.Edge;
import org.drools.examples.waltz.Stage;
import org.drools.leaps.LeapsRuleBase;
@@ -69,10 +70,8 @@
super.setUp();
this.stageType = new ClassObjectType( Stage.class );
this.edgeType = new ClassObjectType( Edge.class );
- this.integerEqualEvaluator = EvaluatorFactory.getEvaluator( Evaluator.INTEGER_TYPE,
- Evaluator.EQUAL );
- this.integerNotEqualEvaluator = EvaluatorFactory.getEvaluator( Evaluator.INTEGER_TYPE,
- Evaluator.NOT_EQUAL );
+ this.integerEqualEvaluator = ValueType.INTEGER_TYPE.getEvaluator( Operator.EQUAL );
+ this.integerNotEqualEvaluator = ValueType.INTEGER_TYPE.getEvaluator( Operator.NOT_EQUAL );
this.pkg = new Package( "or" );
}
Modified: labs/jbossrules/trunk/drools-core/src/test/java/org/drools/spi/MockObjectType.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/test/java/org/drools/spi/MockObjectType.java 2006-08-03 00:14:06 UTC (rev 5421)
+++ labs/jbossrules/trunk/drools-core/src/test/java/org/drools/spi/MockObjectType.java 2006-08-03 00:14:40 UTC (rev 5422)
@@ -1,5 +1,7 @@
package org.drools.spi;
+import org.drools.base.ValueType;
+
/*
* Copyright 2005 JBoss Inc
*
@@ -73,8 +75,8 @@
return this.matches;
}
- public int getValueType() {
- return 0;
+ public ValueType getValueType() {
+ return ValueType.OBJECT_TYPE;
}
}
\ No newline at end of file
More information about the jboss-svn-commits
mailing list