[Practicalxml-commits] SF.net SVN: practicalxml:[105] branches/dev-1.1/src
Brought to you by:
kdgregory
From: Auto-Generated S. C. M. <pra...@li...> - 2009-08-14 20:05:46
|
Revision: 105 http://practicalxml.svn.sourceforge.net/practicalxml/?rev=105&view=rev Author: kdgregory Date: 2009-08-14 20:05:39 +0000 (Fri, 14 Aug 2009) Log Message: ----------- rename PrimitiveConversionHelper to ConversionHelper Modified Paths: -------------- branches/dev-1.1/src/main/java/net/sf/practicalxml/converter/bean2xml/Bean2XmlDriver.java branches/dev-1.1/src/main/java/net/sf/practicalxml/converter/xml2bean/Xml2BeanHandler.java Added Paths: ----------- branches/dev-1.1/src/main/java/net/sf/practicalxml/converter/ConversionHelper.java branches/dev-1.1/src/test/java/net/sf/practicalxml/converter/TestConversionHelper.java Removed Paths: ------------- branches/dev-1.1/src/main/java/net/sf/practicalxml/converter/PrimitiveConversionHelper.java branches/dev-1.1/src/test/java/net/sf/practicalxml/converter/TestPrimitiveConversionHelper.java Copied: branches/dev-1.1/src/main/java/net/sf/practicalxml/converter/ConversionHelper.java (from rev 99, branches/dev-1.1/src/main/java/net/sf/practicalxml/converter/PrimitiveConversionHelper.java) =================================================================== --- branches/dev-1.1/src/main/java/net/sf/practicalxml/converter/ConversionHelper.java (rev 0) +++ branches/dev-1.1/src/main/java/net/sf/practicalxml/converter/ConversionHelper.java 2009-08-14 20:05:39 UTC (rev 105) @@ -0,0 +1,446 @@ +// Copyright 2008-2009 severally by the contributors +// +// 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 net.sf.practicalxml.converter; + +import java.math.BigDecimal; +import java.math.BigInteger; +import java.text.DateFormat; +import java.text.ParseException; +import java.text.SimpleDateFormat; +import java.util.Date; +import java.util.HashMap; +import java.util.Map; + +import net.sf.practicalxml.XmlUtil; + + +/** + * Responsible for converting "primitive" types -- those with unambiguous + * string representations -- to/from such a representation. + */ +public class ConversionHelper +{ + // this is not static because the helpers are inner classes + private Map<Class<?>,ConversionHandler<?>> _helpers + = new HashMap<Class<?>,ConversionHandler<?>>(); + { + _helpers.put(String.class, new StringConversionHandler()); + _helpers.put(Character.class, new CharacterConversionHandler()); + _helpers.put(Boolean.class, new BooleanConversionHandler()); + _helpers.put(Byte.class, new ByteConversionHandler()); + _helpers.put(Short.class, new ShortConversionHandler()); + _helpers.put(Integer.class, new IntegerConversionHandler()); + _helpers.put(Long.class, new LongConversionHandler()); + _helpers.put(Float.class, new FloatConversionHandler()); + _helpers.put(Double.class, new DoubleConversionHandler()); + _helpers.put(BigInteger.class, new BigIntegerConversionHandler()); + _helpers.put(BigDecimal.class, new BigDecimalConversionHandler()); + _helpers.put(Date.class, new DateConversionHandler()); + } + + private boolean _useXsdFormatting; + + + /** + * Default constructor, which uses Java formatting. + */ + public ConversionHelper() + { + // nothing to see here + } + + + /** + * Constructor that allows selection of Java or XSD formatting. + */ + public ConversionHelper(boolean useXsdFormatting) + { + _useXsdFormatting = useXsdFormatting; + } + + +//---------------------------------------------------------------------------- +// Public Methods +//---------------------------------------------------------------------------- + + /** + * Returns the XSD type name to use for stringified objects of the + * specified class, <code>null</code> if this converter can't convert + * instances of the class. + */ + public String getXsdType(Class<?> klass) + { + ConversionHandler<?> helper = _helpers.get(klass); + return (helper == null) ? null : helper.getXsiType(); + } + + + /** + * Converts the passed object into its string representation, according + * to the options currently in effect. Passing <code>null</code> will + * return <code>null</code>. Throws {@link ConversionException} if + * unable to convert the passed object. + */ + public String stringify(Object obj) + { + if (obj == null) + return null; + + try + { + return getHelper(obj.getClass()).stringify(obj); + } + catch (Exception ee) + { + if (ee instanceof ConversionException) + throw (ConversionException)ee; + throw new ConversionException("unable to convert: " + obj, ee); + } + } + + + /** + * Parses the passed string into an object of the desired class. Passing + * <code>null</code> will return <code>null</code>, passing an empty + * string will typically throw a {@link ConversionException}. + */ + public Object parse(String str, Class<?> klass) + { + if (str == null) + return null; + + try + { + return getHelper(klass).parse(str); + } + catch (Exception ee) + { + if (ee instanceof ConversionException) + throw (ConversionException)ee; + throw new ConversionException("unable to parse: " + str, ee); + } + } + + +//---------------------------------------------------------------------------- +// Internals +//---------------------------------------------------------------------------- + + /** + * Returns the appropriate conversion helper or throws. + */ + @SuppressWarnings(value="unchecked") + private ConversionHandler getHelper(Class<?> klass) + { + ConversionHandler<?> helper = _helpers.get(klass); + if (helper == null) + throw new ConversionException("unable to get helper: " + klass.getName()); + return helper; + } + + + /** + * Each primitive class has its own conversion handler that is responsible + * for converting to/from a string representation. Handlers are guaranteed + * to receive non-null objects/strings. + * <p> + * This interface is parameterized so that the compiler will generate + * bridge methods for implementation classes. Elsewhere, we don't care + * about parameterization, so wildcard or drop it (see {@link #getHelper}). + * <p> + * Implementation classes are expected to be inner classes, so that they + * have access to configuration information (such as formatting rules). + * <p> + * Implementation classes are permitted to throw any exception; caller is + * expected to catch them and translate to a {@link ConversionException}. + */ + private static interface ConversionHandler<T> + { + public String getXsiType(); + public String stringify(T obj) throws Exception; + public T parse(String str) throws Exception; + } + + + private class StringConversionHandler + implements ConversionHandler<String> + { + public String getXsiType() + { + return "xsd:string"; + } + + public String stringify(String obj) + { + return String.valueOf(obj); + } + + public String parse(String str) + { + return str; + } + } + + + private class CharacterConversionHandler + implements ConversionHandler<Character> + { + private final Character NUL = Character.valueOf('\0'); + + public String getXsiType() + { + return "xsd:string"; + } + + public String stringify(Character obj) + { + if (obj.equals(NUL)) + return ""; + return obj.toString(); + } + + public Character parse(String str) + { + if (str.length() == 0) + return NUL; + if (str.length() > 1) + throw new ConversionException( + "attempted to convert multi-character string: \"" + str + "\""); + return Character.valueOf(str.charAt(0)); + } + } + + + private class BooleanConversionHandler + implements ConversionHandler<Boolean> + { + public String getXsiType() + { + return "xsd:boolean"; + } + + public String stringify(Boolean obj) + { + return _useXsdFormatting + ? XmlUtil.formatXsdBoolean(obj.booleanValue()) + : obj.toString(); + } + + public Boolean parse(String str) + { + return _useXsdFormatting + ? XmlUtil.parseXsdBoolean(str) + : Boolean.parseBoolean(str); + } + } + + + private class ByteConversionHandler + implements ConversionHandler<Byte> + { + public String getXsiType() + { + return "xsd:byte"; + } + + public String stringify(Byte obj) + { + return obj.toString(); + } + + public Byte parse(String str) + { + return Byte.valueOf(str.trim()); + } + } + + + private class ShortConversionHandler + implements ConversionHandler<Short> + { + public String getXsiType() + { + return "xsd:short"; + } + + public String stringify(Short obj) + { + return obj.toString(); + } + + public Short parse(String str) + { + return Short.valueOf(str.trim()); + } + } + + + private class IntegerConversionHandler + implements ConversionHandler<Integer> + { + public String getXsiType() + { + return "xsd:int"; + } + + public String stringify(Integer obj) + { + return obj.toString(); + } + + public Integer parse(String str) + { + return Integer.valueOf(str.trim()); + } + } + + + private class LongConversionHandler + implements ConversionHandler<Long> + { + public String getXsiType() + { + return "xsd:long"; + } + + public String stringify(Long obj) + { + return obj.toString(); + } + + public Long parse(String str) + { + return Long.valueOf(str.trim()); + } + } + + + private class FloatConversionHandler + implements ConversionHandler<Float> + { + public String getXsiType() + { + return "xsd:decimal"; + } + + public String stringify(Float obj) + { + return _useXsdFormatting + ? XmlUtil.formatXsdDecimal(obj) + : obj.toString(); + } + + public Float parse(String str) + { + return Float.valueOf(str.trim()); + } + } + + + private class DoubleConversionHandler + implements ConversionHandler<Double> + { + public String getXsiType() + { + return "xsd:decimal"; + } + + public String stringify(Double obj) + { + return _useXsdFormatting + ? XmlUtil.formatXsdDecimal(obj) + : obj.toString(); + } + + public Double parse(String str) + { + return Double.valueOf(str.trim()); + } + } + + + private class BigIntegerConversionHandler + implements ConversionHandler<BigInteger> + { + public String getXsiType() + { + return "xsd:decimal"; + } + + public String stringify(BigInteger obj) + { + return obj.toString(); + } + + public BigInteger parse(String str) + { + return new BigInteger(str.trim()); + } + } + + + private class BigDecimalConversionHandler + implements ConversionHandler<BigDecimal> + { + public String getXsiType() + { + return "xsd:decimal"; + } + + public String stringify(BigDecimal obj) + { + return obj.toString(); + } + + public BigDecimal parse(String str) + { + return new BigDecimal(str.trim()); + } + } + + + private class DateConversionHandler + implements ConversionHandler<Date> + { + // format as specified by Date.toString() JavaDoc + private DateFormat _defaultFormat = new SimpleDateFormat("EEE MMM dd HH:mm:ss zzz yyyy"); + + public String getXsiType() + { + return "xsd:dateTime"; + } + + public String stringify(Date obj) + { + return _useXsdFormatting + ? XmlUtil.formatXsdDatetime(obj) + : obj.toString(); + } + + public Date parse(String str) + throws ParseException + { + if (_useXsdFormatting) + return XmlUtil.parseXsdDatetime(str); + else + { + synchronized (_defaultFormat) + { + return _defaultFormat.parse(str); + } + } + } + } +} Deleted: branches/dev-1.1/src/main/java/net/sf/practicalxml/converter/PrimitiveConversionHelper.java =================================================================== --- branches/dev-1.1/src/main/java/net/sf/practicalxml/converter/PrimitiveConversionHelper.java 2009-08-14 19:00:11 UTC (rev 104) +++ branches/dev-1.1/src/main/java/net/sf/practicalxml/converter/PrimitiveConversionHelper.java 2009-08-14 20:05:39 UTC (rev 105) @@ -1,446 +0,0 @@ -// Copyright 2008-2009 severally by the contributors -// -// 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 net.sf.practicalxml.converter; - -import java.math.BigDecimal; -import java.math.BigInteger; -import java.text.DateFormat; -import java.text.ParseException; -import java.text.SimpleDateFormat; -import java.util.Date; -import java.util.HashMap; -import java.util.Map; - -import net.sf.practicalxml.XmlUtil; - - -/** - * Responsible for converting "primitive" types -- those with unambiguous - * string representations -- to/from such a representation. - */ -public class PrimitiveConversionHelper -{ - // this is not static because the helpers are inner classes - private Map<Class<?>,ConversionHandler<?>> _helpers - = new HashMap<Class<?>,ConversionHandler<?>>(); - { - _helpers.put(String.class, new StringConversionHandler()); - _helpers.put(Character.class, new CharacterConversionHandler()); - _helpers.put(Boolean.class, new BooleanConversionHandler()); - _helpers.put(Byte.class, new ByteConversionHandler()); - _helpers.put(Short.class, new ShortConversionHandler()); - _helpers.put(Integer.class, new IntegerConversionHandler()); - _helpers.put(Long.class, new LongConversionHandler()); - _helpers.put(Float.class, new FloatConversionHandler()); - _helpers.put(Double.class, new DoubleConversionHandler()); - _helpers.put(BigInteger.class, new BigIntegerConversionHandler()); - _helpers.put(BigDecimal.class, new BigDecimalConversionHandler()); - _helpers.put(Date.class, new DateConversionHandler()); - } - - private boolean _useXsdFormatting; - - - /** - * Default constructor, which uses Java formatting. - */ - public PrimitiveConversionHelper() - { - // nothing to see here - } - - - /** - * Constructor that allows selection of Java or XSD formatting. - */ - public PrimitiveConversionHelper(boolean useXsdFormatting) - { - _useXsdFormatting = useXsdFormatting; - } - - -//---------------------------------------------------------------------------- -// Public Methods -//---------------------------------------------------------------------------- - - /** - * Returns the XSD type name to use for stringified objects of the - * specified class, <code>null</code> if this converter can't convert - * instances of the class. - */ - public String getXsdType(Class<?> klass) - { - ConversionHandler<?> helper = _helpers.get(klass); - return (helper == null) ? null : helper.getXsiType(); - } - - - /** - * Converts the passed object into its string representation, according - * to the options currently in effect. Passing <code>null</code> will - * return <code>null</code>. Throws {@link ConversionException} if - * unable to convert the passed object. - */ - public String stringify(Object obj) - { - if (obj == null) - return null; - - try - { - return getHelper(obj.getClass()).stringify(obj); - } - catch (Exception ee) - { - if (ee instanceof ConversionException) - throw (ConversionException)ee; - throw new ConversionException("unable to convert: " + obj, ee); - } - } - - - /** - * Parses the passed string into an object of the desired class. Passing - * <code>null</code> will return <code>null</code>, passing an empty - * string will typically throw a {@link ConversionException}. - */ - public Object parse(String str, Class<?> klass) - { - if (str == null) - return null; - - try - { - return getHelper(klass).parse(str); - } - catch (Exception ee) - { - if (ee instanceof ConversionException) - throw (ConversionException)ee; - throw new ConversionException("unable to parse: " + str, ee); - } - } - - -//---------------------------------------------------------------------------- -// Internals -//---------------------------------------------------------------------------- - - /** - * Returns the appropriate conversion helper or throws. - */ - @SuppressWarnings(value="unchecked") - private ConversionHandler getHelper(Class<?> klass) - { - ConversionHandler<?> helper = _helpers.get(klass); - if (helper == null) - throw new ConversionException("unable to get helper: " + klass.getName()); - return helper; - } - - - /** - * Each primitive class has its own conversion handler that is responsible - * for converting to/from a string representation. Handlers are guaranteed - * to receive non-null objects/strings. - * <p> - * This interface is parameterized so that the compiler will generate - * bridge methods for implementation classes. Elsewhere, we don't care - * about parameterization, so wildcard or drop it (see {@link #getHelper}). - * <p> - * Implementation classes are expected to be inner classes, so that they - * have access to configuration information (such as formatting rules). - * <p> - * Implementation classes are permitted to throw any exception; caller is - * expected to catch them and translate to a {@link ConversionException}. - */ - private static interface ConversionHandler<T> - { - public String getXsiType(); - public String stringify(T obj) throws Exception; - public T parse(String str) throws Exception; - } - - - private class StringConversionHandler - implements ConversionHandler<String> - { - public String getXsiType() - { - return "xsd:string"; - } - - public String stringify(String obj) - { - return String.valueOf(obj); - } - - public String parse(String str) - { - return str; - } - } - - - private class CharacterConversionHandler - implements ConversionHandler<Character> - { - private final Character NUL = Character.valueOf('\0'); - - public String getXsiType() - { - return "xsd:string"; - } - - public String stringify(Character obj) - { - if (obj.equals(NUL)) - return ""; - return obj.toString(); - } - - public Character parse(String str) - { - if (str.length() == 0) - return NUL; - if (str.length() > 1) - throw new ConversionException( - "attempted to convert multi-character string: \"" + str + "\""); - return Character.valueOf(str.charAt(0)); - } - } - - - private class BooleanConversionHandler - implements ConversionHandler<Boolean> - { - public String getXsiType() - { - return "xsd:boolean"; - } - - public String stringify(Boolean obj) - { - return _useXsdFormatting - ? XmlUtil.formatXsdBoolean(obj.booleanValue()) - : obj.toString(); - } - - public Boolean parse(String str) - { - return _useXsdFormatting - ? XmlUtil.parseXsdBoolean(str) - : Boolean.parseBoolean(str); - } - } - - - private class ByteConversionHandler - implements ConversionHandler<Byte> - { - public String getXsiType() - { - return "xsd:byte"; - } - - public String stringify(Byte obj) - { - return obj.toString(); - } - - public Byte parse(String str) - { - return Byte.valueOf(str.trim()); - } - } - - - private class ShortConversionHandler - implements ConversionHandler<Short> - { - public String getXsiType() - { - return "xsd:short"; - } - - public String stringify(Short obj) - { - return obj.toString(); - } - - public Short parse(String str) - { - return Short.valueOf(str.trim()); - } - } - - - private class IntegerConversionHandler - implements ConversionHandler<Integer> - { - public String getXsiType() - { - return "xsd:int"; - } - - public String stringify(Integer obj) - { - return obj.toString(); - } - - public Integer parse(String str) - { - return Integer.valueOf(str.trim()); - } - } - - - private class LongConversionHandler - implements ConversionHandler<Long> - { - public String getXsiType() - { - return "xsd:long"; - } - - public String stringify(Long obj) - { - return obj.toString(); - } - - public Long parse(String str) - { - return Long.valueOf(str.trim()); - } - } - - - private class FloatConversionHandler - implements ConversionHandler<Float> - { - public String getXsiType() - { - return "xsd:decimal"; - } - - public String stringify(Float obj) - { - return _useXsdFormatting - ? XmlUtil.formatXsdDecimal(obj) - : obj.toString(); - } - - public Float parse(String str) - { - return Float.valueOf(str.trim()); - } - } - - - private class DoubleConversionHandler - implements ConversionHandler<Double> - { - public String getXsiType() - { - return "xsd:decimal"; - } - - public String stringify(Double obj) - { - return _useXsdFormatting - ? XmlUtil.formatXsdDecimal(obj) - : obj.toString(); - } - - public Double parse(String str) - { - return Double.valueOf(str.trim()); - } - } - - - private class BigIntegerConversionHandler - implements ConversionHandler<BigInteger> - { - public String getXsiType() - { - return "xsd:decimal"; - } - - public String stringify(BigInteger obj) - { - return obj.toString(); - } - - public BigInteger parse(String str) - { - return new BigInteger(str.trim()); - } - } - - - private class BigDecimalConversionHandler - implements ConversionHandler<BigDecimal> - { - public String getXsiType() - { - return "xsd:decimal"; - } - - public String stringify(BigDecimal obj) - { - return obj.toString(); - } - - public BigDecimal parse(String str) - { - return new BigDecimal(str.trim()); - } - } - - - private class DateConversionHandler - implements ConversionHandler<Date> - { - // format as specified by Date.toString() JavaDoc - private DateFormat _defaultFormat = new SimpleDateFormat("EEE MMM dd HH:mm:ss zzz yyyy"); - - public String getXsiType() - { - return "xsd:dateTime"; - } - - public String stringify(Date obj) - { - return _useXsdFormatting - ? XmlUtil.formatXsdDatetime(obj) - : obj.toString(); - } - - public Date parse(String str) - throws ParseException - { - if (_useXsdFormatting) - return XmlUtil.parseXsdDatetime(str); - else - { - synchronized (_defaultFormat) - { - return _defaultFormat.parse(str); - } - } - } - } -} Modified: branches/dev-1.1/src/main/java/net/sf/practicalxml/converter/bean2xml/Bean2XmlDriver.java =================================================================== --- branches/dev-1.1/src/main/java/net/sf/practicalxml/converter/bean2xml/Bean2XmlDriver.java 2009-08-14 19:00:11 UTC (rev 104) +++ branches/dev-1.1/src/main/java/net/sf/practicalxml/converter/bean2xml/Bean2XmlDriver.java 2009-08-14 20:05:39 UTC (rev 105) @@ -28,7 +28,7 @@ import net.sf.practicalxml.DomUtil; import net.sf.practicalxml.converter.ConversionException; -import net.sf.practicalxml.converter.PrimitiveConversionHelper; +import net.sf.practicalxml.converter.ConversionHelper; import net.sf.practicalxml.converter.bean2xml.Bean2XmlAppenders.*; @@ -42,13 +42,13 @@ public class Bean2XmlDriver { private EnumSet<Bean2XmlOptions> _options = EnumSet.noneOf(Bean2XmlOptions.class); - private PrimitiveConversionHelper _primitiveHelper; + private ConversionHelper _primitiveHelper; public Bean2XmlDriver(Bean2XmlOptions... options) { for (Bean2XmlOptions option : options) _options.add(option); - _primitiveHelper = new PrimitiveConversionHelper(shouldUseXsdFormatting()); + _primitiveHelper = new ConversionHelper(shouldUseXsdFormatting()); } Modified: branches/dev-1.1/src/main/java/net/sf/practicalxml/converter/xml2bean/Xml2BeanHandler.java =================================================================== --- branches/dev-1.1/src/main/java/net/sf/practicalxml/converter/xml2bean/Xml2BeanHandler.java 2009-08-14 19:00:11 UTC (rev 104) +++ branches/dev-1.1/src/main/java/net/sf/practicalxml/converter/xml2bean/Xml2BeanHandler.java 2009-08-14 20:05:39 UTC (rev 105) @@ -18,7 +18,7 @@ import net.sf.practicalxml.XmlException; import net.sf.practicalxml.XmlUtil; import net.sf.practicalxml.converter.ConversionException; -import net.sf.practicalxml.converter.PrimitiveConversionHelper; +import net.sf.practicalxml.converter.ConversionHelper; import net.sf.practicalxml.internal.StringUtils; import java.util.Arrays; @@ -42,7 +42,7 @@ public class Xml2BeanHandler { private EnumSet<Xml2BeanOptions> _options; - private PrimitiveConversionHelper _primitiveHelper; + private ConversionHelper _primitiveHelper; /** @@ -54,7 +54,7 @@ for (Xml2BeanOptions option : options) _options.add(option); - _primitiveHelper = new PrimitiveConversionHelper(true); + _primitiveHelper = new ConversionHelper(true); } Copied: branches/dev-1.1/src/test/java/net/sf/practicalxml/converter/TestConversionHelper.java (from rev 99, branches/dev-1.1/src/test/java/net/sf/practicalxml/converter/TestPrimitiveConversionHelper.java) =================================================================== --- branches/dev-1.1/src/test/java/net/sf/practicalxml/converter/TestConversionHelper.java (rev 0) +++ branches/dev-1.1/src/test/java/net/sf/practicalxml/converter/TestConversionHelper.java 2009-08-14 20:05:39 UTC (rev 105) @@ -0,0 +1,529 @@ +// Copyright 2008-2009 severally by the contributors +// +// 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 net.sf.practicalxml.converter; + +import java.math.BigDecimal; +import java.math.BigInteger; +import java.util.Date; + + +public class TestConversionHelper +extends AbstractBeanConverterTestCase +{ + public TestConversionHelper(String name) + { + super(name); + } + + +//---------------------------------------------------------------------------- +// Support Code +//---------------------------------------------------------------------------- + + private void assertFailsConversionToObject( + String message, + ConversionHelper helper, + String str, + Class<?> klass) + { + try + { + helper.parse(str, klass); + fail(message); + } + catch (ConversionException ee) + { + // success! + } + } + + +//---------------------------------------------------------------------------- +// Test Cases +//---------------------------------------------------------------------------- + + public void testUnknownClass() throws Exception + { + ConversionHelper helper = new ConversionHelper(); + + assertNull(helper.getXsdType(Class.class)); + } + + + public void testConvertNull() throws Exception + { + ConversionHelper helper = new ConversionHelper(); + + assertNull(helper.stringify(null)); + assertNull(helper.parse(null, Object.class)); + } + + + public void testConvertString() throws Exception + { + ConversionHelper helper = new ConversionHelper(); + + assertEquals("xsd:string", helper.getXsdType(String.class)); + + assertEquals("foo", helper.stringify("foo")); + assertEquals("foo", helper.parse("foo", String.class)); + + assertEquals("", helper.stringify("")); + assertEquals("", helper.parse("", String.class)); + } + + + public void testConvertCharacter() throws Exception + { + ConversionHelper helper = new ConversionHelper(); + + assertEquals("xsd:string", helper.getXsdType(Character.class)); + + Character simple = Character.valueOf('A'); + assertEquals("A", helper.stringify(simple)); + assertEquals(simple, helper.parse("A", Character.class)); + + Character nul = Character.valueOf('\0'); + assertEquals("", helper.stringify(nul)); + assertEquals(nul, helper.parse("", Character.class)); + + assertFailsConversionToObject( + "converted multi-character string", + helper, "ix", Character.class); + } + + + public void testConvertBooleanDefault() throws Exception + { + ConversionHelper helper = new ConversionHelper(); + + // default boolean conversion is compatible with XSD type def + assertEquals("xsd:boolean", helper.getXsdType(Boolean.class)); + + String sTrue = Boolean.TRUE.toString(); + assertEquals(sTrue, helper.stringify(Boolean.TRUE)); + assertEquals(Boolean.TRUE, helper.parse(sTrue, Boolean.class)); + + String sFalse = Boolean.FALSE.toString(); + assertEquals(sFalse, helper.stringify(Boolean.FALSE)); + assertEquals(Boolean.FALSE, helper.parse(sFalse, Boolean.class)); + + assertEquals(Boolean.FALSE, helper.parse("ix", Boolean.class)); + assertEquals(Boolean.FALSE, helper.parse("", Boolean.class)); + } + + + public void testConvertBooleanXsd() throws Exception + { + ConversionHelper helper = new ConversionHelper(true); + + assertEquals("xsd:boolean", helper.getXsdType(Boolean.class)); + + assertEquals("true", helper.stringify(Boolean.TRUE)); + assertEquals(Boolean.TRUE, helper.parse("true", Boolean.class)); + assertEquals(Boolean.TRUE, helper.parse("1", Boolean.class)); + + assertEquals("false", helper.stringify(Boolean.FALSE)); + assertEquals(Boolean.FALSE, helper.parse("false", Boolean.class)); + assertEquals(Boolean.FALSE, helper.parse("0", Boolean.class)); + + assertFailsConversionToObject( + "converted multi-character string", + helper, "ix", Boolean.class); + + assertFailsConversionToObject( + "converted empty string", + helper, "", Boolean.class); + } + + + public void testConvertByte() throws Exception + { + ConversionHelper helper = new ConversionHelper(); + + assertEquals("xsd:byte", helper.getXsdType(Byte.class)); + + String str1 = "123"; + Byte val1 = Byte.valueOf((byte)123); + assertEquals(str1, helper.stringify(val1)); + assertEquals(val1, helper.parse(str1, Byte.class)); + + String str2 = "-123"; + Byte val2 = Byte.valueOf((byte)-123); + assertEquals(str2, helper.stringify(val2)); + assertEquals(val2, helper.parse(str2, Byte.class)); + + String str3 = " -123 "; + Byte val3 = Byte.valueOf((byte)-123); + assertEquals(val3, helper.parse(str3, Byte.class)); + + assertFailsConversionToObject( + "converted too-large value", + helper, "1234567", Byte.class); + + assertFailsConversionToObject( + "converted non-integer value", + helper, "1.23", Byte.class); + + assertFailsConversionToObject( + "converted non-numeric value", + helper, "ix", Byte.class); + + assertFailsConversionToObject( + "converted empty string", + helper, "", Byte.class); + } + + + public void testConvertShort() throws Exception + { + ConversionHelper helper = new ConversionHelper(); + + assertEquals("xsd:short", helper.getXsdType(Short.class)); + + String str1 = "12345"; + Short val1 = Short.valueOf((short)12345); + assertEquals(str1, helper.stringify(val1)); + assertEquals(val1, helper.parse(str1, Short.class)); + + String str2 = "-12345"; + Short val2 = Short.valueOf((short)-12345); + assertEquals(str2, helper.stringify(val2)); + assertEquals(val2, helper.parse(str2, Short.class)); + + String str3 = " -12345 "; + Short val3 = Short.valueOf((short)-12345); + assertEquals(val3, helper.parse(str3, Short.class)); + + assertFailsConversionToObject( + "converted too-large value", + helper, "1234567", Short.class); + + assertFailsConversionToObject( + "converted non-integer value", + helper, "123.45", Short.class); + + assertFailsConversionToObject( + "converted non-numeric value", + helper, "ix", Short.class); + + assertFailsConversionToObject( + "converted empty string", + helper, "", Short.class); + } + + + public void testConvertInteger() throws Exception + { + ConversionHelper helper = new ConversionHelper(); + + assertEquals("xsd:int", helper.getXsdType(Integer.class)); + + String str1 = "1234567"; + Integer val1 = Integer.valueOf(1234567); + assertEquals(str1, helper.stringify(val1)); + assertEquals(val1, helper.parse(str1, Integer.class)); + + String str2 = "-1234567"; + Integer val2 = Integer.valueOf(-1234567); + assertEquals(str2, helper.stringify(val2)); + assertEquals(val2, helper.parse(str2, Integer.class)); + + String str3 = " -1234567 "; + Integer val3 = Integer.valueOf(-1234567); + assertEquals(val3, helper.parse(str3, Integer.class)); + + assertFailsConversionToObject( + "converted too-large value", + helper, "123456789012345", Integer.class); + + assertFailsConversionToObject( + "converted non-integer value", + helper, "123.45", Integer.class); + + assertFailsConversionToObject( + "converted non-numeric value", + helper, "ix", Integer.class); + + assertFailsConversionToObject( + "converted empty string", + helper, "", Integer.class); + } + + + public void testConvertLong() throws Exception + { + ConversionHelper helper = new ConversionHelper(); + + assertEquals("xsd:long", helper.getXsdType(Long.class)); + + String str1 = "1234567890"; + Long val1 = Long.valueOf(1234567890L); + assertEquals(str1, helper.stringify(val1)); + assertEquals(val1, helper.parse(str1, Long.class)); + + String str2 = "-1234567890"; + Long val2 = Long.valueOf(-1234567890L); + assertEquals(str2, helper.stringify(val2)); + assertEquals(val2, helper.parse(str2, Long.class)); + + String str3 = " -1234567890 "; + Long val3 = Long.valueOf(-1234567890L); + assertEquals(val3, helper.parse(str3, Long.class)); + + assertFailsConversionToObject( + "converted too-large value", + helper, "123456789012345678901234567890", Long.class); + + assertFailsConversionToObject( + "converted non-integer value", + helper, "123.45", Long.class); + + assertFailsConversionToObject( + "converted non-numeric value", + helper, "ix", Long.class); + + assertFailsConversionToObject( + "converted empty string", + helper, "", Long.class); + } + + + public void testConvertFloatDefault() throws Exception + { + ConversionHelper helper = new ConversionHelper(); + + // default float conversion is compatible with XSD type def + assertEquals("xsd:decimal", helper.getXsdType(Float.class)); + + // note: for default-format tests, strings are generated from values + Float val1 = Float.valueOf(1234f); + String str1 = val1.toString(); + assertEquals(str1, helper.stringify(val1)); + assertEquals(val1, helper.parse(str1, Float.class)); + + Float val2 = Float.valueOf(-1234f); + String str2 = val2.toString(); + assertEquals(str2, helper.stringify(val2)); + assertEquals(val2, helper.parse(str2, Float.class)); + + String str3 = " -1234.5 "; + Float val3 = Float.valueOf(-1234.5f); + assertEquals(val3, helper.parse(str3, Float.class)); + + assertFailsConversionToObject( + "converted non-numeric value", + helper, "ix", Float.class); + + assertFailsConversionToObject( + "converted empty string", + helper, "", Float.class); + } + + + public void testConvertFloatXsd() throws Exception + { + ConversionHelper helper = new ConversionHelper(true); + + assertEquals("xsd:decimal", helper.getXsdType(Float.class)); + + String str1 = "1234.0"; + Float val1 = Float.valueOf(1234f); + assertEquals(str1, helper.stringify(val1)); + assertEquals(val1, helper.parse(str1, Float.class)); + + String str2 = "-1234.0"; + Float val2 = Float.valueOf(-1234f); + assertEquals(str2, helper.stringify(val2)); + assertEquals(val2, helper.parse(str2, Float.class)); + + String str3 = " -1234.5 "; + Float val3 = Float.valueOf(-1234.5f); + assertEquals(val3, helper.parse(str3, Float.class)); + + assertFailsConversionToObject( + "converted non-numeric value", + helper, "ix", Float.class); + + assertFailsConversionToObject( + "converted empty string", + helper, "", Float.class); + } + + + public void testConvertDoubleDefault() throws Exception + { + ConversionHelper helper = new ConversionHelper(); + + // default double conversion is compatible with XSD type def + assertEquals("xsd:decimal", helper.getXsdType(Double.class)); + + // note: for default-format tests, strings are generated from values + Double val1 = Double.valueOf(1234567890.5); + String str1 = val1.toString(); + assertEquals(str1, helper.stringify(val1)); + assertEquals(val1, helper.parse(str1, Double.class)); + + Double val2 = Double.valueOf(-1234567890.1); + String str2 = val2.toString(); + assertEquals(str2, helper.stringify(val2)); + assertEquals(val2, helper.parse(str2, Double.class)); + + String str3 = " -1234.5 "; + Double val3 = Double.valueOf(-1234.5); + assertEquals(val3, helper.parse(str3, Double.class)); + + assertFailsConversionToObject( + "converted non-numeric value", + helper, "ix", Double.class); + + assertFailsConversionToObject( + "converted empty string", + helper, "", Double.class); + } + + + public void testConvertDoubleXsd() throws Exception + { + ConversionHelper helper = new ConversionHelper(true); + + assertEquals("xsd:decimal", helper.getXsdType(Double.class)); + + // while for XSD-format tests, we want to verify the strings + String str1 = "1234567890.5"; + Double val1 = Double.valueOf(1234567890.5); + assertEquals(str1, helper.stringify(val1)); + assertEquals(val1, helper.parse(str1, Double.class)); + + String str2 = "-1234567890.1"; + Double val2 = Double.valueOf(-1234567890.1); + assertEquals(str2, helper.stringify(val2)); + assertEquals(val2, helper.parse(str2, Double.class)); + + String str3 = " -1234.5 "; + Double val3 = Double.valueOf(-1234.5); + assertEquals(val3, helper.parse(str3, Double.class)); + + assertFailsConversionToObject( + "converted non-numeric value", + helper, "ix", Double.class); + + assertFailsConversionToObject( + "converted empty string", + helper, "", Double.class); + } + + + public void testConvertBigInteger() throws Exception + { + ConversionHelper helper = new ConversionHelper(); + + assertEquals("xsd:decimal", helper.getXsdType(BigInteger.class)); + + String str1 = "123456789012345678901234567890"; + BigInteger val1 = new BigInteger(str1); + assertEquals(str1, helper.stringify(val1)); + assertEquals(val1, helper.parse(str1, BigInteger.class)); + + String str2 = "-123456789012345678901234567890"; + BigInteger val2 = new BigInteger(str2); + assertEquals(str2, helper.stringify(val2)); + assertEquals(val2, helper.parse(str2, BigInteger.class)); + + assertFailsConversionToObject( + "converted non-integer value", + helper, "123.45", BigInteger.class); + + assertFailsConversionToObject( + "converted non-numeric value", + helper, "ix", BigInteger.class); + + assertFailsConversionToObject( + "converted empty string", + helper, "", BigInteger.class); + } + + + public void testConvertBigDecimal() throws Exception + { + ConversionHelper helper = new ConversionHelper(); + + assertEquals("xsd:decimal", helper.getXsdType(BigDecimal.class)); + + String str1 = "12345678901234567890.123456789"; + BigDecimal val1 = new BigDecimal(str1); + assertEquals(str1, helper.stringify(val1)); + assertEquals(val1, helper.parse(str1, BigDecimal.class)); + + String str2 = "-12345678901234567890.123456789"; + BigDecimal val2 = new BigDecimal(str2); + assertEquals(str2, helper.stringify(val2)); + assertEquals(val2, helper.parse(str2, BigDecimal.class)); + + assertFailsConversionToObject( + "converted non-numeric value", + helper, "ix", BigDecimal.class); + + assertFailsConversionToObject( + "converted empty string", + helper, "", BigDecimal.class); + } + + + public void testConvertDateDefault() throws Exception + { + ConversionHelper helper = new ConversionHelper(); + + // default date conversion is NOT compatible with XSD type def, + // so this is misleading + assertEquals("xsd:dateTime", helper.getXsdType(Date.class)); + + // for default conversion, we create string from value + Date val1 = new Date(1247551703000L); + String str1 = val1.toString(); + assertEquals(str1, helper.stringify(val1)); + assertEquals(val1, helper.parse(str1, Date.class)); + + + assertFailsConversionToObject( + "converted non-date value", + helper, "ix", Date.class); + + assertFailsConversionToObject( + "converted empty string", + helper, "", Date.class); + } + + + public void testConvertDateXsd() throws Exception + { + ConversionHelper helper = new ConversionHelper(true); + + assertEquals("xsd:dateTime", helper.getXsdType(Date.class)); + + Date val1 = new Date(1247551703000L); + String str1 = "2009-07-14T06:08:23"; + assertEquals(str1, helper.stringify(val1)); + assertEquals(val1, helper.parse(str1, Date.class)); + + assertFailsConversionToObject( + "converted non-date value", + helper, "ix", Date.class); + + assertFailsConversionToObject( + "converted empty string", + helper, "", Date.class); + } +} Deleted: branches/dev-1.1/src/test/java/net/sf/practicalxml/converter/TestPrimitiveConversionHelper.java =================================================================== --- branches/dev-1.1/src/test/java/net/sf/practicalxml/converter/TestPrimitiveConversionHelper.java 2009-08-14 19:00:11 UTC (rev 104) +++ branches/dev-1.1/src/test/java/net/sf/practicalxml/converter/TestPrimitiveConversionHelper.java 2009-08-14 20:05:39 UTC (rev 105) @@ -1,529 +0,0 @@ -// Copyright 2008-2009 severally by the contributors -// -// 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 net.sf.practicalxml.converter; - -import java.math.BigDecimal; -import java.math.BigInteger; -import java.util.Date; - - -public class TestPrimitiveConversionHelper -extends AbstractBeanConverterTestCase -{ - public TestPrimitiveConversionHelper(String name) - { - super(name); - } - - -//---------------------------------------------------------------------------- -// Support Code -//---------------------------------------------------------------------------- - - private void assertFailsConversionToObject( - String message, - PrimitiveConversionHelper helper, - String str, - Class<?> klass) - { - try - { - helper.parse(str, klass); - fail(message); - } - catch (ConversionException ee) - { - // success! - } - } - - -//---------------------------------------------------------------------------- -// Test Cases -//---------------------------------------------------------------------------- - - public void testUnknownClass() throws Exception - { - PrimitiveConversionHelper helper = new PrimitiveConversionHelper(); - - assertNull(helper.getXsdType(Class.class)); - } - - - public void testConvertNull() throws Exception - { - PrimitiveConversionHelper helper = new PrimitiveConversionHelper(); - - assertNull(helper.stringify(null)); - assertNull(helper.parse(null, Object.class)); - } - - - public void testConvertString() throws Exception - { - PrimitiveConversionHelper helper = new PrimitiveConversionHelper(); - - assertEquals("xsd:string", helper.getXsdType(String.class)); - - assertEquals("foo", helper.stringify("foo")); - assertEquals("foo", helper.parse("foo", String.class)); - - assertEquals("", helper.stringify("")); - assertEquals("", helper.parse("", String.class)); - } - - - public void testConvertCharacter() throws Exception - { - PrimitiveConversionHelper helper = new PrimitiveConversionHelper(); - - assertEquals("xsd:string", helper.getXsdType(Character.class)); - - Character simple = Character.valueOf('A'); - assertEquals("A", helper.stringify(simple)); - assertEquals(simple, helper.parse("A", Character.class)); - - Character nul = Character.valueOf('\0'); - assertEquals("", helper.stringify(nul)); - assertEquals(nul, helper.parse("", Character.class)); - - assertFailsConversionToObject( - "converted multi-character string", - helper, "ix", Character.class); - } - - - public void testConvertBooleanDefault() throws Exception - { - PrimitiveConversionHelper helper = new PrimitiveConversionHelper(); - - // default boolean conversion is compatible with XSD type def - assertEquals("xsd:boolean", helper.getXsdType(Boolean.class)); - - String sTrue = Boolean.TRUE.toString(); - assertEquals(sTrue, helper.stringify(Boolean.TRUE)); - assertEquals(Boolean.TRUE, helper.parse(sTrue, Boolean.class)); - - String sFalse = Boolean.FALSE.toString(); - assertEquals(sFalse, helper.stringify(Boolean.FALSE)); - assertEquals(Boolean.FALSE, helper.parse(sFalse, Boolean.class)); - - assertEquals(Boolean.FALSE, helper.parse("ix", Boolean.class)); - assertEquals(Boolean.FALSE, helper.parse("", Boolean.class)); - } - - - public void testConvertBooleanXsd() throws Exception - { - PrimitiveConversionHelper helper = new PrimitiveConversionHelper(true); - - assertEquals("xsd:boolean", helper.getXsdType(Boolean.class)); - - assertEquals("true", helper.stringify(Boolean.TRUE)); - assertEquals(Boolean.TRUE, helper.parse("true", Boolean.class)); - assertEquals(Boolean.TRUE, helper.parse("1", Boolean.class)); - - assertEquals("false", helper.stringify(Boolean.FALSE)); - assertEquals(Boolean.FALSE, helper.parse("false", Boolean.class)); - assertEquals(Boolean.FALSE, helper.parse("0", Boolean.class)); - - assertFailsConversionToObject( - "converted multi-character string", - helper, "ix", Boolean.class); - - assertFailsConversionToObject( - "converted empty string", - helper, "", Boolean.class); - } - - - public void testConvertByte() throws Exception - { - PrimitiveConversionHelper helper = new PrimitiveConversionHelper(); - - assertEquals("xsd:byte", helper.getXsdType(Byte.class)); - - String str1 = "123"; - Byte val1 = Byte.valueOf((byte)123); - assertEquals(str1, helper.stringify(val1)); - assertEquals(val1, helper.parse(str1, Byte.class)); - - String str2 = "-123"; - Byte val2 = Byte.valueOf((byte)-123); - assertEquals(str2, helper.stringify(val2)); - assertEquals(val2, helper.parse(str2, Byte.class)); - - String str3 = " -123 "; - Byte val3 = Byte.valueOf((byte)-123); - assertEquals(val3, helper.parse(str3, Byte.class)); - - assertFailsConversionToObject( - "converted too-large value", - helper, "1234567", Byte.class); - - assertFailsConversionToObject( - "converted non-integer value", - helper, "1.23", Byte.class); - - assertFailsConversionToObject( - "converted non-numeric value", - helper, "ix", Byte.class); - - assertFailsConversionToObject( - "converted empty string", - helper, "", Byte.class); - } - - - public void testConvertShort() throws Exception - { - PrimitiveConversionHelper helper = new PrimitiveConversionHelper(); - - assertEquals("xsd:short", helper.getXsdType(Short.class)); - - String str1 = "12345"; - Short val1 = Short.valueOf((short)12345); - assertEquals(str1, helper.stringify(val1)); - assertEquals(val1, helper.parse(str1, Short.class)); - - String str2 = "-12345"; - Short val2 = Short.valueOf((short)-12345); - assertEquals(str2, helper.stringify(val2)); - assertEquals(val2, helper.parse(str2, Short.class)); - - String str3 = " -12345 "; - Short val3 = Short.valueOf((short)-12345); - assertEquals(val3, helper.parse(str3, Short.class)); - - assertFailsConversionToObject( - "converted too-large value", - helper, "1234567", Short.class); - - assertFailsConversionToObject( - "converted non-integer value", - helper, "123.45", Short.class); - - assertFailsConversionToObject( - "converted non-numeric value", - helper, "ix", Short.class); - - assertFailsConversionToObject( - "converted empty string", - helper, "", Short.class); - } - - - public void testConvertInteger() throws Exception - { - PrimitiveConversionHelper helper = new PrimitiveConversionHelper(); - - assertEquals("xsd:int", helper.getXsdType(Integer.class)); - - String str1 = "1234567"; - Integer val1 = Integer.valueOf(1234567); - assertEquals(str1, helper.stringify(val1)); - assertEquals(val1, helper.parse(str1, Integer.class)); - - String str2 = "-1234567"; - Integer val2 = Integer.valueOf(-1234567); - assertEquals(str2, helper.stringify(val2)); - assertEquals(val2, helper.parse(str2, Integer.class)); - - String str3 = " -1234567 "; - Integer val3 = Integer.valueOf(-1234567); - assertEquals(val3, helper.parse(str3, Integer.class)); - - assertFailsConversionToObject( - "converted too-large value", - helper, "123456789012345", Integer.class); - - assertFailsConversionToObject( - "converted non-integer value", - helper, "123.45", Integer.class); - - assertFailsConversionToObject( - "converted non-numeric value", - helper, "ix", Integer.class); - - assertFailsConversionToObject( - "converted empty string", - helper, "", Integer.class); - } - - - public void testConvertLong() throws Exception - { - PrimitiveConversionHelper helper = new PrimitiveConversionHelper(); - - assertEquals("xsd:long", helper.getXsdType(Long.class)); - - String str1 = "1234567890"; - Long val1 = Long.valueOf(1234567890L); - assertEquals(str1, helper.stringify(val1)); - assertEquals(val1, helper.parse(str1, Long.class)); - - String str2 = "-1234567890"; - Long val2 = Long.valueOf(-1234567890L); - assertEquals(str2, helper.stringify(val2)); - assertEquals(val2, helper.parse(str2, Long.class)); - - String str3 = " -1234567890 "; - Long val3 = Long.valueOf(-1234567890L); - assertEquals(val3, helper.parse(str3, Long.class)); - - assertFailsConversionToObject( - "converted too-large value", - helper, "123456789012345678901234567890", Long.class); - - assertFailsConversionToObject( - "converted non-integer value", - helper, "123.45", Long.class); - - assertFailsConversionToObject( - "converted non-numeric value", - helper, "ix", Long.class); - - assertFailsConversionToObject( - "converted empty string", - helper, "", Long.class); - } - - - public void testConvertFloatDefault() throws Exception - { - PrimitiveConversionHelper helper = new PrimitiveConversionHelper(); - - // default float conversion is compatible with XSD type def - assertEquals("xsd:decimal", helper.getXsdType(Float.class)); - - // note: for default-format tests, strings are generated from values - Float val1 = Float.valueOf(1234f); - String str1 = val1.toString(); - assertEquals(str1, helper.stringify(val1)); - assertEquals(val1, helper.parse(str1, Float.class)); - - Float val2 = Float.valueOf(-1234f); - String str2 = val2.toString(); - assertEquals(str2, helper.stringify(val2)); - assertEquals(val2, helper.parse(str2, Float.class)); - - String str3 = " -1234.5 "; - Float val3 = Float.valueOf(-1234.5f); - assertEquals(val3, helper.parse(str3, Float.class)); - - assertFailsConversionToObject( - "converted non-numeric value", - helper, "ix", Float.class); - - assertFailsConversionToObject( - "converted empty string", - helper, "", Float.class); - } - - - public void testConvertFloatXsd() throws Exception - { - PrimitiveConversionHelper helper = new PrimitiveConversionHelper(true); - - assertEquals("xsd:decimal", helper.getXsdType(Float.class)); - - String str1 = "1234.0"; - Float val1 = Float.valueOf(1234f); - assertEquals(str1, helper.stringify(val1)); - assertEquals(val1, helper.parse(str1, Float.class)); - - String str2 = "-1234.0"; - Float val2 = Float.valueOf(-1234f); - assertEquals(str2, helper.stringify(val2)); - assertEquals(val2, helper.parse(str2, Float.class)); - - String str3 = " -1234.5 "; - Float val3 = Float.valueOf(-1234.5f); - assertEquals(val3, helper.parse(str3, Float.class)); - - assertFailsConversionToObject( - ... [truncated message content] |