You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@johnzon.apache.org by Daniel Cunha <da...@gmail.com> on 2014/10/07 02:34:13 UTC
johnzon-mapper
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
Re: johnzon-mapper
Posted by Daniel Cunha <da...@gmail.com>.
Great Romain!
On Tue, Oct 7, 2014 at 6:30 AM, Romain Manni-Bucau <rm...@gmail.com>
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 <da...@gmail.com>:
> > 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 <da...@gmail.com>
> 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 <da...@gmail.com>
> 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
Re: johnzon-mapper
Posted by Romain Manni-Bucau <rm...@gmail.com>.
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 <da...@gmail.com>:
> 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 <da...@gmail.com> 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 <da...@gmail.com> 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
Re: johnzon-mapper
Posted by Daniel Cunha <da...@gmail.com>.
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 <da...@gmail.com> 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 <da...@gmail.com> 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
Re: johnzon-mapper
Posted by Daniel Cunha <da...@gmail.com>.
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 <da...@gmail.com> 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