private FieldType toBeamRowType()

in v1/src/main/java/com/google/cloud/teleport/bigtable/CassandraRowMapperFn.java [211:260]


  private FieldType toBeamRowType(DataType type) {
    DataType.Name n = type.getName();

    switch (n) {
      case TIMESTAMP:
      case DATE:
        return FieldType.DATETIME;
      case BLOB:
        return FieldType.BYTES;
      case BOOLEAN:
        return FieldType.BOOLEAN;
      case DECIMAL:
        return FieldType.DECIMAL;
      case DOUBLE:
        return FieldType.DOUBLE;
      case FLOAT:
        return FieldType.FLOAT;
      case INT:
        return FieldType.INT32;
      case VARINT:
        return FieldType.DECIMAL;
      case SMALLINT:
        return FieldType.INT16;
      case TINYINT:
        return FieldType.BYTE;
      case LIST:
      case SET:
        DataType innerType = type.getTypeArguments().get(0);
        return FieldType.array(toBeamRowType(innerType));
      case MAP:
        DataType kDataType = type.getTypeArguments().get(0);
        DataType vDataType = type.getTypeArguments().get(1);
        FieldType k = toBeamRowType(kDataType);
        FieldType v = toBeamRowType(vDataType);
        return FieldType.map(k, v);
      case VARCHAR:
      case TEXT:
      case INET:
      case UUID:
      case TIMEUUID:
      case ASCII:
        return FieldType.STRING;
      case BIGINT:
      case COUNTER:
      case TIME:
        return FieldType.INT64;
      default:
        throw new UnsupportedOperationException("Datatype " + type.getName() + " not supported.");
    }
  }