private Stream extractFieldTypesForReflection()

in knights/openjpa-knight/src/main/java/org/apache/geronimo/arthur/knight/openjpa/OpenJPAExtension.java [318:333]


    private Stream<ClassReflectionModel> extractFieldTypesForReflection(final Class<?> entity) {
        try {
            final Field pcFieldTypes = entity.getDeclaredField("pcFieldTypes");
            pcFieldTypes.setAccessible(true);
            final Object types = pcFieldTypes.get(null);
            return Stream.of(Class[].class.cast(types))
                    .distinct() // todo: filter(it -> !it.isPrimitive())?
                    .map(type -> {
                        final ClassReflectionModel fieldType = new ClassReflectionModel();
                        fieldType.setName(type.getName());
                        return fieldType;
                    });
        } catch (final Exception e) {
            return Stream.empty();
        }
    }