in driver/src/main/scala/com/datastax/spark/connector/types/ColumnType.scala [169:188]
def converterToCassandra(dataType: DataType)
: TypeConverter[_ <: AnyRef] = {
val converter: TypeConverter[_] =
dataType match {
case list: DriverListType => TypeConverter.javaArrayListConverter(converterToCassandra(list.getElementType))
case vec: DriverVectorType => TypeConverter.cqlVectorConverter(vec.getDimensions)(converterToCassandra(vec.getElementType).asInstanceOf[TypeConverter[Number]])
case set: DriverSetType => TypeConverter.javaHashSetConverter(converterToCassandra(set.getElementType))
case map: DriverMapType => TypeConverter.javaHashMapConverter(converterToCassandra(map.getKeyType), converterToCassandra(map.getValueType))
case udt: DriverUserDefinedType => new UserDefinedType.DriverUDTValueConverter(udt)
case tuple: DriverTupleType => TupleType.driverTupleValueConverter(dataType)
case _ => fromDriverType(dataType).converterToCassandra
}
// make sure it is always wrapped in OptionToNullConverter, but don't wrap twice:
converter match {
case c: TypeConverter.OptionToNullConverter => c
case _ => new TypeConverter.OptionToNullConverter(converter)
}
}