added type coercions for String to BigDecimal and BigInteger

Project: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/repo
Commit: 
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/commit/223c3916
Tree: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/tree/223c3916
Diff: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/diff/223c3916

Branch: refs/heads/master
Commit: 223c3916ecbf7604eb297960e968200a8f2e4015
Parents: 5dd08aa
Author: U-VIRTUSTREAM\Michael_Sc <[email protected]>
Authored: Wed Jun 3 17:52:43 2015 +0200
Committer: U-VIRTUSTREAM\Michael_Sc <[email protected]>
Committed: Wed Jun 3 17:52:43 2015 +0200

----------------------------------------------------------------------
 .../main/java/brooklyn/util/flags/TypeCoercions.java    | 12 ++++++++++++
 .../java/brooklyn/util/internal/TypeCoercionsTest.java  |  6 ++++++
 2 files changed, 18 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/223c3916/core/src/main/java/brooklyn/util/flags/TypeCoercions.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/brooklyn/util/flags/TypeCoercions.java 
b/core/src/main/java/brooklyn/util/flags/TypeCoercions.java
index 48bb495..d93528a 100644
--- a/core/src/main/java/brooklyn/util/flags/TypeCoercions.java
+++ b/core/src/main/java/brooklyn/util/flags/TypeCoercions.java
@@ -665,12 +665,24 @@ public class TypeCoercions {
                 return input.intValue();
             }
         });
+        registerAdapter(String.class, BigDecimal.class, new 
Function<String,BigDecimal>() {
+            @Override
+            public BigDecimal apply(String input) {
+                return new BigDecimal(input);
+            }
+        });
         registerAdapter(Double.class, BigDecimal.class, new 
Function<Double,BigDecimal>() {
             @Override
             public BigDecimal apply(Double input) {
                 return BigDecimal.valueOf(input);
             }
         });
+        registerAdapter(String.class, BigInteger.class, new 
Function<String,BigInteger>() {
+            @Override
+            public BigInteger apply(String input) {
+                return new BigInteger(input);
+            }
+        });
         registerAdapter(Long.class, BigInteger.class, new 
Function<Long,BigInteger>() {
             @Override
             public BigInteger apply(Long input) {

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/223c3916/core/src/test/java/brooklyn/util/internal/TypeCoercionsTest.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/brooklyn/util/internal/TypeCoercionsTest.java 
b/core/src/test/java/brooklyn/util/internal/TypeCoercionsTest.java
index 3c09e1b..9b2f6b0 100644
--- a/core/src/test/java/brooklyn/util/internal/TypeCoercionsTest.java
+++ b/core/src/test/java/brooklyn/util/internal/TypeCoercionsTest.java
@@ -151,6 +151,12 @@ public class TypeCoercionsTest {
     }
 
     @Test
+    public void testCoerceStringToBigNumber() {
+       assertEquals(TypeCoercions.coerce("0.5", BigDecimal.class), 
BigDecimal.valueOf(0.5));
+       assertEquals(TypeCoercions.coerce("1", BigInteger.class), 
BigInteger.valueOf(1));
+    }
+
+    @Test
     public void testCoerceStringToEnum() {
         assertEquals(TypeCoercions.coerce("STARTING", Lifecycle.class), 
Lifecycle.STARTING);
         assertEquals(TypeCoercions.coerce("Starting", Lifecycle.class), 
Lifecycle.STARTING);

Reply via email to