static Object transferObjectForJson()

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();
    }

  }