[jboss-svn-commits] JBL Code SVN: r18906 - in labs/jbossrules/branches/4.0.x: drools-compiler/src/test/resources/org/drools/integrationtests and 3 other directories.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Wed Mar 12 20:25:01 EDT 2008
Author: michael.neale at jboss.com
Date: 2008-03-12 20:25:01 -0400 (Wed, 12 Mar 2008)
New Revision: 18906
Added:
labs/jbossrules/branches/4.0.x/drools-compiler/src/test/resources/org/drools/integrationtests/big_decimal_and_literal.drl
Modified:
labs/jbossrules/branches/4.0.x/drools-compiler/src/test/java/org/drools/integrationtests/MiscTest.java
labs/jbossrules/branches/4.0.x/drools-core/src/main/java/org/drools/base/evaluators/BigDecimalFactory.java
labs/jbossrules/branches/4.0.x/drools-core/src/main/java/org/drools/base/evaluators/BigIntegerFactory.java
labs/jbossrules/branches/4.0.x/drools-core/src/main/java/org/drools/base/field/BooleanFieldImpl.java
labs/jbossrules/branches/4.0.x/drools-core/src/main/java/org/drools/base/field/DoubleFieldImpl.java
labs/jbossrules/branches/4.0.x/drools-core/src/main/java/org/drools/base/field/LongFieldImpl.java
labs/jbossrules/branches/4.0.x/drools-core/src/main/java/org/drools/base/field/ObjectFieldImpl.java
labs/jbossrules/branches/4.0.x/drools-core/src/main/java/org/drools/spi/FieldValue.java
Log:
JBRULES-1428 Big number support (proper co-ercion)
Modified: labs/jbossrules/branches/4.0.x/drools-compiler/src/test/java/org/drools/integrationtests/MiscTest.java
===================================================================
--- labs/jbossrules/branches/4.0.x/drools-compiler/src/test/java/org/drools/integrationtests/MiscTest.java 2008-03-12 23:17:24 UTC (rev 18905)
+++ labs/jbossrules/branches/4.0.x/drools-compiler/src/test/java/org/drools/integrationtests/MiscTest.java 2008-03-13 00:25:01 UTC (rev 18906)
@@ -27,6 +27,7 @@
import java.io.Reader;
import java.io.StringReader;
import java.math.BigDecimal;
+import java.math.BigInteger;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
@@ -631,7 +632,7 @@
assertEquals(1, list.size());
}
-
+
// @FIXME
public void FIXME_testBigDecimalWithFromAndEval() throws Exception {
String rule = "package org.test;\n";
@@ -642,7 +643,7 @@
rule += "then\n";
rule += " System.out.println(\"OK!\");\n";
rule += "end";
-
+
final PackageBuilder builder = new PackageBuilder();
builder.addPackageFromDrl( new StringReader( rule ));
final Package pkg = builder.getPackage();
@@ -651,9 +652,9 @@
ruleBase.addPackage(pkg);
final StatefulSession session = ruleBase.newStatefulSession();
session.fireAllRules();
-
+
}
-
+
public void testMVELConsequenceWithMapsAndArrays() throws Exception {
String rule = "package org.test;\n";
rule += "import java.util.ArrayList\n";
@@ -670,7 +671,7 @@
rule += " System.out.println(m[\"content\"][0]);\n";
rule += " list.add(m[\"content\"][0]);\n";
rule += "end";
-
+
final PackageBuilder builder = new PackageBuilder();
builder.addPackageFromDrl( new StringReader( rule ));
final Package pkg = builder.getPackage();
@@ -681,11 +682,35 @@
List list = new ArrayList();
session.setGlobal( "list", list );
session.fireAllRules();
-
+
assertEquals( 1, list.size() );
- assertEquals( "first", list.get( 0 ) );
- }
+ assertEquals( "first", list.get( 0 ) );
+ }
+ public void testBigDecimalIntegerLiteral() throws Exception {
+
+ final PackageBuilder builder = new PackageBuilder();
+ builder.addPackageFromDrl(new InputStreamReader(getClass()
+ .getResourceAsStream("big_decimal_and_literal.drl")));
+ final Package pkg = builder.getPackage();
+
+ final RuleBase ruleBase = getRuleBase();
+ ruleBase.addPackage(pkg);
+ final WorkingMemory workingMemory = ruleBase.newStatefulSession();
+
+ final List list = new ArrayList();
+ workingMemory.setGlobal("list", list);
+
+ final PersonInterface bill = new Person("bill", null, 12);
+ bill.setBigDecimal(new BigDecimal("42"));
+ bill.setBigInteger(new BigInteger("42"));
+
+ workingMemory.insert(bill);
+ workingMemory.fireAllRules();
+
+ assertEquals(6, list.size());
+ }
+
public void testCell() throws Exception {
final Cell cell1 = new Cell(9);
final Cell cell = new Cell(0);
@@ -2824,7 +2849,7 @@
final List results = new ArrayList();
session.setGlobal( "results",
results );
-
+
Map map = new HashMap();
map.put( "content", "hello ;=" );
session.insert( map );
@@ -3954,7 +3979,7 @@
// builder2.addPackageFromDrl( new InputStreamReader(
// getClass().getResourceAsStream( "test_FinalClass2.drl" ) ) );
// ruleBase.addPackage( builder2.getPackage() );
- //
+ //
// // it will automatically fire the rule
// assertEquals( 2,
// list.size() );
Added: labs/jbossrules/branches/4.0.x/drools-compiler/src/test/resources/org/drools/integrationtests/big_decimal_and_literal.drl
===================================================================
--- labs/jbossrules/branches/4.0.x/drools-compiler/src/test/resources/org/drools/integrationtests/big_decimal_and_literal.drl (rev 0)
+++ labs/jbossrules/branches/4.0.x/drools-compiler/src/test/resources/org/drools/integrationtests/big_decimal_and_literal.drl 2008-03-13 00:25:01 UTC (rev 18906)
@@ -0,0 +1,53 @@
+package org.drools.test
+
+import org.drools.Person;
+import java.math.BigDecimal;
+
+global java.util.List list;
+
+rule "BigDec"
+
+ when
+ p: Person(bigDecimal < 100.01)
+ then
+ list.add( p );
+end
+
+rule "BigInt"
+ when
+ p: Person(bigInteger < 100.1)
+ then
+ list.add( p );
+end
+
+rule "BigDec2"
+
+ when
+ p: Person(bigDecimal == 42)
+ then
+ list.add( p );
+end
+
+rule "BigInt2"
+ when
+ p: Person(bigInteger == 42)
+ then
+ list.add( p );
+end
+
+rule "BigDec3"
+
+ when
+ p: Person(bigDecimal != 100)
+ then
+ list.add( p );
+end
+
+rule "BigInt3"
+ when
+ p: Person(bigInteger != 100)
+ then
+ list.add( p );
+end
+
+
Property changes on: labs/jbossrules/branches/4.0.x/drools-compiler/src/test/resources/org/drools/integrationtests/big_decimal_and_literal.drl
___________________________________________________________________
Name: svn:eol-style
+ native
Modified: labs/jbossrules/branches/4.0.x/drools-core/src/main/java/org/drools/base/evaluators/BigDecimalFactory.java
===================================================================
--- labs/jbossrules/branches/4.0.x/drools-core/src/main/java/org/drools/base/evaluators/BigDecimalFactory.java 2008-03-12 23:17:24 UTC (rev 18905)
+++ labs/jbossrules/branches/4.0.x/drools-core/src/main/java/org/drools/base/evaluators/BigDecimalFactory.java 2008-03-13 00:25:01 UTC (rev 18906)
@@ -2,13 +2,13 @@
/*
* 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.
@@ -69,7 +69,7 @@
static class BigDecimalEqualEvaluator extends BaseEvaluator {
/**
- *
+ *
*/
private static final long serialVersionUID = 400L;
public final static Evaluator INSTANCE = new BigDecimalEqualEvaluator();
@@ -83,7 +83,7 @@
final Extractor extractor,
final Object object1, final FieldValue object2) {
final Object value1 = extractor.getValue( workingMemory, object1 );
- final Object value2 = object2.getValue();
+ final Object value2 = object2.getBigDecimalValue();
if ( value1 == null ) {
return value2 == null;
}
@@ -128,7 +128,7 @@
static class BigDecimalNotEqualEvaluator extends BaseEvaluator {
/**
- *
+ *
*/
private static final long serialVersionUID = 400L;
public final static Evaluator INSTANCE = new BigDecimalNotEqualEvaluator();
@@ -142,7 +142,7 @@
final Extractor extractor,
final Object object1, final FieldValue object2) {
final Object value1 = extractor.getValue( workingMemory, object1 );
- final Object value2 = object2.getValue();
+ final Object value2 = object2.getBigDecimalValue();
if ( value1 == null ) {
return value2 != null;
}
@@ -186,7 +186,7 @@
static class BigDecimalLessEvaluator extends BaseEvaluator {
/**
- *
+ *
*/
private static final long serialVersionUID = 400L;
public final static Evaluator INSTANCE = new BigDecimalLessEvaluator();
@@ -203,7 +203,7 @@
return false;
}
final BigDecimal comp = (BigDecimal) extractor.getValue( workingMemory, object1 );
- return comp.compareTo( (BigDecimal) object2.getValue() ) < 0;
+ return comp.compareTo( (BigDecimal) object2.getBigDecimalValue() ) < 0;
}
public boolean evaluateCachedRight(InternalWorkingMemory workingMemory,
@@ -242,7 +242,7 @@
static class BigDecimalLessOrEqualEvaluator extends BaseEvaluator {
/**
- *
+ *
*/
private static final long serialVersionUID = 400L;
public final static Evaluator INSTANCE = new BigDecimalLessOrEqualEvaluator();
@@ -259,7 +259,7 @@
return false;
}
final BigDecimal comp = (BigDecimal) extractor.getValue( workingMemory, object1 );
- return comp.compareTo( (BigDecimal) object2.getValue() ) <= 0;
+ return comp.compareTo( (BigDecimal) object2.getBigDecimalValue() ) <= 0;
}
public boolean evaluateCachedRight(InternalWorkingMemory workingMemory,
@@ -298,7 +298,7 @@
static class BigDecimalGreaterEvaluator extends BaseEvaluator {
/**
- *
+ *
*/
private static final long serialVersionUID = 400L;
public final static Evaluator INSTANCE = new BigDecimalGreaterEvaluator();
@@ -315,7 +315,7 @@
return false;
}
final BigDecimal comp = (BigDecimal) extractor.getValue( workingMemory, object1 );
- return comp.compareTo( (BigDecimal) object2.getValue() ) > 0;
+ return comp.compareTo( (BigDecimal) object2.getBigDecimalValue() ) > 0;
}
public boolean evaluateCachedRight(InternalWorkingMemory workingMemory,
@@ -354,7 +354,7 @@
static class BigDecimalGreaterOrEqualEvaluator extends BaseEvaluator {
/**
- *
+ *
*/
private static final long serialVersionUID = 400L;
private final static Evaluator INSTANCE = new BigDecimalGreaterOrEqualEvaluator();
@@ -371,7 +371,7 @@
return false;
}
final BigDecimal comp = (BigDecimal) extractor.getValue( workingMemory, object1 );
- return comp.compareTo( (BigDecimal) object2.getValue() ) >= 0;
+ return comp.compareTo( (BigDecimal) object2.getBigDecimalValue() ) >= 0;
}
public boolean evaluateCachedRight(InternalWorkingMemory workingMemory,
@@ -425,7 +425,7 @@
static class BigDecimalNotMemberOfEvaluator extends BaseNotMemberOfEvaluator {
/**
- *
+ *
*/
private static final long serialVersionUID = 400L;
public final static Evaluator INSTANCE = new BigDecimalNotMemberOfEvaluator();
Modified: labs/jbossrules/branches/4.0.x/drools-core/src/main/java/org/drools/base/evaluators/BigIntegerFactory.java
===================================================================
--- labs/jbossrules/branches/4.0.x/drools-core/src/main/java/org/drools/base/evaluators/BigIntegerFactory.java 2008-03-12 23:17:24 UTC (rev 18905)
+++ labs/jbossrules/branches/4.0.x/drools-core/src/main/java/org/drools/base/evaluators/BigIntegerFactory.java 2008-03-13 00:25:01 UTC (rev 18906)
@@ -2,13 +2,13 @@
/*
* 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.
@@ -69,7 +69,7 @@
static class BigIntegerEqualEvaluator extends BaseEvaluator {
/**
- *
+ *
*/
private static final long serialVersionUID = 400L;
public final static Evaluator INSTANCE = new BigIntegerEqualEvaluator();
@@ -83,7 +83,7 @@
final Extractor extractor,
final Object object1, final FieldValue object2) {
final Object value1 = extractor.getValue( workingMemory, object1 );
- final Object value2 = object2.getValue();
+ final Object value2 = object2.getBigIntegerValue();
if ( value1 == null ) {
return value2 == null;
}
@@ -127,7 +127,7 @@
static class BigIntegerNotEqualEvaluator extends BaseEvaluator {
/**
- *
+ *
*/
private static final long serialVersionUID = 400L;
public final static Evaluator INSTANCE = new BigIntegerNotEqualEvaluator();
@@ -141,7 +141,7 @@
final Extractor extractor,
final Object object1, final FieldValue object2) {
final Object value1 = extractor.getValue( workingMemory, object1 );
- final Object value2 = object2.getValue();
+ final Object value2 = object2.getBigIntegerValue();
if ( value1 == null ) {
return value2 != null;
}
@@ -185,7 +185,7 @@
static class BigIntegerLessEvaluator extends BaseEvaluator {
/**
- *
+ *
*/
private static final long serialVersionUID = 400L;
public final static Evaluator INSTANCE = new BigIntegerLessEvaluator();
@@ -202,7 +202,7 @@
return false;
}
final BigInteger comp = (BigInteger) extractor.getValue( workingMemory, object1 );
- return comp.compareTo( (BigInteger) object2.getValue() ) < 0;
+ return comp.compareTo( object2.getBigIntegerValue() ) < 0;
}
public boolean evaluateCachedRight(InternalWorkingMemory workingMemory,
@@ -241,7 +241,7 @@
static class BigIntegerLessOrEqualEvaluator extends BaseEvaluator {
/**
- *
+ *
*/
private static final long serialVersionUID = 400L;
public final static Evaluator INSTANCE = new BigIntegerLessOrEqualEvaluator();
@@ -258,7 +258,7 @@
return false;
}
final BigInteger comp = (BigInteger) extractor.getValue( workingMemory, object1 );
- return comp.compareTo( (BigInteger) object2.getValue() ) <= 0;
+ return comp.compareTo( object2.getBigIntegerValue() ) <= 0;
}
public boolean evaluateCachedRight(InternalWorkingMemory workingMemory,
@@ -297,7 +297,7 @@
static class BigIntegerGreaterEvaluator extends BaseEvaluator {
/**
- *
+ *
*/
private static final long serialVersionUID = 400L;
public final static Evaluator INSTANCE = new BigIntegerGreaterEvaluator();
@@ -314,7 +314,7 @@
return false;
}
final BigInteger comp = (BigInteger) extractor.getValue( workingMemory, object1 );
- return comp.compareTo( (BigInteger) object2.getValue() ) > 0;
+ return comp.compareTo( object2.getBigIntegerValue() ) > 0;
}
public boolean evaluateCachedRight(InternalWorkingMemory workingMemory,
@@ -353,7 +353,7 @@
static class BigIntegerGreaterOrEqualEvaluator extends BaseEvaluator {
/**
- *
+ *
*/
private static final long serialVersionUID = 400L;
private final static Evaluator INSTANCE = new BigIntegerGreaterOrEqualEvaluator();
@@ -370,7 +370,7 @@
return false;
}
final BigInteger comp = (BigInteger) extractor.getValue( workingMemory, object1 );
- return comp.compareTo( (BigInteger) object2.getValue() ) >= 0;
+ return comp.compareTo( object2.getBigIntegerValue() ) >= 0;
}
public boolean evaluateCachedRight(InternalWorkingMemory workingMemory,
@@ -406,7 +406,7 @@
return "BigInteger >=";
}
}
-
+
static class BigIntegerMemberOfEvaluator extends BaseMemberOfEvaluator {
private static final long serialVersionUID = 400L;
@@ -424,7 +424,7 @@
static class BigIntegerNotMemberOfEvaluator extends BaseNotMemberOfEvaluator {
/**
- *
+ *
*/
private static final long serialVersionUID = 400L;
public final static Evaluator INSTANCE = new BigIntegerNotMemberOfEvaluator();
@@ -438,5 +438,5 @@
return "BigInteger not memberOf";
}
}
-
+
}
\ No newline at end of file
Modified: labs/jbossrules/branches/4.0.x/drools-core/src/main/java/org/drools/base/field/BooleanFieldImpl.java
===================================================================
--- labs/jbossrules/branches/4.0.x/drools-core/src/main/java/org/drools/base/field/BooleanFieldImpl.java 2008-03-12 23:17:24 UTC (rev 18905)
+++ labs/jbossrules/branches/4.0.x/drools-core/src/main/java/org/drools/base/field/BooleanFieldImpl.java 2008-03-13 00:25:01 UTC (rev 18906)
@@ -1,12 +1,12 @@
/*
* 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.
@@ -16,6 +16,9 @@
package org.drools.base.field;
+import java.math.BigDecimal;
+import java.math.BigInteger;
+
import org.drools.RuntimeDroolsException;
import org.drools.spi.FieldValue;
@@ -89,7 +92,7 @@
public int hashCode() {
return this.value ? 1 : 0;
}
-
+
public boolean isNull() {
return false;
}
@@ -113,9 +116,17 @@
public boolean isCollectionField() {
return false;
}
-
+
public boolean isStringField() {
return false;
}
+ public BigDecimal getBigDecimalValue() {
+ throw new RuntimeDroolsException( "Conversion to BigDecimal not supported for type boolean" );
+ }
+
+ public BigInteger getBigIntegerValue() {
+ throw new RuntimeDroolsException( "Conversion to BigInteger not supported for type boolean" );
+ }
+
}
Modified: labs/jbossrules/branches/4.0.x/drools-core/src/main/java/org/drools/base/field/DoubleFieldImpl.java
===================================================================
--- labs/jbossrules/branches/4.0.x/drools-core/src/main/java/org/drools/base/field/DoubleFieldImpl.java 2008-03-12 23:17:24 UTC (rev 18905)
+++ labs/jbossrules/branches/4.0.x/drools-core/src/main/java/org/drools/base/field/DoubleFieldImpl.java 2008-03-13 00:25:01 UTC (rev 18906)
@@ -1,5 +1,8 @@
package org.drools.base.field;
+import java.math.BigDecimal;
+import java.math.BigInteger;
+
import org.drools.RuntimeDroolsException;
import org.drools.spi.FieldValue;
@@ -69,7 +72,7 @@
public int hashCode() {
return (int) this.value;
}
-
+
public boolean isNull() {
return false;
}
@@ -89,7 +92,7 @@
public boolean isObjectField() {
return false;
}
-
+
public boolean isCollectionField() {
return false;
}
@@ -98,4 +101,12 @@
return false;
}
+ public BigDecimal getBigDecimalValue() {
+ return new BigDecimal(this.value);
+ }
+
+ public BigInteger getBigIntegerValue() {
+ throw new RuntimeDroolsException( "Conversion to BigInteger not supported for type double" );
+ }
+
}
Modified: labs/jbossrules/branches/4.0.x/drools-core/src/main/java/org/drools/base/field/LongFieldImpl.java
===================================================================
--- labs/jbossrules/branches/4.0.x/drools-core/src/main/java/org/drools/base/field/LongFieldImpl.java 2008-03-12 23:17:24 UTC (rev 18905)
+++ labs/jbossrules/branches/4.0.x/drools-core/src/main/java/org/drools/base/field/LongFieldImpl.java 2008-03-13 00:25:01 UTC (rev 18906)
@@ -1,5 +1,8 @@
package org.drools.base.field;
+import java.math.BigDecimal;
+import java.math.BigInteger;
+
import org.drools.RuntimeDroolsException;
import org.drools.spi.FieldValue;
@@ -69,7 +72,7 @@
public int hashCode() {
return (int) this.value;
}
-
+
public boolean isNull() {
return false;
}
@@ -98,4 +101,12 @@
return false;
}
+ public BigDecimal getBigDecimalValue() {
+ return new BigDecimal(this.value);
+ }
+
+ public BigInteger getBigIntegerValue() {
+ return BigInteger.valueOf(this.value);
+ }
+
}
Modified: labs/jbossrules/branches/4.0.x/drools-core/src/main/java/org/drools/base/field/ObjectFieldImpl.java
===================================================================
--- labs/jbossrules/branches/4.0.x/drools-core/src/main/java/org/drools/base/field/ObjectFieldImpl.java 2008-03-12 23:17:24 UTC (rev 18905)
+++ labs/jbossrules/branches/4.0.x/drools-core/src/main/java/org/drools/base/field/ObjectFieldImpl.java 2008-03-13 00:25:01 UTC (rev 18906)
@@ -2,13 +2,13 @@
/*
* 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.
@@ -16,6 +16,8 @@
* limitations under the License.
*/
+import java.math.BigDecimal;
+import java.math.BigInteger;
import java.util.Collection;
import org.drools.RuntimeDroolsException;
@@ -27,7 +29,7 @@
private static final long serialVersionUID = 400L;
private final Object value;
-
+
private final boolean isCollection;
private final boolean isNumber;
private final boolean isBoolean;
@@ -65,7 +67,7 @@
return ((Number) this.value).byteValue();
} else if( isString ) {
return Byte.valueOf( (String) this.value ).byteValue();
- }
+ }
throw new RuntimeDroolsException( "Conversion to byte not supported for type: " + this.value.getClass() );
}
@@ -142,7 +144,7 @@
return 0;
}
}
-
+
public boolean isNull() {
return value == null;
}
@@ -162,12 +164,34 @@
public boolean isObjectField() {
return true;
}
-
+
public boolean isCollectionField() {
return this.isCollection;
}
-
+
public boolean isStringField() {
return this.isString;
}
+
+ 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() );
+ }
+
+ 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 BigDecimal not supported for type: " + this.value.getClass() );
+ }
}
\ No newline at end of file
Modified: labs/jbossrules/branches/4.0.x/drools-core/src/main/java/org/drools/spi/FieldValue.java
===================================================================
--- labs/jbossrules/branches/4.0.x/drools-core/src/main/java/org/drools/spi/FieldValue.java 2008-03-12 23:17:24 UTC (rev 18905)
+++ labs/jbossrules/branches/4.0.x/drools-core/src/main/java/org/drools/spi/FieldValue.java 2008-03-13 00:25:01 UTC (rev 18906)
@@ -2,13 +2,13 @@
/*
* 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.
@@ -17,6 +17,8 @@
*/
import java.io.Serializable;
+import java.math.BigDecimal;
+import java.math.BigInteger;
public interface FieldValue
extends
@@ -24,6 +26,10 @@
public Object getValue();
+ public BigDecimal getBigDecimalValue();
+
+ public BigInteger getBigIntegerValue();
+
public char getCharValue();
public int getIntValue();
@@ -39,7 +45,7 @@
public double getDoubleValue();
public boolean getBooleanValue();
-
+
public boolean isNull();
public boolean isBooleanField();
@@ -55,7 +61,7 @@
* @return
*/
public boolean isCollectionField();
-
+
public boolean isStringField();
}
\ No newline at end of file
More information about the jboss-svn-commits
mailing list