[configuration] Numbers conversionsI like the upcasting stuff!  However
shouldn't these unit tests throw the ConversionRuntimeException:

// downcasting
+        config.setProperty("number", new Long(Long.MAX_VALUE));
+        assertEquals("Long to Integer", -1, config.getInt("number"));
+        assertEquals("Long to Short", -1, config.getShort("number"));
+        assertEquals("Long to Byte", -1, config.getByte("number"));

If I put in a really big number and then try to retrieve it as an Integer,
getting back -1 would be a rather shock!  I think I would rather hit an
exception instead, thereby clueing me in that I couldn't downcast...

Eric
  -----Original Message-----
  From: Emmanuel Bourg [mailto:[EMAIL PROTECTED]
  Sent: Sunday, June 13, 2004 2:58 PM
  To: Jakarta Commons Developers List
  Subject: [configuration] Numbers conversions


  Hello, I'm considering a change to improve the flexibility of
  [configuration] with regard to the numbers conversions. Currently any
  Number put in a configuration can't be retrieved as another Number type,
  for example:

  config.setProperty("number", new Byte(123));
  config.getInteger("number");

  throws a ClassCastException, but:

  config.setProperty("number", "123");
  config.getInteger("number");

  works fine.

  The change consists in testing in the getXXX methods if the object
  retrieved is a Number and call the Number.xxxValue() method to convert
  it to the appropriate type. I'm attaching a patch and a test case to
  illustrate this.

  What do you think ?

  Emmanuel Bourg


Reply via email to