in cassandra-four-zero/src/main/java/org/apache/cassandra/spark/reader/SchemaBuilder.java [476:509]
private static void nestedUdts(AbstractType<?> type, Set<String> udts, boolean isNested)
{
if (type instanceof UserType)
{
if (isNested)
{
udts.add(((UserType) type).getNameAsString());
}
for (AbstractType<?> nestedType : ((UserType) type).fieldTypes())
{
nestedUdts(nestedType, udts, true);
}
}
else if (type instanceof TupleType)
{
for (AbstractType<?> nestedType : ((TupleType) type).allTypes())
{
nestedUdts(nestedType, udts, true);
}
}
else if (type instanceof SetType)
{
nestedUdts(((SetType<?>) type).getElementsType(), udts, true);
}
else if (type instanceof ListType)
{
nestedUdts(((ListType<?>) type).getElementsType(), udts, true);
}
else if (type instanceof MapType)
{
nestedUdts(((MapType<?, ?>) type).getKeysType(), udts, true);
nestedUdts(((MapType<?, ?>) type).getValuesType(), udts, true);
}
}