in cassandrareader/src/main/java/com/alibaba/datax/plugin/reader/cassandrareader/CassandraReaderHelper.java [71:136]
static Object transferObjectForJson(Object o,DataType type) throws TypeNotSupported{
if( o == null ) return o;
switch (type.getName()) {
case ASCII:
case TEXT:
case VARCHAR:
case BOOLEAN:
case SMALLINT:
case TINYINT:
case INT:
case BIGINT:
case VARINT:
case FLOAT:
case DOUBLE:
case DECIMAL:
case UUID:
case TIMEUUID:
case TIME:
return o;
case BLOB:
ByteBuffer byteBuffer = (ByteBuffer)o;
String s = Base64.encodeBase64String(
Arrays.copyOfRange(byteBuffer.array(),byteBuffer.position(),
byteBuffer.limit()));
return s;
case DATE:
return ((LocalDate)o).getMillisSinceEpoch();
case TIMESTAMP:
return ((Date)o).getTime();
case DURATION:
return o.toString();
case INET:
return ((InetAddress)o).getHostAddress();
case LIST: {
return transferListForJson((List)o,type.getTypeArguments().get(0));
}
case MAP: {
DataType keyType = type.getTypeArguments().get(0);
DataType valType = type.getTypeArguments().get(1);
return transferMapForJson((Map)o,keyType,valType);
}
case SET: {
return transferSetForJson((Set)o, type.getTypeArguments().get(0));
}
case TUPLE: {
return transferTupleForJson((TupleValue)o,((TupleType)type).getComponentTypes());
}
case UDT: {
return transferUDTForJson((UDTValue)o);
}
default:
throw new TypeNotSupported();
}
}