private List<Field> getFields( Class<?> type, POJOFormat annotation ) {
        final Set<String> includeFields = Sets.newHashSet( annotation.includeFields() );
        final Set<String> excludeFields = Sets.newHashSet( annotation.excludeFields() );
        return FluentIterable.from( ReflectionUtil.getAllNonStaticFields( type ) )
            .filter( new Predicate<Field>() {
                @Override
                public boolean apply( Field input ) {
                    String name = input.getName();
                    if( !includeFields.isEmpty() ) {
                        return includeFields.contains( name );
                    }

                    if( excludeFields.contains( name ) ) {
                        return false;
                    }

                    return true;
                }
            } ).toList();
    }
{@link com.tngtech.jgiven.format.AnnotationArgumentFormatter} that is used by the {@link POJOFormat}
annotation
jgiven-core/src/main/java/com/tngtech/jgiven/format/POJOAnnotationFormatter.java