Great Romain! On Tue, Oct 7, 2014 at 6:30 AM, Romain Manni-Bucau <[email protected]> wrote:
> should be fixed now, thanks > > > Romain Manni-Bucau > @rmannibucau > http://www.tomitribe.com > http://rmannibucau.wordpress.com > https://github.com/rmannibucau > > > 2014-10-07 3:50 GMT+02:00 Daniel Cunha <[email protected]>: > > Hi again, > > > > sorry, I forgot to run test and this patch broke all. :( > > I didn't understand because has different process for same type. > > > > On Mon, Oct 6, 2014 at 10:27 PM, Daniel Cunha <[email protected]> > wrote: > > > >> Hi folks, > >> > >> I created a issue to that and made a patch: > >> https://issues.apache.org/jira/browse/JOHNZON-15 > >> > >> On Mon, Oct 6, 2014 at 9:34 PM, Daniel Cunha <[email protected]> > wrote: > >> > >>> Hi folks, > >>> > >>> Here short and byte types is processed with your real type. > >>> > >>> > https://github.com/apache/incubator-johnzon/blob/master/johnzon-mapper/src/main/java/org/apache/johnzon/mapper/Mapper.java#L89 > >>> > >>> private static JsonGenerator writePrimitives(final JsonGenerator > generator, final Object value) { > >>> if (value == null) { > >>> return null; // fake a write > >>> } > >>> > >>> final Class<?> type = value.getClass(); > >>> if (type == String.class) { > >>> return generator.write(value.toString()); > >>> } else if (type == long.class || type == Long.class) { > >>> return generator.write(Long.class.cast(value).longValue()); > >>> } else if (type == int.class || type == Integer.class) { > >>> return > generator.write(Integer.class.cast(value).intValue()); > >>> } else if (type == double.class || type == Double.class > >>> || type == float.class || type == Float.class) { > >>> return > generator.write(Number.class.cast(value).doubleValue()); > >>> } else if (type == boolean.class || type == Boolean.class) { > >>> return > generator.write(Boolean.class.cast(value).booleanValue()); > >>> } else if (type == BigDecimal.class) { > >>> return generator.write(BigDecimal.class.cast(value)); > >>> } else if (type == BigInteger.class) { > >>> return generator.write(BigInteger.class.cast(value)); > >>> } else if (type == short.class || type == Short.class) { > >>> return > generator.write(Short.class.cast(value).shortValue()); > >>> } else if (type == char.class || type == Character.class) { > >>> return > generator.write(Character.class.cast(value).toString()); > >>> } else if (type == byte.class || type == Byte.class) { > >>> return generator.write(Byte.class.cast(value).byteValue()); > >>> } > >>> return null; > >>> } > >>> > >>> and here is processed with Number: > >>> > >>> > https://github.com/apache/incubator-johnzon/blob/master/johnzon-mapper/src/main/java/org/apache/johnzon/mapper/Mapper.java#L120 > >>> > >>> if (type == String.class) { > >>> return generator.write(key, value.toString()); > >>> } else if (type == long.class || type == Long.class) { > >>> return generator.write(key, > Long.class.cast(value).longValue()); > >>> } else if (type == int.class || type == Integer.class > >>> || type == byte.class || type == Byte.class > >>> || type == short.class || type == Short.class) { > >>> return generator.write(key, > Number.class.cast(value).intValue()); > >>> } else if (type == double.class || type == Double.class > >>> || type == float.class || type == Float.class) { > >>> return generator.write(key, > Number.class.cast(value).doubleValue()); > >>> } else if (type == boolean.class || type == Boolean.class) { > >>> return generator.write(key, > Boolean.class.cast(value).booleanValue()); > >>> } else if (type == BigDecimal.class) { > >>> return generator.write(key, BigDecimal.class.cast(value)); > >>> } else if (type == BigInteger.class) { > >>> return generator.write(key, BigInteger.class.cast(value)); > >>> } else if (type == char.class || type == Character.class) { > >>> return generator.write(key, > Character.class.cast(value).toString()); > >>> } > >>> return generator; > >>> > >>> Why!? > >>> It seem duplicate codes. > >>> > >>> -- > >>> Daniel Cunha (soro) <http://www.cejug.net> > >>> Blog: http://www.danielsoro.com.br > >>> Twitter: https://twitter.com/dvlc_ > >>> GitHub: https://github.com/danielsoro > >>> LinkedIn: http://www.linkedin.com/in/danielvlcunha > >>> > >> > >> > >> > >> -- > >> Daniel Cunha (soro) <http://www.cejug.net> > >> Blog: http://www.danielsoro.com.br > >> Twitter: https://twitter.com/dvlc_ > >> GitHub: https://github.com/danielsoro > >> LinkedIn: http://www.linkedin.com/in/danielvlcunha > >> > > > > > > > > -- > > Daniel Cunha (soro) <http://www.cejug.net> > > Blog: http://www.danielsoro.com.br > > Twitter: https://twitter.com/dvlc_ > > GitHub: https://github.com/danielsoro > > LinkedIn: http://www.linkedin.com/in/danielvlcunha > -- Daniel Cunha (soro) <http://www.cejug.net> Blog: http://www.danielsoro.com.br Twitter: https://twitter.com/dvlc_ GitHub: https://github.com/danielsoro LinkedIn: http://www.linkedin.com/in/danielvlcunha
