[jboss-svn-commits] JBL Code SVN: r26570 - in labs/jbossrules/trunk/drools-core/src: main/java/org/drools/base/evaluators and 8 other directories.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Fri May 15 14:46:31 EDT 2009
Author: tirelli
Date: 2009-05-15 14:46:31 -0400 (Fri, 15 May 2009)
New Revision: 26570
Added:
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/util/MathUtils.java
Modified:
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/BaseClassFieldReader.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/BaseClassFieldWriter.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/ClassFieldAccessor.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/ClassFieldReader.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/ClassFieldWriter.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/evaluators/ComparableEvaluatorsDefinition.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/evaluators/EqualityEvaluatorsDefinition.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/extractors/ArrayElementReader.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/field/DoubleFieldImpl.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/field/ObjectFieldImpl.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/facttemplates/FactTemplateFieldExtractor.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/spi/GlobalExtractor.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/spi/InternalReadAccessor.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/spi/PatternExtractor.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/spi/ReadAccessor.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/spi/WriteAccessor.java
labs/jbossrules/trunk/drools-core/src/test/java/org/drools/base/EvaluatorFactoryTest.java
labs/jbossrules/trunk/drools-core/src/test/java/org/drools/base/TemporalEvaluatorFactoryTest.java
labs/jbossrules/trunk/drools-core/src/test/java/org/drools/base/evaluators/BigDecimalEqualityTest.java
labs/jbossrules/trunk/drools-core/src/test/java/org/drools/reteoo/CompositeObjectSinkAdapterTest.java
Log:
JBRULES-2093: fixing handling of BigInteger and BigDecimal coercion
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/BaseClassFieldReader.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/BaseClassFieldReader.java 2009-05-15 16:26:33 UTC (rev 26569)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/BaseClassFieldReader.java 2009-05-15 18:46:31 UTC (rev 26570)
@@ -16,8 +16,13 @@
* limitations under the License.
*/
+import java.math.BigDecimal;
+import java.math.BigInteger;
+
import org.drools.RuntimeDroolsException;
+import org.drools.common.InternalWorkingMemory;
import org.drools.util.ClassUtils;
+import org.drools.util.MathUtils;
import org.drools.util.asm.ClassFieldInspector;
/**
@@ -174,6 +179,28 @@
object );
}
+ public BigDecimal getBigDecimalValue(Object object) {
+ return getBigDecimalValue( null,
+ object );
+ }
+
+ public BigInteger getBigIntegerValue(Object object) {
+ return getBigIntegerValue( null,
+ object );
+ }
+
+ public BigDecimal getBigDecimalValue(InternalWorkingMemory workingMemory,
+ Object object) {
+ return MathUtils.getBigDecimal( getValue( workingMemory,
+ object ) );
+ }
+
+ public BigInteger getBigIntegerValue(InternalWorkingMemory workingMemory,
+ Object object) {
+ return MathUtils.getBigInteger( getValue( workingMemory,
+ object ) );
+ }
+
public boolean isNullValue(Object object) {
return isNullValue( null,
object );
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/BaseClassFieldWriter.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/BaseClassFieldWriter.java 2009-05-15 16:26:33 UTC (rev 26569)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/BaseClassFieldWriter.java 2009-05-15 18:46:31 UTC (rev 26570)
@@ -19,6 +19,8 @@
import java.io.IOException;
import java.io.ObjectInput;
import java.io.ObjectOutput;
+import java.math.BigDecimal;
+import java.math.BigInteger;
import org.drools.RuntimeDroolsException;
import org.drools.spi.WriteAccessor;
@@ -100,6 +102,18 @@
return this.valueType;
}
+ public void setBigDecimalValue(Object bean,
+ BigDecimal value) {
+ setValue( bean,
+ value );
+ }
+
+ public void setBigIntegerValue(Object bean,
+ BigInteger value) {
+ setValue( bean,
+ value );
+ }
+
public int hashCode() {
final int PRIME = 31;
int result = 1;
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/ClassFieldAccessor.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/ClassFieldAccessor.java 2009-05-15 16:26:33 UTC (rev 26569)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/ClassFieldAccessor.java 2009-05-15 18:46:31 UTC (rev 26570)
@@ -21,6 +21,8 @@
import java.io.ObjectInput;
import java.io.ObjectOutput;
import java.lang.reflect.Method;
+import java.math.BigDecimal;
+import java.math.BigInteger;
import org.drools.spi.AcceptsReadAccessor;
import org.drools.spi.AcceptsWriteAccessor;
@@ -103,29 +105,27 @@
return this.reader.toString();
}
-
-
-// public int hashCode() {
-// return this.reader.hashCode();
-// }
-//
-// public boolean equals(final Object object) {
-// if ( this == object ) {
-// return true;
-// }
-//
-// if ( object == null || !(object instanceof ClassFieldAccessor) ) {
-// return false;
-// }
-//
-// final ClassFieldAccessor other = (ClassFieldAccessor) object;
-//
-// return this.reader.equals( other.reader );
-// }
+ // public int hashCode() {
+ // return this.reader.hashCode();
+ // }
+ //
+ // public boolean equals(final Object object) {
+ // if ( this == object ) {
+ // return true;
+ // }
+ //
+ // if ( object == null || !(object instanceof ClassFieldAccessor) ) {
+ // return false;
+ // }
+ //
+ // final ClassFieldAccessor other = (ClassFieldAccessor) object;
+ //
+ // return this.reader.equals( other.reader );
+ // }
@Override
public int hashCode() {
- return reader.getClassName().hashCode() ^ reader.getFieldName().hashCode();
+ return reader.getClassName().hashCode() ^ reader.getFieldName().hashCode();
}
@Override
@@ -139,7 +139,7 @@
} else if ( !reader.getClassName().equals( other.reader.getClassName() ) || !reader.getFieldName().equals( other.reader.getFieldName() ) ) return false;
if ( writer == null ) {
if ( other.writer != null ) return false;
- } else if ( !writer.getClassName().equals( other.writer.getClassName() ) || !writer.getFieldName().equals( other.writer.getFieldName() ) ) return false;
+ } else if ( !writer.getClassName().equals( other.writer.getClassName() ) || !writer.getFieldName().equals( other.writer.getFieldName() ) ) return false;
return true;
}
@@ -320,4 +320,24 @@
value );
}
+ public BigDecimal getBigDecimalValue(Object object) {
+ return reader.getBigDecimalValue( object );
+ }
+
+ public BigInteger getBigIntegerValue(Object object) {
+ return reader.getBigIntegerValue( object );
+ }
+
+ public void setBigDecimalValue(Object bean,
+ BigDecimal value) {
+ writer.setBigDecimalValue( bean,
+ value );
+ }
+
+ public void setBigIntegerValue(Object bean,
+ BigInteger value) {
+ writer.setBigIntegerValue( bean,
+ value );
+ }
+
}
\ No newline at end of file
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/ClassFieldReader.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/ClassFieldReader.java 2009-05-15 16:26:33 UTC (rev 26569)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/ClassFieldReader.java 2009-05-15 18:46:31 UTC (rev 26570)
@@ -21,6 +21,8 @@
import java.io.ObjectInput;
import java.io.ObjectOutput;
import java.lang.reflect.Method;
+import java.math.BigDecimal;
+import java.math.BigInteger;
import org.drools.common.InternalWorkingMemory;
import org.drools.spi.InternalReadAccessor;
@@ -46,17 +48,16 @@
private String className;
private String fieldName;
private transient InternalReadAccessor reader;
-
-
+
public ClassFieldReader() {
-
+
}
-
+
public ClassFieldReader(final String className,
final String fieldName) {
this.className = className;
this.fieldName = fieldName;
- }
+ }
public void writeExternal(ObjectOutput out) throws IOException {
out.writeObject( className );
@@ -76,7 +77,7 @@
public int getIndex() {
return this.reader.getIndex();
}
-
+
public String getClassName() {
return this.className;
}
@@ -113,7 +114,7 @@
result = prime * result + ((className == null) ? 0 : className.hashCode());
result = prime * result + ((fieldName == null) ? 0 : fieldName.hashCode());
return result;
- }
+ }
public boolean equals(Object obj) {
if ( this == obj ) return true;
@@ -196,7 +197,7 @@
public boolean isGlobal() {
return false;
}
-
+
public boolean isSelfReference() {
return "this".equals( this.fieldName );
}
@@ -300,4 +301,24 @@
return reader.isNullValue( object );
}
+ public BigDecimal getBigDecimalValue(InternalWorkingMemory workingMemory,
+ Object object) {
+ return reader.getBigDecimalValue( workingMemory,
+ object );
+ }
+
+ public BigInteger getBigIntegerValue(InternalWorkingMemory workingMemory,
+ Object object) {
+ return reader.getBigIntegerValue( workingMemory,
+ object );
+ }
+
+ public BigDecimal getBigDecimalValue(Object object) {
+ return reader.getBigDecimalValue( object );
+ }
+
+ public BigInteger getBigIntegerValue(Object object) {
+ return reader.getBigIntegerValue( object );
+ }
+
}
\ No newline at end of file
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/ClassFieldWriter.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/ClassFieldWriter.java 2009-05-15 16:26:33 UTC (rev 26569)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/ClassFieldWriter.java 2009-05-15 18:46:31 UTC (rev 26570)
@@ -20,6 +20,8 @@
import java.io.ObjectInput;
import java.io.ObjectOutput;
import java.lang.reflect.Method;
+import java.math.BigDecimal;
+import java.math.BigInteger;
import org.drools.spi.WriteAccessor;
@@ -42,12 +44,12 @@
public ClassFieldWriter() {
}
-
+
public ClassFieldWriter(final String className,
final String fieldName) {
this.className = className;
this.fieldName = fieldName;
- }
+ }
public void writeExternal(ObjectOutput out) throws IOException {
out.writeObject( className );
@@ -59,18 +61,18 @@
className = (String) is.readObject();
fieldName = (String) is.readObject();
}
-
+
public void setWriteAccessor(WriteAccessor writer) {
this.writer = writer;
- }
+ }
public int getIndex() {
return this.writer.getIndex();
}
-
+
public String getClassName() {
return this.className;
- }
+ }
public String getFieldName() {
return this.fieldName;
@@ -112,48 +114,69 @@
public void setBooleanValue(Object bean,
boolean value) {
- writer.setBooleanValue( bean, value );
+ writer.setBooleanValue( bean,
+ value );
}
public void setByteValue(Object bean,
byte value) {
- writer.setByteValue( bean, value );
+ writer.setByteValue( bean,
+ value );
}
public void setCharValue(Object bean,
char value) {
- writer.setCharValue( bean, value );
+ writer.setCharValue( bean,
+ value );
}
public void setDoubleValue(Object bean,
double value) {
- writer.setDoubleValue( bean, value );
+ writer.setDoubleValue( bean,
+ value );
}
public void setFloatValue(Object bean,
float value) {
- writer.setFloatValue( bean, value );
+ writer.setFloatValue( bean,
+ value );
}
public void setIntValue(Object bean,
int value) {
- writer.setIntValue( bean, value );
+ writer.setIntValue( bean,
+ value );
}
public void setLongValue(Object bean,
long value) {
- writer.setLongValue( bean, value );
+ writer.setLongValue( bean,
+ value );
}
public void setShortValue(Object bean,
short value) {
- writer.setShortValue( bean, value );
+ writer.setShortValue( bean,
+ value );
}
public void setValue(Object bean,
Object value) {
- writer.setValue( bean, value );
+ writer.setValue( bean,
+ value );
}
+ public void setBigDecimalValue(Object bean,
+ BigDecimal value) {
+ writer.setBigDecimalValue( bean,
+ value );
+ }
+
+ public void setBigIntegerValue(Object bean,
+ BigInteger value) {
+ writer.setBigIntegerValue( bean,
+ value );
+ }
+
}
\ No newline at end of file
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/evaluators/ComparableEvaluatorsDefinition.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/evaluators/ComparableEvaluatorsDefinition.java 2009-05-15 16:26:33 UTC (rev 26569)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/evaluators/ComparableEvaluatorsDefinition.java 2009-05-15 18:46:31 UTC (rev 26570)
@@ -37,6 +37,7 @@
import org.drools.spi.FieldValue;
import org.drools.spi.InternalReadAccessor;
import org.drools.util.DateUtils;
+import org.drools.util.MathUtils;
/**
* This class defines all the comparable built in
@@ -218,7 +219,7 @@
if( extractor.isNullValue( workingMemory, object1 ) ) {
return false;
}
- final BigDecimal comp = (BigDecimal) extractor.getValue( workingMemory, object1 );
+ final BigDecimal comp = extractor.getBigDecimalValue( workingMemory, object1 );
return comp.compareTo( object2.getBigDecimalValue() ) < 0;
}
@@ -227,8 +228,8 @@
if( context.rightNull ) {
return false;
}
- final BigDecimal comp = (BigDecimal) ((ObjectVariableContextEntry) context).right;
- return comp.compareTo( (BigDecimal) context.declaration.getExtractor().getValue( workingMemory, left ) ) < 0;
+ final BigDecimal comp = MathUtils.getBigDecimal( ((ObjectVariableContextEntry) context).right );
+ return comp.compareTo( context.declaration.getExtractor().getBigDecimalValue( workingMemory, left ) ) < 0;
}
public boolean evaluateCachedLeft(InternalWorkingMemory workingMemory,
@@ -236,8 +237,8 @@
if( context.extractor.isNullValue( workingMemory, right ) ) {
return false;
}
- final BigDecimal comp = (BigDecimal) context.extractor.getValue( workingMemory, right );
- return comp.compareTo( (BigDecimal) ((ObjectVariableContextEntry) context).left ) < 0;
+ final BigDecimal comp = context.extractor.getBigDecimalValue( workingMemory, right );
+ return comp.compareTo( MathUtils.getBigDecimal( ((ObjectVariableContextEntry) context).left )) < 0;
}
public boolean evaluate(InternalWorkingMemory workingMemory,
@@ -247,8 +248,8 @@
if( extractor1.isNullValue( workingMemory, object1 ) ) {
return false;
}
- final BigDecimal comp = (BigDecimal) extractor1.getValue( workingMemory, object1 );
- return comp.compareTo( (BigDecimal) extractor2.getValue( workingMemory, object2 ) ) < 0;
+ final BigDecimal comp = extractor1.getBigDecimalValue( workingMemory, object1 );
+ return comp.compareTo( extractor2.getBigDecimalValue( workingMemory, object2 ) ) < 0;
}
public String toString() {
@@ -274,7 +275,7 @@
if( extractor.isNullValue( workingMemory, object1 ) ) {
return false;
}
- final BigDecimal comp = (BigDecimal) extractor.getValue( workingMemory, object1 );
+ final BigDecimal comp = extractor.getBigDecimalValue( workingMemory, object1 );
return comp.compareTo( object2.getBigDecimalValue() ) <= 0;
}
@@ -283,8 +284,8 @@
if( context.rightNull ) {
return false;
}
- final BigDecimal comp = (BigDecimal) ((ObjectVariableContextEntry) context).right;
- return comp.compareTo( (BigDecimal) context.declaration.getExtractor().getValue( workingMemory, left ) ) <= 0;
+ final BigDecimal comp = MathUtils.getBigDecimal( ((ObjectVariableContextEntry) context).right );
+ return comp.compareTo( context.declaration.getExtractor().getBigDecimalValue( workingMemory, left ) ) <= 0;
}
public boolean evaluateCachedLeft(InternalWorkingMemory workingMemory,
@@ -292,8 +293,8 @@
if( context.extractor.isNullValue( workingMemory, right ) ) {
return false;
}
- final BigDecimal comp = (BigDecimal) context.extractor.getValue( workingMemory, right );
- return comp.compareTo( (BigDecimal) ((ObjectVariableContextEntry) context).left ) <= 0;
+ final BigDecimal comp = context.extractor.getBigDecimalValue( workingMemory, right );
+ return comp.compareTo( MathUtils.getBigDecimal( ((ObjectVariableContextEntry) context).left ) ) <= 0;
}
public boolean evaluate(InternalWorkingMemory workingMemory,
@@ -303,8 +304,8 @@
if( extractor1.isNullValue( workingMemory, object1 ) ) {
return false;
}
- final BigDecimal comp = (BigDecimal) extractor1.getValue( workingMemory, object1 );
- return comp.compareTo( (BigDecimal) extractor2.getValue( workingMemory, object2 ) ) <= 0;
+ final BigDecimal comp = extractor1.getBigDecimalValue( workingMemory, object1 );
+ return comp.compareTo( extractor2.getBigDecimalValue( workingMemory, object2 ) ) <= 0;
}
public String toString() {
@@ -330,7 +331,7 @@
if( extractor.isNullValue( workingMemory, object1 ) ) {
return false;
}
- final BigDecimal comp = (BigDecimal) extractor.getValue( workingMemory, object1 );
+ final BigDecimal comp = extractor.getBigDecimalValue( workingMemory, object1 );
return comp.compareTo( object2.getBigDecimalValue() ) > 0;
}
@@ -339,8 +340,8 @@
if( context.rightNull ) {
return false;
}
- final BigDecimal comp = (BigDecimal) ((ObjectVariableContextEntry) context).right;
- return comp.compareTo( (BigDecimal) context.declaration.getExtractor().getValue( workingMemory, left ) ) > 0;
+ final BigDecimal comp = MathUtils.getBigDecimal( ((ObjectVariableContextEntry) context).right );
+ return comp.compareTo( context.declaration.getExtractor().getBigDecimalValue( workingMemory, left ) ) > 0;
}
public boolean evaluateCachedLeft(InternalWorkingMemory workingMemory,
@@ -348,8 +349,8 @@
if( context.extractor.isNullValue( workingMemory, right ) ) {
return false;
}
- final BigDecimal comp = (BigDecimal) context.extractor.getValue( workingMemory, right );
- return comp.compareTo( (BigDecimal) ((ObjectVariableContextEntry) context).left ) > 0;
+ final BigDecimal comp = context.extractor.getBigDecimalValue( workingMemory, right );
+ return comp.compareTo( MathUtils.getBigDecimal( ((ObjectVariableContextEntry) context).left ) ) > 0;
}
public boolean evaluate(InternalWorkingMemory workingMemory,
@@ -359,8 +360,8 @@
if( extractor1.isNullValue( workingMemory, object1 ) ) {
return false;
}
- final BigDecimal comp = (BigDecimal) extractor1.getValue( workingMemory, object1 );
- return comp.compareTo( (BigDecimal) extractor2.getValue( workingMemory, object2 ) ) > 0;
+ final BigDecimal comp = extractor1.getBigDecimalValue( workingMemory, object1 );
+ return comp.compareTo( extractor2.getBigDecimalValue( workingMemory, object2 ) ) > 0;
}
public String toString() {
@@ -386,7 +387,7 @@
if( extractor.isNullValue( workingMemory, object1 ) ) {
return false;
}
- final BigDecimal comp = (BigDecimal) extractor.getValue( workingMemory, object1 );
+ final BigDecimal comp = extractor.getBigDecimalValue( workingMemory, object1 );
return comp.compareTo( object2.getBigDecimalValue() ) >= 0;
}
@@ -395,8 +396,8 @@
if( context.rightNull ) {
return false;
}
- final BigDecimal comp = (BigDecimal) ((ObjectVariableContextEntry) context).right;
- return comp.compareTo( (BigDecimal) context.declaration.getExtractor().getValue( workingMemory, left ) ) >= 0;
+ final BigDecimal comp = MathUtils.getBigDecimal( ((ObjectVariableContextEntry) context).right );
+ return comp.compareTo( context.declaration.getExtractor().getBigDecimalValue( workingMemory, left ) ) >= 0;
}
public boolean evaluateCachedLeft(InternalWorkingMemory workingMemory,
@@ -404,8 +405,8 @@
if( context.extractor.isNullValue( workingMemory, right ) ) {
return false;
}
- final BigDecimal comp = (BigDecimal) context.extractor.getValue( workingMemory, right );
- return comp.compareTo( (BigDecimal) ((ObjectVariableContextEntry) context).left ) >= 0;
+ final BigDecimal comp = context.extractor.getBigDecimalValue( workingMemory, right );
+ return comp.compareTo( MathUtils.getBigDecimal( ((ObjectVariableContextEntry) context).left ) ) >= 0;
}
public boolean evaluate(InternalWorkingMemory workingMemory,
@@ -415,8 +416,8 @@
if( extractor1.isNullValue( workingMemory, object1 ) ) {
return false;
}
- final BigDecimal comp = (BigDecimal) extractor1.getValue( workingMemory, object1 );
- return comp.compareTo( (BigDecimal) extractor2.getValue( workingMemory, object2 ) ) >= 0;
+ final BigDecimal comp = extractor1.getBigDecimalValue( workingMemory, object1 );
+ return comp.compareTo( extractor2.getBigDecimalValue( workingMemory, object2 ) ) >= 0;
}
public String toString() {
@@ -442,7 +443,7 @@
if( extractor.isNullValue( workingMemory, object1 ) ) {
return false;
}
- final BigInteger comp = (BigInteger) extractor.getValue( workingMemory, object1 );
+ final BigInteger comp = extractor.getBigIntegerValue( workingMemory, object1 );
return comp.compareTo( object2.getBigIntegerValue() ) < 0;
}
@@ -451,8 +452,8 @@
if( context.rightNull ) {
return false;
}
- final BigInteger comp = (BigInteger) ((ObjectVariableContextEntry) context).right;
- return comp.compareTo( (BigInteger) context.declaration.getExtractor().getValue( workingMemory, left ) ) < 0;
+ final BigInteger comp = MathUtils.getBigInteger( ((ObjectVariableContextEntry) context).right );
+ return comp.compareTo( context.declaration.getExtractor().getBigIntegerValue( workingMemory, left ) ) < 0;
}
public boolean evaluateCachedLeft(InternalWorkingMemory workingMemory,
@@ -460,8 +461,8 @@
if( context.extractor.isNullValue( workingMemory, right ) ) {
return false;
}
- final BigInteger comp = (BigInteger) context.extractor.getValue( workingMemory, right );
- return comp.compareTo( (BigInteger) ((ObjectVariableContextEntry) context).left ) < 0;
+ final BigInteger comp = context.extractor.getBigIntegerValue( workingMemory, right );
+ return comp.compareTo( MathUtils.getBigInteger( ((ObjectVariableContextEntry) context).left )) < 0;
}
public boolean evaluate(InternalWorkingMemory workingMemory,
@@ -471,8 +472,8 @@
if( extractor1.isNullValue( workingMemory, object1 ) ) {
return false;
}
- final BigInteger comp = (BigInteger) extractor1.getValue( workingMemory, object1 );
- return comp.compareTo( (BigInteger) extractor2.getValue( workingMemory, object2 ) ) < 0;
+ final BigInteger comp = extractor1.getBigIntegerValue( workingMemory, object1 );
+ return comp.compareTo( extractor2.getBigIntegerValue( workingMemory, object2 ) ) < 0;
}
public String toString() {
@@ -498,7 +499,7 @@
if( extractor.isNullValue( workingMemory, object1 ) ) {
return false;
}
- final BigInteger comp = (BigInteger) extractor.getValue( workingMemory, object1 );
+ final BigInteger comp = extractor.getBigIntegerValue( workingMemory, object1 );
return comp.compareTo( object2.getBigIntegerValue() ) <= 0;
}
@@ -507,8 +508,8 @@
if( context.rightNull ) {
return false;
}
- final BigInteger comp = (BigInteger) ((ObjectVariableContextEntry) context).right;
- return comp.compareTo( (BigInteger) context.declaration.getExtractor().getValue( workingMemory, left ) ) <= 0;
+ final BigInteger comp = MathUtils.getBigInteger( ((ObjectVariableContextEntry) context).right );
+ return comp.compareTo( context.declaration.getExtractor().getBigIntegerValue( workingMemory, left ) ) <= 0;
}
public boolean evaluateCachedLeft(InternalWorkingMemory workingMemory,
@@ -516,8 +517,8 @@
if( context.extractor.isNullValue( workingMemory, right ) ) {
return false;
}
- final BigInteger comp = (BigInteger) context.extractor.getValue( workingMemory, right );
- return comp.compareTo( (BigInteger) ((ObjectVariableContextEntry) context).left ) <= 0;
+ final BigInteger comp = context.extractor.getBigIntegerValue( workingMemory, right );
+ return comp.compareTo( MathUtils.getBigInteger( ((ObjectVariableContextEntry) context).left )) <= 0;
}
public boolean evaluate(InternalWorkingMemory workingMemory,
@@ -527,8 +528,8 @@
if( extractor1.isNullValue( workingMemory, object1 ) ) {
return false;
}
- final BigInteger comp = (BigInteger) extractor1.getValue( workingMemory, object1 );
- return comp.compareTo( (BigInteger) extractor2.getValue( workingMemory, object2 ) ) <= 0;
+ final BigInteger comp = extractor1.getBigIntegerValue( workingMemory, object1 );
+ return comp.compareTo( extractor2.getBigIntegerValue( workingMemory, object2 ) ) <= 0;
}
public String toString() {
@@ -554,7 +555,7 @@
if( extractor.isNullValue( workingMemory, object1 ) ) {
return false;
}
- final BigInteger comp = (BigInteger) extractor.getValue( workingMemory, object1 );
+ final BigInteger comp = extractor.getBigIntegerValue( workingMemory, object1 );
return comp.compareTo( object2.getBigIntegerValue() ) > 0;
}
@@ -563,8 +564,8 @@
if( context.rightNull ) {
return false;
}
- final BigInteger comp = (BigInteger) ((ObjectVariableContextEntry) context).right;
- return comp.compareTo( (BigInteger) context.declaration.getExtractor().getValue( workingMemory, left ) ) > 0;
+ final BigInteger comp = MathUtils.getBigInteger( ((ObjectVariableContextEntry) context).right );
+ return comp.compareTo( context.declaration.getExtractor().getBigIntegerValue( workingMemory, left ) ) > 0;
}
public boolean evaluateCachedLeft(InternalWorkingMemory workingMemory,
@@ -572,8 +573,8 @@
if( context.extractor.isNullValue( workingMemory, right ) ) {
return false;
}
- final BigInteger comp = (BigInteger) context.extractor.getValue( workingMemory, right );
- return comp.compareTo( (BigInteger) ((ObjectVariableContextEntry) context).left ) > 0;
+ final BigInteger comp = context.extractor.getBigIntegerValue( workingMemory, right );
+ return comp.compareTo( MathUtils.getBigInteger( ((ObjectVariableContextEntry) context).left ) ) > 0;
}
public boolean evaluate(InternalWorkingMemory workingMemory,
@@ -583,8 +584,8 @@
if( extractor1.isNullValue( workingMemory, object1 ) ) {
return false;
}
- final BigInteger comp = (BigInteger) extractor1.getValue( workingMemory, object1 );
- return comp.compareTo( (BigInteger) extractor2.getValue( workingMemory, object2 ) ) > 0;
+ final BigInteger comp = extractor1.getBigIntegerValue( workingMemory, object1 );
+ return comp.compareTo( extractor2.getBigIntegerValue( workingMemory, object2 ) ) > 0;
}
public String toString() {
@@ -610,7 +611,7 @@
if( extractor.isNullValue( workingMemory, object1 ) ) {
return false;
}
- final BigInteger comp = (BigInteger) extractor.getValue( workingMemory, object1 );
+ final BigInteger comp = extractor.getBigIntegerValue( workingMemory, object1 );
return comp.compareTo( object2.getBigIntegerValue() ) >= 0;
}
@@ -619,8 +620,8 @@
if( context.rightNull ) {
return false;
}
- final BigInteger comp = (BigInteger) ((ObjectVariableContextEntry) context).right;
- return comp.compareTo( (BigInteger) context.declaration.getExtractor().getValue( workingMemory, left ) ) >= 0;
+ final BigInteger comp = MathUtils.getBigInteger( ((ObjectVariableContextEntry) context).right );
+ return comp.compareTo( context.declaration.getExtractor().getBigIntegerValue( workingMemory, left ) ) >= 0;
}
public boolean evaluateCachedLeft(InternalWorkingMemory workingMemory,
@@ -628,8 +629,8 @@
if( context.extractor.isNullValue( workingMemory, right ) ) {
return false;
}
- final BigInteger comp = (BigInteger) context.extractor.getValue( workingMemory, right );
- return comp.compareTo( (BigInteger) ((ObjectVariableContextEntry) context).left ) >= 0;
+ final BigInteger comp = context.extractor.getBigIntegerValue( workingMemory, right );
+ return comp.compareTo( MathUtils.getBigInteger( ((ObjectVariableContextEntry) context).left ) ) >= 0;
}
public boolean evaluate(InternalWorkingMemory workingMemory,
@@ -639,8 +640,8 @@
if( extractor1.isNullValue( workingMemory, object1 ) ) {
return false;
}
- final BigInteger comp = (BigInteger) extractor1.getValue( workingMemory, object1 );
- return comp.compareTo( (BigInteger) extractor2.getValue( workingMemory, object2 ) ) >= 0;
+ final BigInteger comp = extractor1.getBigIntegerValue( workingMemory, object1 );
+ return comp.compareTo( extractor2.getBigIntegerValue( workingMemory, object2 ) ) >= 0;
}
public String toString() {
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/evaluators/EqualityEvaluatorsDefinition.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/evaluators/EqualityEvaluatorsDefinition.java 2009-05-15 16:26:33 UTC (rev 26569)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/evaluators/EqualityEvaluatorsDefinition.java 2009-05-15 18:46:31 UTC (rev 26570)
@@ -36,6 +36,7 @@
import org.drools.spi.FieldValue;
import org.drools.spi.InternalReadAccessor;
import org.drools.util.DateUtils;
+import org.drools.util.MathUtils;
/**
* This class defines the default built in equality
@@ -327,7 +328,7 @@
public boolean evaluate(InternalWorkingMemory workingMemory,
final InternalReadAccessor extractor,
final Object object1, final FieldValue object2) {
- final Object value1 = extractor.getValue( workingMemory, object1 );
+ final Object value1 = extractor.getBigDecimalValue( workingMemory, object1 );
final BigDecimal value2 = object2.getBigDecimalValue();
if ( value1 == null ) {
return value2 == null;
@@ -338,29 +339,29 @@
public boolean evaluateCachedRight(InternalWorkingMemory workingMemory,
final VariableContextEntry context, final Object left) {
- final Object value = context.declaration.getExtractor().getValue( workingMemory, left );
+ final Object value = context.declaration.getExtractor().getBigDecimalValue( workingMemory, left );
if ( value == null ) {
return ((ObjectVariableContextEntry) context).right == null;
}
- return isEqual(value, ((ObjectVariableContextEntry) context).right);
+ return isEqual(value, MathUtils.getBigDecimal( ((ObjectVariableContextEntry) context).right ));
}
public boolean evaluateCachedLeft(InternalWorkingMemory workingMemory,
final VariableContextEntry context, final Object right) {
- final Object value = context.extractor.getValue( workingMemory, right );
+ final Object value = context.extractor.getBigDecimalValue( workingMemory, right );
if ( ((ObjectVariableContextEntry) context).left == null ) {
return value == null;
}
- return isEqual(((ObjectVariableContextEntry) context).left, value);
+ return isEqual(MathUtils.getBigDecimal( ((ObjectVariableContextEntry) context).left ), value);
}
public boolean evaluate(InternalWorkingMemory workingMemory,
final InternalReadAccessor extractor1,
final Object object1,
final InternalReadAccessor extractor2, final Object object2) {
- final Object value1 = extractor1.getValue( workingMemory, object1 );
- final Object value2 = extractor2.getValue( workingMemory, object2 );
+ final Object value1 = extractor1.getBigDecimalValue( workingMemory, object1 );
+ final Object value2 = extractor2.getBigDecimalValue( workingMemory, object2 );
if ( value1 == null ) {
return value2 == null;
}
@@ -391,7 +392,7 @@
public boolean evaluate(InternalWorkingMemory workingMemory,
final InternalReadAccessor extractor,
final Object object1, final FieldValue object2) {
- final Object value1 = extractor.getValue( workingMemory, object1 );
+ final Object value1 = extractor.getBigDecimalValue( workingMemory, object1 );
final Object value2 = object2.getBigDecimalValue();
if ( value1 == null ) {
return value2 != null;
@@ -401,28 +402,28 @@
public boolean evaluateCachedRight(InternalWorkingMemory workingMemory,
final VariableContextEntry context, final Object left) {
- final Object value = context.declaration.getExtractor().getValue( workingMemory, left );
+ final Object value = context.declaration.getExtractor().getBigDecimalValue( workingMemory, left );
if ( value == null ) {
return ((ObjectVariableContextEntry) context).right != null;
}
- return !BigDecimalEqualEvaluator.isEqual(value, ((ObjectVariableContextEntry) context).right);
+ return !BigDecimalEqualEvaluator.isEqual(value, MathUtils.getBigDecimal( ((ObjectVariableContextEntry) context).right ));
}
public boolean evaluateCachedLeft(InternalWorkingMemory workingMemory,
final VariableContextEntry context, final Object right) {
- final Object value = context.extractor.getValue( workingMemory, right );
+ final Object value = context.extractor.getBigDecimalValue( workingMemory, right );
if ( ((ObjectVariableContextEntry) context).left == null ) {
return value != null;
}
- return !BigDecimalEqualEvaluator.isEqual(((ObjectVariableContextEntry) context).left, value );
+ return !BigDecimalEqualEvaluator.isEqual(MathUtils.getBigDecimal( ((ObjectVariableContextEntry) context).left ), value );
}
public boolean evaluate(InternalWorkingMemory workingMemory,
final InternalReadAccessor extractor1,
final Object object1,
final InternalReadAccessor extractor2, final Object object2) {
- final Object value1 = extractor1.getValue( workingMemory, object1 );
- final Object value2 = extractor2.getValue( workingMemory, object2 );
+ final Object value1 = extractor1.getBigDecimalValue( workingMemory, object1 );
+ final Object value2 = extractor2.getBigDecimalValue( workingMemory, object2 );
if ( value1 == null ) {
return value2 != null;
}
@@ -449,7 +450,7 @@
public boolean evaluate(InternalWorkingMemory workingMemory,
final InternalReadAccessor extractor,
final Object object1, final FieldValue object2) {
- final Object value1 = extractor.getValue( workingMemory, object1 );
+ final Object value1 = extractor.getBigIntegerValue( workingMemory, object1 );
final Object value2 = object2.getBigIntegerValue();
if ( value1 == null ) {
return value2 == null;
@@ -459,28 +460,28 @@
public boolean evaluateCachedRight(InternalWorkingMemory workingMemory,
final VariableContextEntry context, final Object left) {
- final Object value = context.declaration.getExtractor().getValue( workingMemory, left );
+ final Object value = context.declaration.getExtractor().getBigIntegerValue( workingMemory, left );
if ( value == null ) {
return ((ObjectVariableContextEntry) context).right == null;
}
- return value.equals( ((ObjectVariableContextEntry) context).right );
+ return value.equals( MathUtils.getBigInteger( ((ObjectVariableContextEntry) context).right ) );
}
public boolean evaluateCachedLeft(InternalWorkingMemory workingMemory,
final VariableContextEntry context, final Object right) {
- final Object value = context.extractor.getValue( workingMemory, right );
+ final Object value = context.extractor.getBigIntegerValue( workingMemory, right );
if ( ((ObjectVariableContextEntry) context).left == null ) {
return value == null;
}
- return ((ObjectVariableContextEntry) context).left.equals( value );
+ return MathUtils.getBigInteger( ((ObjectVariableContextEntry) context).left ).equals( value );
}
public boolean evaluate(InternalWorkingMemory workingMemory,
final InternalReadAccessor extractor1,
final Object object1,
final InternalReadAccessor extractor2, final Object object2) {
- final Object value1 = extractor1.getValue( workingMemory, object1 );
- final Object value2 = extractor2.getValue( workingMemory, object2 );
+ final Object value1 = extractor1.getBigIntegerValue( workingMemory, object1 );
+ final Object value2 = extractor2.getBigIntegerValue( workingMemory, object2 );
if ( value1 == null ) {
return value2 == null;
}
@@ -507,8 +508,8 @@
public boolean evaluate(InternalWorkingMemory workingMemory,
final InternalReadAccessor extractor,
final Object object1, final FieldValue object2) {
- final Object value1 = extractor.getValue( workingMemory, object1 );
- final Object value2 = object2.getBigDecimalValue();
+ final Object value1 = extractor.getBigIntegerValue( workingMemory, object1 );
+ final Object value2 = object2.getBigIntegerValue();
if ( value1 == null ) {
return value2 != null;
}
@@ -517,28 +518,28 @@
public boolean evaluateCachedRight(InternalWorkingMemory workingMemory,
final VariableContextEntry context, final Object left) {
- final Object value = context.declaration.getExtractor().getValue( workingMemory, left );
+ final Object value = context.declaration.getExtractor().getBigIntegerValue( workingMemory, left );
if ( value == null ) {
return ((ObjectVariableContextEntry) context).right != null;
}
- return !value.equals( ((ObjectVariableContextEntry) context).right );
+ return !value.equals(MathUtils.getBigInteger( ((ObjectVariableContextEntry) context).right ));
}
public boolean evaluateCachedLeft(InternalWorkingMemory workingMemory,
final VariableContextEntry context, final Object right) {
- final Object value = context.extractor.getValue( workingMemory, right );
+ final Object value = context.extractor.getBigIntegerValue( workingMemory, right );
if ( ((ObjectVariableContextEntry) context).left == null ) {
return value != null;
}
- return !((ObjectVariableContextEntry) context).left.equals( value );
+ return !MathUtils.getBigInteger( ((ObjectVariableContextEntry) context).left).equals( value );
}
public boolean evaluate(InternalWorkingMemory workingMemory,
final InternalReadAccessor extractor1,
final Object object1,
final InternalReadAccessor extractor2, final Object object2) {
- final Object value1 = extractor1.getValue( workingMemory, object1 );
- final Object value2 = extractor2.getValue( workingMemory, object2 );
+ final Object value1 = extractor1.getBigIntegerValue( workingMemory, object1 );
+ final Object value2 = extractor2.getBigIntegerValue( workingMemory, object2 );
if ( value1 == null ) {
return value2 != null;
}
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/extractors/ArrayElementReader.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/extractors/ArrayElementReader.java 2009-05-15 16:26:33 UTC (rev 26569)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/extractors/ArrayElementReader.java 2009-05-15 18:46:31 UTC (rev 26570)
@@ -5,12 +5,15 @@
import java.io.ObjectInput;
import java.io.ObjectOutput;
import java.lang.reflect.Method;
+import java.math.BigDecimal;
+import java.math.BigInteger;
import org.drools.base.ValueType;
import org.drools.common.InternalWorkingMemory;
import org.drools.spi.AcceptsReadAccessor;
import org.drools.spi.InternalReadAccessor;
import org.drools.util.ClassUtils;
+import org.drools.util.MathUtils;
public class ArrayElementReader implements AcceptsReadAccessor, InternalReadAccessor, Externalizable {
private InternalReadAccessor arrayReadAccessor;
@@ -92,6 +95,17 @@
Object[] array = ( Object[] ) this.arrayReadAccessor.getValue( workingMemory, object );
return array[ this.index ];
}
+ public BigDecimal getBigDecimalValue(InternalWorkingMemory workingMemory,
+ Object object) {
+ Object[] array = ( Object[] ) this.arrayReadAccessor.getValue( workingMemory, object );
+ return MathUtils.getBigDecimal( array[ this.index ] );
+ }
+
+ public BigInteger getBigIntegerValue(InternalWorkingMemory workingMemory,
+ Object object) {
+ Object[] array = ( Object[] ) this.arrayReadAccessor.getValue( workingMemory, object );
+ return MathUtils.getBigInteger( array[ this.index ] );
+ }
public ValueType getValueType() {
return ValueType.OBJECT_TYPE;
}
@@ -191,4 +205,12 @@
return isNullValue( null,
object );
}
+
+ public BigDecimal getBigDecimalValue(Object object) {
+ return null;
+ }
+
+ public BigInteger getBigIntegerValue(Object object) {
+ return null;
+ }
}
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/field/DoubleFieldImpl.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/field/DoubleFieldImpl.java 2009-05-15 16:26:33 UTC (rev 26569)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/field/DoubleFieldImpl.java 2009-05-15 18:46:31 UTC (rev 26570)
@@ -122,7 +122,7 @@
}
public BigInteger getBigIntegerValue() {
- throw new RuntimeDroolsException( "Conversion to BigInteger not supported for type double" );
+ return new BigDecimal(this.value).toBigInteger();
}
}
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/field/ObjectFieldImpl.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/field/ObjectFieldImpl.java 2009-05-15 16:26:33 UTC (rev 26569)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/field/ObjectFieldImpl.java 2009-05-15 18:46:31 UTC (rev 26570)
@@ -27,6 +27,7 @@
import org.drools.RuntimeDroolsException;
import org.drools.spi.FieldValue;
+import org.drools.util.MathUtils;
public class ObjectFieldImpl
implements
@@ -230,25 +231,11 @@
}
public BigDecimal getBigDecimalValue() {
- if (this.value instanceof BigDecimal) return (BigDecimal) this.value;
- if (this.isNumber) {
- return new BigDecimal(((Number) value).doubleValue());
- } else if (this.isString) {
- return new BigDecimal((String) value);
- }
- if (this.value == null) return null;
- throw new RuntimeDroolsException( "Conversion to BigDecimal not supported for type: " + this.value.getClass() );
+ return MathUtils.getBigDecimal( this.value );
}
public BigInteger getBigIntegerValue() {
- if (this.value instanceof BigInteger) return (BigInteger) this.value;
- if (this.isNumber) {
- return BigInteger.valueOf(((Number) value).longValue());
- } else if (this.isString) {
- return new BigInteger((String) value);
- }
- if (this.value == null) return null;
- throw new RuntimeDroolsException( "Conversion to BigInteger not supported for type: " + this.value.getClass() );
+ return MathUtils.getBigInteger( this.value );
}
public boolean isEnum() {
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/facttemplates/FactTemplateFieldExtractor.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/facttemplates/FactTemplateFieldExtractor.java 2009-05-15 16:26:33 UTC (rev 26569)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/facttemplates/FactTemplateFieldExtractor.java 2009-05-15 18:46:31 UTC (rev 26570)
@@ -5,11 +5,14 @@
import java.io.ObjectInput;
import java.io.ObjectOutput;
import java.lang.reflect.Method;
+import java.math.BigDecimal;
+import java.math.BigInteger;
import org.drools.RuntimeDroolsException;
import org.drools.base.ValueType;
import org.drools.common.InternalWorkingMemory;
import org.drools.util.ClassUtils;
+import org.drools.util.MathUtils;
public class FactTemplateFieldExtractor
implements
@@ -181,6 +184,28 @@
object );
}
+ public BigDecimal getBigDecimalValue(Object object) {
+ return getBigDecimalValue( null,
+ object );
+ }
+
+ public BigInteger getBigIntegerValue(Object object) {
+ return getBigIntegerValue( null,
+ object );
+ }
+
+ public BigDecimal getBigDecimalValue(InternalWorkingMemory workingMemory,
+ Object object) {
+ return MathUtils.getBigDecimal( getValue( workingMemory,
+ object ) );
+ }
+
+ public BigInteger getBigIntegerValue(InternalWorkingMemory workingMemory,
+ Object object) {
+ return MathUtils.getBigInteger( getValue( workingMemory,
+ object ) );
+ }
+
public boolean isNullValue(Object object) {
return isNullValue( null,
object );
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/spi/GlobalExtractor.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/spi/GlobalExtractor.java 2009-05-15 16:26:33 UTC (rev 26569)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/spi/GlobalExtractor.java 2009-05-15 18:46:31 UTC (rev 26570)
@@ -21,11 +21,14 @@
import java.io.ObjectInput;
import java.io.ObjectOutput;
import java.lang.reflect.Method;
+import java.math.BigDecimal;
+import java.math.BigInteger;
import org.drools.RuntimeDroolsException;
import org.drools.base.ClassObjectType;
import org.drools.base.ValueType;
import org.drools.common.InternalWorkingMemory;
+import org.drools.util.MathUtils;
/**
* This is a global variable extractor used to get a global variable value
@@ -152,6 +155,18 @@
throw new ClassCastException("Not possible to convert global '"+identifier+"' into a short.");
}
+ public BigDecimal getBigDecimalValue(InternalWorkingMemory workingMemory,
+ Object object) {
+ return MathUtils.getBigDecimal( getValue( workingMemory,
+ object ) );
+ }
+
+ public BigInteger getBigIntegerValue(InternalWorkingMemory workingMemory,
+ Object object) {
+ return MathUtils.getBigInteger( getValue( workingMemory,
+ object ) );
+ }
+
public Method getNativeReadMethod() {
try {
return this.getClass().getDeclaredMethod( "getValue",
@@ -203,39 +218,45 @@
}
public boolean getBooleanValue(Object object) {
- throw new RuntimeDroolsException("Can't extract a value from a global without a working memory reference");
+ throw new RuntimeDroolsException("Can't extract a value from global "+identifier+" without a working memory reference");
}
public byte getByteValue(Object object) {
- throw new RuntimeDroolsException("Can't extract a value from a global without a working memory reference");
+ throw new RuntimeDroolsException("Can't extract a value from global "+identifier+" without a working memory reference");
}
public char getCharValue(Object object) {
- throw new RuntimeDroolsException("Can't extract a value from a global without a working memory reference");
+ throw new RuntimeDroolsException("Can't extract a value from global "+identifier+" without a working memory reference");
}
public double getDoubleValue(Object object) {
- throw new RuntimeDroolsException("Can't extract a value from a global without a working memory reference");
+ throw new RuntimeDroolsException("Can't extract a value from global "+identifier+" without a working memory reference");
}
public float getFloatValue(Object object) {
- throw new RuntimeDroolsException("Can't extract a value from a global without a working memory reference");
+ throw new RuntimeDroolsException("Can't extract a value from global "+identifier+" without a working memory reference");
}
public int getHashCode(Object object) {
- throw new RuntimeDroolsException("Can't extract a value from a global without a working memory reference");
+ throw new RuntimeDroolsException("Can't extract a value from global "+identifier+" without a working memory reference");
}
public int getIndex() {
- throw new RuntimeDroolsException("Can't extract a value from a global without a working memory reference");
+ throw new RuntimeDroolsException("Can't extract a value from global "+identifier+" without a working memory reference");
}
public int getIntValue(Object object) {
- throw new RuntimeDroolsException("Can't extract a value from a global without a working memory reference");
+ throw new RuntimeDroolsException("Can't extract a value from global "+identifier+" without a working memory reference");
}
public long getLongValue(Object object) {
- throw new RuntimeDroolsException("Can't extract a value from a global without a working memory reference");
+ throw new RuntimeDroolsException("Can't extract a value from global "+identifier+" without a working memory reference");
}
public short getShortValue(Object object) {
- throw new RuntimeDroolsException("Can't extract a value from a global without a working memory reference");
+ throw new RuntimeDroolsException("Can't extract a value from global "+identifier+" without a working memory reference");
}
public Object getValue(Object object) {
- throw new RuntimeDroolsException("Can't extract a value from a global without a working memory reference");
+ throw new RuntimeDroolsException("Can't extract a value from global "+identifier+" without a working memory reference");
}
+ public BigDecimal getBigDecimalValue(Object object) {
+ throw new RuntimeDroolsException("Can't extract a value from global "+identifier+" without a working memory reference");
+ }
+ public BigInteger getBigIntegerValue(Object object) {
+ throw new RuntimeDroolsException("Can't extract a value from global "+identifier+" without a working memory reference");
+ }
public boolean isNullValue(Object object) {
- throw new RuntimeDroolsException("Can't extract a value from a global without a working memory reference");
+ throw new RuntimeDroolsException("Can't extract a value from global "+identifier+" without a working memory reference");
}
}
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/spi/InternalReadAccessor.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/spi/InternalReadAccessor.java 2009-05-15 16:26:33 UTC (rev 26569)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/spi/InternalReadAccessor.java 2009-05-15 18:46:31 UTC (rev 26570)
@@ -16,6 +16,9 @@
* limitations under the License.
*/
+import java.math.BigDecimal;
+import java.math.BigInteger;
+
import org.drools.common.InternalWorkingMemory;
public interface InternalReadAccessor
@@ -24,6 +27,10 @@
public Object getValue(InternalWorkingMemory workingMemory, Object object);
+ public BigDecimal getBigDecimalValue(InternalWorkingMemory workingMemory, Object object);
+
+ public BigInteger getBigIntegerValue(InternalWorkingMemory workingMemory, Object object);
+
public char getCharValue(InternalWorkingMemory workingMemory, Object object);
public int getIntValue(InternalWorkingMemory workingMemory, Object object);
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/spi/PatternExtractor.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/spi/PatternExtractor.java 2009-05-15 16:26:33 UTC (rev 26569)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/spi/PatternExtractor.java 2009-05-15 18:46:31 UTC (rev 26570)
@@ -5,6 +5,8 @@
import java.io.ObjectInput;
import java.io.ObjectOutput;
import java.lang.reflect.Method;
+import java.math.BigDecimal;
+import java.math.BigInteger;
import org.drools.RuntimeDroolsException;
import org.drools.base.ClassObjectType;
@@ -13,6 +15,7 @@
import org.drools.common.InternalWorkingMemory;
import org.drools.facttemplates.Fact;
import org.drools.util.ClassUtils;
+import org.drools.util.MathUtils;
/*
* Copyright 2005 JBoss Inc
@@ -261,7 +264,29 @@
return getValue( null,
object );
}
+
+ public BigDecimal getBigDecimalValue(Object object) {
+ return getBigDecimalValue( null,
+ object );
+ }
+ public BigInteger getBigIntegerValue(Object object) {
+ return getBigIntegerValue( null,
+ object );
+ }
+
+ public BigDecimal getBigDecimalValue(InternalWorkingMemory workingMemory,
+ Object object) {
+ return MathUtils.getBigDecimal( getValue( workingMemory,
+ object ) );
+ }
+
+ public BigInteger getBigIntegerValue(InternalWorkingMemory workingMemory,
+ Object object) {
+ return MathUtils.getBigInteger( getValue( workingMemory,
+ object ) );
+ }
+
public boolean isNullValue(Object object) {
return isNullValue( null,
object );
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/spi/ReadAccessor.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/spi/ReadAccessor.java 2009-05-15 16:26:33 UTC (rev 26569)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/spi/ReadAccessor.java 2009-05-15 18:46:31 UTC (rev 26570)
@@ -1,6 +1,8 @@
package org.drools.spi;
import java.lang.reflect.Method;
+import java.math.BigDecimal;
+import java.math.BigInteger;
import org.drools.base.ValueType;
@@ -27,6 +29,10 @@
public Object getValue(Object object);
+ public BigDecimal getBigDecimalValue(Object object);
+
+ public BigInteger getBigIntegerValue(Object object);
+
public char getCharValue(Object object);
public int getIntValue(Object object);
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/spi/WriteAccessor.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/spi/WriteAccessor.java 2009-05-15 16:26:33 UTC (rev 26569)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/spi/WriteAccessor.java 2009-05-15 18:46:31 UTC (rev 26570)
@@ -18,6 +18,8 @@
import java.io.Externalizable;
import java.lang.reflect.Method;
+import java.math.BigDecimal;
+import java.math.BigInteger;
import org.drools.base.ValueType;
@@ -35,6 +37,10 @@
public void setValue( Object bean, Object value );
+ public void setBigDecimalValue( Object bean, BigDecimal value );
+
+ public void setBigIntegerValue( Object bean, BigInteger value );
+
public void setCharValue( Object bean, char value );
public void setIntValue( Object bean, int value );
Added: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/util/MathUtils.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/util/MathUtils.java (rev 0)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/util/MathUtils.java 2009-05-15 18:46:31 UTC (rev 26570)
@@ -0,0 +1,65 @@
+/*
+ * Copyright 2008 Red Hat
+ *
+ * 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.
+ *
+ */
+package org.drools.util;
+
+import java.math.BigDecimal;
+import java.math.BigInteger;
+
+/**
+ * Utility methods for math classes
+ *
+ * @author etirelli
+ */
+public class MathUtils {
+
+ public static BigDecimal getBigDecimal( Object value ) {
+ BigDecimal ret = null;
+ if( value != null ) {
+ if( value instanceof BigDecimal ) {
+ ret = (BigDecimal) value;
+ } else if( value instanceof String ) {
+ ret = new BigDecimal( (String) value );
+ } else if( value instanceof BigInteger ) {
+ ret = new BigDecimal( (BigInteger) value );
+ } else if( value instanceof Number ) {
+ ret = new BigDecimal( ((Number)value).doubleValue() );
+ } else {
+ throw new ClassCastException("Not possible to coerce ["+value+"] from class "+value.getClass()+" into a BigDecimal.");
+ }
+ }
+ return ret;
+ }
+
+ public static BigInteger getBigInteger(Object value) {
+ BigInteger ret = null;
+ if ( value != null ) {
+ if ( value instanceof BigInteger ) {
+ ret = (BigInteger) value;
+ } else if ( value instanceof String ) {
+ ret = new BigInteger( (String) value );
+ } else if ( value instanceof BigDecimal ) {
+ ret = ((BigDecimal) value).toBigInteger();
+ } else if ( value instanceof Number ) {
+ ret = BigInteger.valueOf( ((Number) value).longValue() );
+ } else {
+ throw new ClassCastException( "Not possible to coerce [" + value + "] from class " + value.getClass() + " into a BigInteger." );
+ }
+ }
+ return ret;
+ }
+
+}
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 2009-05-15 16:26:33 UTC (rev 26569)
+++ labs/jbossrules/trunk/drools-core/src/test/java/org/drools/base/EvaluatorFactoryTest.java 2009-05-15 18:46:31 UTC (rev 26570)
@@ -44,6 +44,7 @@
import org.drools.spi.Evaluator;
import org.drools.spi.FieldValue;
import org.drools.spi.InternalReadAccessor;
+import org.drools.util.MathUtils;
/**
* Some test coverage goodness for the evaluators.
@@ -134,15 +135,49 @@
ValueType.BIG_DECIMAL_TYPE );
Collection col = new ArrayList();
- col.add( new BigDecimal( 42 ) );
- col.add( new BigDecimal( 45 ) );
+ col.add( new BigDecimal( 42.0 ) );
+ col.add( new BigDecimal( 45.0 ) );
- final Object[][] data = {{new BigDecimal( 42 ), "==", new BigDecimal( 42 ), Boolean.TRUE}, {new BigDecimal( 42 ), "<", new BigDecimal( 43 ), Boolean.TRUE}, {new BigDecimal( 42 ), ">=", new BigDecimal( 41 ), Boolean.TRUE},
- {new BigDecimal( 42 ), "!=", new BigDecimal( 41 ), Boolean.TRUE}, {new BigDecimal( 42 ), ">", new BigDecimal( 41 ), Boolean.TRUE}, {new BigDecimal( 42 ), "<=", new BigDecimal( 42 ), Boolean.TRUE},
- {new BigDecimal( 42 ), ">", new BigDecimal( 100 ), Boolean.FALSE}, {new BigDecimal( 42 ), "==", null, Boolean.FALSE}, {new BigDecimal( 42 ), "!=", null, Boolean.TRUE}, {null, "==", new BigDecimal( 42 ), Boolean.FALSE},
- {null, "!=", new BigDecimal( 42 ), Boolean.TRUE}, {null, "<", new BigDecimal( 43 ), Boolean.FALSE}, {null, ">=", new BigDecimal( -10 ), Boolean.FALSE}, {null, ">", new BigDecimal( -10 ), Boolean.FALSE},
- {null, "<=", new BigDecimal( 42 ), Boolean.FALSE}, {new BigDecimal( 42 ), "memberOf", col, Boolean.TRUE}, {new BigDecimal( 43 ), "memberOf", col, Boolean.FALSE}, {null, "memberOf", col, Boolean.FALSE},
- {new BigDecimal( 42 ), "memberOf", null, Boolean.FALSE}, {new BigDecimal( 42 ), "not memberOf", col, Boolean.FALSE}, {new BigDecimal( 43 ), "not memberOf", col, Boolean.TRUE}, {null, "not memberOf", col, Boolean.TRUE},
+ final Object[][] data = {
+ {new BigDecimal( 42 ), "==", new BigDecimal( 42 ), Boolean.TRUE},
+ {new BigDecimal( 42 ), "==", new BigDecimal( "42.0" ), Boolean.TRUE},
+ {new BigDecimal( 42 ), "!=", new BigDecimal( "42.0" ), Boolean.FALSE},
+ {new BigDecimal( 45 ), "==", new Double( 45.0 ), Boolean.TRUE},
+ {new BigDecimal( 45 ), "!=", new Double( 45.0 ), Boolean.FALSE},
+ {new BigDecimal( 42 ), "==", new BigInteger( "42" ), Boolean.TRUE},
+ {new BigDecimal( 42 ), "!=", new BigInteger( "42" ), Boolean.FALSE},
+ {new BigDecimal( 42 ), "<", new BigDecimal( 43 ), Boolean.TRUE},
+ {new BigDecimal( 42 ), ">=", new BigDecimal( 41 ), Boolean.TRUE},
+ {new BigDecimal( 42 ), ">=", new BigDecimal( "41.0" ), Boolean.TRUE},
+ {new BigDecimal( 42 ), "!=", new BigDecimal( 41 ), Boolean.TRUE},
+ {new BigDecimal( 42 ), ">", new BigDecimal( 41 ), Boolean.TRUE},
+ {new BigDecimal( 42 ), "<=", new BigDecimal( 42 ), Boolean.TRUE},
+ {new BigDecimal( 42 ), ">", new BigDecimal( 100 ), Boolean.FALSE},
+ {new BigDecimal( 42 ), "<", new Double( 43 ), Boolean.TRUE},
+ {new BigDecimal( 42 ), ">=", new Double( 41 ), Boolean.TRUE},
+ {new BigDecimal( 42 ), ">", new Double( 41 ), Boolean.TRUE},
+ {new BigDecimal( 42 ), "<=", new Double( 42 ), Boolean.TRUE},
+ {new BigDecimal( 42 ), ">", new Double( 100 ), Boolean.FALSE},
+ {new BigDecimal( 42 ), "<", new BigInteger( "43" ), Boolean.TRUE},
+ {new BigDecimal( 42 ), ">=", new BigInteger( "41" ), Boolean.TRUE},
+ {new BigDecimal( 42 ), ">", new BigInteger( "41" ), Boolean.TRUE},
+ {new BigDecimal( 42 ), "<=", new BigInteger( "42" ), Boolean.TRUE},
+ {new BigDecimal( 42 ), ">", new BigInteger( "100" ), Boolean.FALSE},
+ {new BigDecimal( 42 ), "==", null, Boolean.FALSE},
+ {new BigDecimal( 42 ), "!=", null, Boolean.TRUE},
+ {null, "==", new BigDecimal( 42 ), Boolean.FALSE},
+ {null, "!=", new BigDecimal( 42 ), Boolean.TRUE},
+ {null, "<", new BigDecimal( 43 ), Boolean.FALSE},
+ {null, ">=", new BigDecimal( -10 ), Boolean.FALSE},
+ {null, ">", new BigDecimal( -10 ), Boolean.FALSE},
+ {null, "<=", new BigDecimal( 42 ), Boolean.FALSE},
+ {new BigDecimal( 42 ), "memberOf", col, Boolean.TRUE},
+ {new BigDecimal( 43 ), "memberOf", col, Boolean.FALSE},
+ {null, "memberOf", col, Boolean.FALSE},
+ {new BigDecimal( 42 ), "memberOf", null, Boolean.FALSE},
+ {new BigDecimal( 42 ), "not memberOf", col, Boolean.FALSE},
+ {new BigDecimal( 43 ), "not memberOf", col, Boolean.TRUE},
+ {null, "not memberOf", col, Boolean.TRUE},
{new BigDecimal( 42 ), "not memberOf", null, Boolean.FALSE}};
runEvaluatorTest( data,
@@ -160,12 +195,39 @@
col.add( new BigInteger( "42" ) );
col.add( new BigInteger( "45" ) );
- final Object[][] data = {{new BigInteger( "42" ), "==", new BigInteger( "42" ), Boolean.TRUE}, {new BigInteger( "42" ), "<", new BigInteger( "43" ), Boolean.TRUE}, {new BigInteger( "42" ), ">=", new BigInteger( "41" ), Boolean.TRUE},
- {new BigInteger( "42" ), "!=", new BigInteger( "41" ), Boolean.TRUE}, {new BigInteger( "42" ), ">", new BigInteger( "41" ), Boolean.TRUE}, {new BigInteger( "42" ), "<=", new BigInteger( "42" ), Boolean.TRUE},
- {new BigInteger( "42" ), ">", new BigInteger( "100" ), Boolean.FALSE}, {new BigInteger( "42" ), "==", null, Boolean.FALSE}, {new BigInteger( "42" ), "!=", null, Boolean.TRUE}, {null, "==", new BigInteger( "42" ), Boolean.FALSE},
- {null, "!=", new BigInteger( "42" ), Boolean.TRUE}, {null, "<", new BigInteger( "43" ), Boolean.FALSE}, {null, ">=", new BigInteger( "-10" ), Boolean.FALSE}, {null, ">", new BigInteger( "-10" ), Boolean.FALSE},
- {null, "<=", new BigInteger( "42" ), Boolean.FALSE}, {new BigInteger( "42" ), "memberOf", col, Boolean.TRUE}, {new BigInteger( "43" ), "memberOf", col, Boolean.FALSE}, {null, "memberOf", col, Boolean.FALSE},
- {new BigInteger( "42" ), "memberOf", null, Boolean.FALSE}, {new BigInteger( "42" ), "not memberOf", col, Boolean.FALSE}, {new BigInteger( "43" ), "not memberOf", col, Boolean.TRUE}, {null, "not memberOf", col, Boolean.TRUE},
+ final Object[][] data = {
+ {new BigInteger( "42" ), "==", new BigInteger( "42" ), Boolean.TRUE},
+ {new BigInteger( "42" ), "==", new BigDecimal( "42.0" ), Boolean.TRUE},
+ {new BigInteger( "42" ), "==", new Double( 42 ), Boolean.TRUE},
+ {new BigInteger( "42" ), "!=", new BigDecimal( "43.0" ), Boolean.TRUE},
+ {new BigInteger( "42" ), "!=", new Double( 43 ), Boolean.TRUE},
+ {new BigInteger( "42" ), "<", new BigInteger( "43" ), Boolean.TRUE},
+ {new BigInteger( "42" ), ">=", new BigInteger( "41" ), Boolean.TRUE},
+ {new BigInteger( "42" ), "!=", new BigInteger( "41" ), Boolean.TRUE},
+ {new BigInteger( "42" ), ">", new BigInteger( "41" ), Boolean.TRUE},
+ {new BigInteger( "42" ), "<=", new BigInteger( "42" ), Boolean.TRUE},
+ {new BigInteger( "42" ), ">", new BigInteger( "100" ), Boolean.FALSE},
+ {new BigInteger( "42" ), "<", new Long( "43" ), Boolean.TRUE},
+ {new BigInteger( "42" ), ">=", new Long( "41" ), Boolean.TRUE},
+ {new BigInteger( "42" ), "!=", new Long( "41" ), Boolean.TRUE},
+ {new BigInteger( "42" ), ">", new Long( "41" ), Boolean.TRUE},
+ {new BigInteger( "42" ), "<=", new Long( "42" ), Boolean.TRUE},
+ {new BigInteger( "42" ), ">", new Long( "100" ), Boolean.FALSE},
+ {new BigInteger( "42" ), "==", null, Boolean.FALSE},
+ {new BigInteger( "42" ), "!=", null, Boolean.TRUE},
+ {null, "==", new BigInteger( "42" ), Boolean.FALSE},
+ {null, "!=", new BigInteger( "42" ), Boolean.TRUE},
+ {null, "<", new BigInteger( "43" ), Boolean.FALSE},
+ {null, ">=", new BigInteger( "-10" ), Boolean.FALSE},
+ {null, ">", new BigInteger( "-10" ), Boolean.FALSE},
+ {null, "<=", new BigInteger( "42" ), Boolean.FALSE},
+ {new BigInteger( "42" ), "memberOf", col, Boolean.TRUE},
+ {new BigInteger( "43" ), "memberOf", col, Boolean.FALSE},
+ {null, "memberOf", col, Boolean.FALSE},
+ {new BigInteger( "42" ), "memberOf", null, Boolean.FALSE},
+ {new BigInteger( "42" ), "not memberOf", col, Boolean.FALSE},
+ {new BigInteger( "43" ), "not memberOf", col, Boolean.TRUE},
+ {null, "not memberOf", col, Boolean.TRUE},
{new BigInteger( "42" ), "not memberOf", null, Boolean.FALSE}};
runEvaluatorTest( data,
@@ -707,6 +769,24 @@
return false;
}
+ public BigDecimal getBigDecimalValue(InternalWorkingMemory workingMemory,
+ Object object) {
+ return MathUtils.getBigDecimal( object );
+ }
+
+ public BigInteger getBigIntegerValue(InternalWorkingMemory workingMemory,
+ Object object) {
+ return MathUtils.getBigInteger( object );
+ }
+
+ public BigDecimal getBigDecimalValue(Object object) {
+ return MathUtils.getBigDecimal( object );
+ }
+
+ public BigInteger getBigIntegerValue(Object object) {
+ return MathUtils.getBigInteger( object );
+ }
+
}
// public void testRegexFoo() {
Modified: labs/jbossrules/trunk/drools-core/src/test/java/org/drools/base/TemporalEvaluatorFactoryTest.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/test/java/org/drools/base/TemporalEvaluatorFactoryTest.java 2009-05-15 16:26:33 UTC (rev 26569)
+++ labs/jbossrules/trunk/drools-core/src/test/java/org/drools/base/TemporalEvaluatorFactoryTest.java 2009-05-15 18:46:31 UTC (rev 26570)
@@ -20,6 +20,8 @@
import java.io.ObjectInput;
import java.io.ObjectOutput;
import java.lang.reflect.Method;
+import java.math.BigDecimal;
+import java.math.BigInteger;
import junit.framework.TestCase;
@@ -1216,6 +1218,28 @@
return false;
}
+ public BigDecimal getBigDecimalValue(InternalWorkingMemory workingMemory,
+ Object object) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ public BigInteger getBigIntegerValue(InternalWorkingMemory workingMemory,
+ Object object) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ public BigDecimal getBigDecimalValue(Object object) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ public BigInteger getBigIntegerValue(Object object) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
}
}
Modified: labs/jbossrules/trunk/drools-core/src/test/java/org/drools/base/evaluators/BigDecimalEqualityTest.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/test/java/org/drools/base/evaluators/BigDecimalEqualityTest.java 2009-05-15 16:26:33 UTC (rev 26569)
+++ labs/jbossrules/trunk/drools-core/src/test/java/org/drools/base/evaluators/BigDecimalEqualityTest.java 2009-05-15 18:46:31 UTC (rev 26570)
@@ -261,6 +261,28 @@
public int getIndex() {
return 0; //To change body of implemented methods use File | Settings | File Templates.
}
+
+ public BigDecimal getBigDecimalValue(InternalWorkingMemory workingMemory,
+ Object object) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ public BigInteger getBigIntegerValue(InternalWorkingMemory workingMemory,
+ Object object) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ public BigDecimal getBigDecimalValue(Object object) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ public BigInteger getBigIntegerValue(Object object) {
+ // TODO Auto-generated method stub
+ return null;
+ }
}
}
Modified: labs/jbossrules/trunk/drools-core/src/test/java/org/drools/reteoo/CompositeObjectSinkAdapterTest.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/test/java/org/drools/reteoo/CompositeObjectSinkAdapterTest.java 2009-05-15 16:26:33 UTC (rev 26569)
+++ labs/jbossrules/trunk/drools-core/src/test/java/org/drools/reteoo/CompositeObjectSinkAdapterTest.java 2009-05-15 18:46:31 UTC (rev 26570)
@@ -4,6 +4,8 @@
import java.io.ObjectInput;
import java.io.ObjectOutput;
import java.lang.reflect.Method;
+import java.math.BigDecimal;
+import java.math.BigInteger;
import junit.framework.TestCase;
@@ -547,6 +549,28 @@
return false;
}
+ public BigDecimal getBigDecimalValue(InternalWorkingMemory workingMemory,
+ Object object) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ public BigInteger getBigIntegerValue(InternalWorkingMemory workingMemory,
+ Object object) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ public BigDecimal getBigDecimalValue(Object object) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ public BigInteger getBigIntegerValue(Object object) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
}
static class MockBetaNode extends BetaNode {
More information about the jboss-svn-commits
mailing list