use of org.apache.cassandra.db.marshal.AbstractCompositeType in project cassandra by apache.
the class SSTableHeaderFixTest method freezeUdt.
private AbstractType<?> freezeUdt(AbstractType<?> type) {
if (type instanceof CollectionType) {
if (type.getClass() == ListType.class) {
ListType<?> cHeader = (ListType<?>) type;
return ListType.getInstance(freezeUdt(cHeader.getElementsType()), cHeader.isMultiCell());
} else if (type.getClass() == SetType.class) {
SetType<?> cHeader = (SetType<?>) type;
return SetType.getInstance(freezeUdt(cHeader.getElementsType()), cHeader.isMultiCell());
} else if (type.getClass() == MapType.class) {
MapType<?, ?> cHeader = (MapType<?, ?>) type;
return MapType.getInstance(freezeUdt(cHeader.getKeysType()), freezeUdt(cHeader.getValuesType()), cHeader.isMultiCell());
}
} else if (type instanceof AbstractCompositeType) {
if (type.getClass() == CompositeType.class) {
CompositeType cHeader = (CompositeType) type;
return CompositeType.getInstance(cHeader.types.stream().map(this::freezeUdt).collect(Collectors.toList()));
}
} else if (type instanceof TupleType) {
if (type.getClass() == UserType.class) {
UserType cHeader = (UserType) type;
cHeader = cHeader.freeze();
return new UserType(cHeader.keyspace, cHeader.name, cHeader.fieldNames(), cHeader.allTypes().stream().map(this::freezeUdt).collect(Collectors.toList()), cHeader.isMultiCell());
}
}
return type;
}
Aggregations