private static void ignorePropertiesFromSuperType(final Object obj, final Class<?> potentialSuperType,
                                                      final Set<String> ignoreProps) {
        if (potentialSuperType.isAssignableFrom(obj.getClass())) {
            ignoreProps.addAll(Arrays.stream(potentialSuperType.getMethods())
                    .flatMap(method -> {
                        final String methodName = method.getName();
                        if (methodName.startsWith("get")) {
                            return Stream.of(methodName.substring(3, 4).toLowerCase() + methodName.substring(4));
                        } else if (methodName.startsWith("is")) {
                            return Stream.of(methodName.substring(2, 3).toLowerCase() + methodName.substring(3));
                        } else {
                            return Stream.empty();
                        }
                    }).collect(Collectors.toList()));
        }
    }
Create {@link Data} items from properties of the supplied POJO

@param obj POJO from which to extract properties
@return List of {@link Data} items representing properties of the supplied POJO
stroom-event-logging/stroom-event-logging-impl/src/main/java/stroom/event/logging/impl/StroomEventLoggingServiceImpl.java