zacharyzhanghao/orm-hbase

Missing a data type

Opened this issue · 0 comments

zachary.zhanghao.columnar.type.TypeResolverFactory
source code
static {
defaultResolvers.put(String.class, new StringResolver());

    defaultResolvers.put(Date.class, new DateResolver());

    defaultResolvers.put(Boolean.class, new BooleanResolver());
    defaultResolvers.put(boolean.class, new BooleanResolver());

    defaultResolvers.put(Byte.class, new ByteResolver());
    defaultResolvers.put(byte.class, new ByteResolver());

    defaultResolvers.put(Short.class, new ShortResolver());
    defaultResolvers.put(short.class, new ShortResolver());

    defaultResolvers.put(Integer.class, new IntegerResolver());
    defaultResolvers.put(int.class, new IntegerResolver());

    defaultResolvers.put(Long.class, new LongResolver());
    defaultResolvers.put(long.class, new LongResolver());

    defaultResolvers.put(Float.class, new FloatResolver());
    defaultResolvers.put(float.class, new FloatResolver());

    defaultResolvers.put(Double.class, new DoubleResolver());
    defaultResolvers.put(double.class, new DoubleResolver());
}

modify
static {
defaultResolvers.put(String.class, new StringResolver());

    defaultResolvers.put(Date.class, new DateResolver());

    defaultResolvers.put(Boolean.class, new BooleanResolver());
    defaultResolvers.put(boolean.class, new BooleanResolver());

    defaultResolvers.put(Byte.class, new ByteResolver());
    defaultResolvers.put(byte.class, new ByteResolver());

    defaultResolvers.put(Short.class, new ShortResolver());
    defaultResolvers.put(short.class, new ShortResolver());

    defaultResolvers.put(Integer.class, new IntegerResolver());
    defaultResolvers.put(int.class, new IntegerResolver());

    defaultResolvers.put(Long.class, new LongResolver());
    defaultResolvers.put(long.class, new LongResolver());

    defaultResolvers.put(Float.class, new FloatResolver());
    defaultResolvers.put(float.class, new FloatResolver());

    defaultResolvers.put(Double.class, new DoubleResolver());
    defaultResolvers.put(double.class, new DoubleResolver());

    defaultResolvers.put(BigDecimal.class, new BigDecinalResolver());
}

public static class BigDecinalResolver extends TypeResolverBase {

    @Override
    public byte[] toBytes(BigDecimal object) {
        Preconditions.checkArgument(accept(object), "target type can't be match BigDecimal");
        return Bytes.toBytes(object);
    }

    @Override
    public BigDecimal toObject(byte[] bytes) {
        return Bytes.toBigDecimal(bytes);
    }

}