in timescaledb-connector/src/main/java/com/epam/deltix/timebase/connector/util/RecordClassDescriptorUtils.java [37:61]
public static List<RecordClassDescriptor> getBaseClassDescriptors(ClassDescriptor[] descriptors) {
if (descriptors.length == 0) {
throw new IllegalArgumentException("Could not find base RecordClassDescriptor for empty input descriptors.");
}
if (descriptors.length == 1) {
if (descriptors[0] instanceof EnumClassDescriptor) {
throw new IllegalArgumentException("Could not find base RecordClassDescriptor. Only EnumClassDescriptor found.");
}
return Collections.singletonList((RecordClassDescriptor) descriptors[0]);
}
Set<String> usedClasses = new HashSet<>();
List<RecordClassDescriptor> descriptorsList = Arrays.asList(descriptors).stream()
.filter(descriptor -> descriptor instanceof RecordClassDescriptor)
.map(descriptor -> (RecordClassDescriptor) descriptor)
.collect(Collectors.toList());
descriptorsList.forEach(descriptor -> fillUsedClasses(descriptor, usedClasses));
return descriptorsList.stream()
.filter(descriptor -> !usedClasses.contains(descriptor.getName()))
.collect(Collectors.toList());
}