private Map<String, ObjectFormatter<?>> retrieveFieldsFormatters( POJOFormat annotation, List<Field> fields ) {
        Map<String, ObjectFormatter<?>> inter = Maps.newHashMap();

        // First, look for any format defined at field level
        for( int i = 0; i < fields.size(); i++ ) {
            Field field = fields.get( i );

            ObjectFormatter<?> formatter = pfu.getFormatting( field.getType(), field.getName(), field.getAnnotations() );

            // Finally, bind format to the field when found
            if( formatter != null ) {
                inter.put( field.getName(), formatter );
            }
        }

        // Then, override with any formats specified through the Table
        // annotation
        NamedFormat[] nftab;

        // Array of NamedFormat has precedence over NamedFormats
        nftab = annotation.fieldFormats();
        if( nftab.length == 0 ) {
            // Fall back on a custom NamedFormats annotation
            Class<? extends Annotation> aclazz = annotation.fieldFormatsAnnotation();
            if( aclazz.isAnnotationPresent( NamedFormats.class ) ) {
                NamedFormats nfset = aclazz.getAnnotation( NamedFormats.class );
                nftab = nfset.value();
            }
        }

        for( NamedFormat nf : nftab ) {
            ObjectFormatter<?> formatter;

            // Custom format annotation has precedence here
            Class<? extends Annotation> cfa = nf.formatAnnotation();
            if( cfa.equals( Annotation.class ) ) {
                // Custom format annotation not set, fallback on any format
                formatter = pfu.getFormatting( Object.class, nf.name(), new Annotation[] { nf.format() } );
            } else {
                formatter = pfu.getFormatting( Object.class, nf.name(), cfa.getAnnotations() );
            }

            inter.put( nf.name(), formatter );
        }

        return inter;
    }
{@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