Exemplo n.º 1
0
 Number castNumber(Class<?> cl, Json v) {
   if (!v.isNumber())
     throw new IllegalArgumentException(
         "Trying to cast " + v + " as a Number bean property, but it's not a number.");
   if (cl.equals(short.class) || cl.equals(Short.class)) return v.asShort();
   else if (cl.equals(byte.class) || cl.equals(Byte.class)) return v.asByte();
   else if (cl.equals(int.class) || cl.equals(Integer.class)) return v.asInteger();
   else if (cl.equals(float.class) || cl.equals(Float.class)) return v.asFloat();
   else if (cl.equals(long.class) || cl.equals(Long.class)) return v.asLong();
   else if (cl.equals(BigDecimal.class)) return new BigDecimal(v.asDouble());
   else if (cl.equals(BigInteger.class)) return BigInteger.valueOf(v.asLong());
   else if (cl.equals(AtomicInteger.class)) return new AtomicInteger(v.asInteger());
   else if (cl.equals(AtomicLong.class)) return new AtomicLong(v.asLong());
   else return v.asDouble();
 }