From d1e12fdd368636cbefdc97ec3d8b9e00acd19c12 Mon Sep 17 00:00:00 2001 From: Havoc Pennington Date: Wed, 16 Nov 2011 15:08:29 -0500 Subject: [PATCH] move newNumber to ConfigNumber rather than AbstractConfigValue --- .../config/impl/AbstractConfigValue.java | 18 ------------------ .../com/typesafe/config/impl/ConfigNumber.java | 18 ++++++++++++++++++ .../java/com/typesafe/config/impl/Tokens.java | 6 +++--- .../typesafe/config/impl/ConfigValueTest.scala | 4 ++-- 4 files changed, 23 insertions(+), 23 deletions(-) diff --git a/src/main/java/com/typesafe/config/impl/AbstractConfigValue.java b/src/main/java/com/typesafe/config/impl/AbstractConfigValue.java index e79d7001..de5c2bcc 100644 --- a/src/main/java/com/typesafe/config/impl/AbstractConfigValue.java +++ b/src/main/java/com/typesafe/config/impl/AbstractConfigValue.java @@ -121,22 +121,4 @@ abstract class AbstractConfigValue implements ConfigValue { String transformToString() { return null; } - - static ConfigNumber newNumber(ConfigOrigin origin, long number, - String originalText) { - if (number <= Integer.MAX_VALUE && number >= Integer.MIN_VALUE) - return new ConfigInt(origin, (int) number, originalText); - else - return new ConfigLong(origin, number, originalText); - } - - static ConfigNumber newNumber(ConfigOrigin origin, double number, - String originalText) { - long asLong = (long) number; - if (asLong == number) { - return newNumber(origin, asLong, originalText); - } else { - return new ConfigDouble(origin, number, originalText); - } - } } diff --git a/src/main/java/com/typesafe/config/impl/ConfigNumber.java b/src/main/java/com/typesafe/config/impl/ConfigNumber.java index 65a8ae8e..eec0ff50 100644 --- a/src/main/java/com/typesafe/config/impl/ConfigNumber.java +++ b/src/main/java/com/typesafe/config/impl/ConfigNumber.java @@ -62,4 +62,22 @@ abstract class ConfigNumber extends AbstractConfigValue { } return (int) (asLong ^ (asLong >>> 32)); } + + static ConfigNumber newNumber(ConfigOrigin origin, long number, + String originalText) { + if (number <= Integer.MAX_VALUE && number >= Integer.MIN_VALUE) + return new ConfigInt(origin, (int) number, originalText); + else + return new ConfigLong(origin, number, originalText); + } + + static ConfigNumber newNumber(ConfigOrigin origin, double number, + String originalText) { + long asLong = (long) number; + if (asLong == number) { + return newNumber(origin, asLong, originalText); + } else { + return new ConfigDouble(origin, number, originalText); + } + } } diff --git a/src/main/java/com/typesafe/config/impl/Tokens.java b/src/main/java/com/typesafe/config/impl/Tokens.java index 0cba83e0..8d66bcb5 100644 --- a/src/main/java/com/typesafe/config/impl/Tokens.java +++ b/src/main/java/com/typesafe/config/impl/Tokens.java @@ -265,18 +265,18 @@ final class Tokens { } static Token newInt(ConfigOrigin origin, int value, String originalText) { - return newValue(AbstractConfigValue.newNumber(origin, value, + return newValue(ConfigNumber.newNumber(origin, value, originalText)); } static Token newDouble(ConfigOrigin origin, double value, String originalText) { - return newValue(AbstractConfigValue.newNumber(origin, value, + return newValue(ConfigNumber.newNumber(origin, value, originalText)); } static Token newLong(ConfigOrigin origin, long value, String originalText) { - return newValue(AbstractConfigValue.newNumber(origin, value, + return newValue(ConfigNumber.newNumber(origin, value, originalText)); } diff --git a/src/test/scala/com/typesafe/config/impl/ConfigValueTest.scala b/src/test/scala/com/typesafe/config/impl/ConfigValueTest.scala index d4d482a0..4a2b6ba4 100644 --- a/src/test/scala/com/typesafe/config/impl/ConfigValueTest.scala +++ b/src/test/scala/com/typesafe/config/impl/ConfigValueTest.scala @@ -408,8 +408,8 @@ class ConfigValueTest extends TestUtils { @Test def newNumberWorks() { - def nL(v: Long) = AbstractConfigValue.newNumber(fakeOrigin(), v, null) - def nD(v: Double) = AbstractConfigValue.newNumber(fakeOrigin(), v, null) + def nL(v: Long) = ConfigNumber.newNumber(fakeOrigin(), v, null) + def nD(v: Double) = ConfigNumber.newNumber(fakeOrigin(), v, null) // the general idea is that the destination type should depend // only on the actual numeric value, not on the type of the source