public static List getBaseClassDescriptors()

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());
    }